Advertisement
leonardo_aly7

debugPlotter

Mar 28th, 2012
174
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.24 KB | None | 0 0
  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. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement