Want more features on Pastebin? Sign Up, it's FREE!
Guest

debugPlotter

By: leonardo_aly7 on Mar 28th, 2012  |  syntax: Java  |  size: 2.24 KB  |  views: 53  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. import javafx.application.Application;
  2. import javafx.collections.FXCollections;
  3. import javafx.collections.ObservableList;
  4. import javafx.event.EventHandler;
  5. import javafx.scene.Group;
  6. import javafx.scene.Scene;
  7. import javafx.scene.chart.AreaChart;
  8. import javafx.scene.chart.NumberAxis;
  9. import javafx.scene.chart.XYChart.Data;
  10. import javafx.scene.chart.XYChart.Series;
  11. import javafx.scene.input.KeyCode;
  12. import javafx.scene.input.KeyEvent;
  13. import javafx.stage.Stage;
  14.  
  15.  
  16. public class debugPlotter extends Application{
  17.  
  18.         public static void main(String[] args) {
  19.                 launch(args);
  20.         }
  21.  
  22.         double startX = -5;
  23.         double endX = 5 ;
  24.         double zoomFactor = 1;
  25.         double step = 0.1;
  26.         @SuppressWarnings("unchecked")
  27.         @Override
  28.         public void start(Stage stage) throws Exception {
  29.        
  30.                 final ObservableList<Data<Number, Number>> inData = FXCollections.observableArrayList();
  31.                
  32.         final Series<Number, Number> series2 = new Series<Number, Number>();
  33.         for (double i = startX ; i < endX ; i+=0.1) {
  34.                 inData.add(new Data<Number, Number>(i, Math.sin(i)));
  35.                 }
  36.         series2.setData(inData);
  37.        
  38.                 final NumberAxis xAx = new NumberAxis();
  39.                 final NumberAxis yAx = new NumberAxis();
  40.                
  41.                 final AreaChart<Number, Number> chart =  new AreaChart<Number,Number>(xAx , yAx);
  42.                 chart.getData().addAll(series2);
  43.                
  44.                 chart.setOnKeyPressed(new EventHandler<KeyEvent>() {
  45.  
  46.                         @Override
  47.                         public void handle(KeyEvent e) {
  48.                                 if (e.getCode().equals(KeyCode.UP)){
  49.                                         //when pressing up key add new 2 point 1 from left and 1 from right
  50.                                         startX -=step;
  51.                                         endX +=step;
  52.                                         series2.getData().add(0,new Data<Number, Number>(startX, Math.sin(startX)));
  53.                                         series2.getData().add(new Data<Number, Number>(endX, Math.sin(endX)));
  54.                                 }
  55.                                 else if (e.getCode().equals(KeyCode.DOWN)){
  56.                                         //when pressing down key remove new 2 point 1 from left and 1 from right
  57.                                        
  58.                                         inData.remove(inData.size()-1);
  59.  
  60.                                         inData.remove(0);      
  61.                                                 startX +=step;
  62.                                                 endX -=step;
  63.                                 }
  64.                                
  65.                         }
  66.                 });
  67.                                
  68.                
  69.                 stage = new Stage();
  70.                 Group root = new Group(chart);
  71.                 Scene scene = new Scene(root);
  72.                 stage.setWidth(500);
  73.                 stage.setHeight(500);
  74.                 stage.setScene(scene);
  75.                 stage.show();
  76.                 chart.requestFocus();
  77.                
  78.         }
  79.  
  80.        
  81.        
  82.        
  83. }
clone this paste RAW Paste Data