Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import javafx.application.Application;
- import javafx.collections.FXCollections;
- import javafx.collections.ObservableList;
- import javafx.event.EventHandler;
- import javafx.scene.Group;
- import javafx.scene.Scene;
- import javafx.scene.chart.AreaChart;
- import javafx.scene.chart.NumberAxis;
- import javafx.scene.chart.XYChart.Data;
- import javafx.scene.chart.XYChart.Series;
- import javafx.scene.input.KeyCode;
- import javafx.scene.input.KeyEvent;
- import javafx.stage.Stage;
- public class debugPlotter extends Application{
- public static void main(String[] args) {
- launch(args);
- }
- double startX = -5;
- double endX = 5 ;
- double zoomFactor = 1;
- double step = 0.1;
- @SuppressWarnings("unchecked")
- @Override
- public void start(Stage stage) throws Exception {
- final ObservableList<Data<Number, Number>> inData = FXCollections.observableArrayList();
- final Series<Number, Number> series2 = new Series<Number, Number>();
- for (double i = startX ; i < endX ; i+=0.1) {
- inData.add(new Data<Number, Number>(i, Math.sin(i)));
- }
- series2.setData(inData);
- final NumberAxis xAx = new NumberAxis();
- final NumberAxis yAx = new NumberAxis();
- final AreaChart<Number, Number> chart = new AreaChart<Number,Number>(xAx , yAx);
- chart.getData().addAll(series2);
- chart.setOnKeyPressed(new EventHandler<KeyEvent>() {
- @Override
- public void handle(KeyEvent e) {
- if (e.getCode().equals(KeyCode.UP)){
- //when pressing up key add new 2 point 1 from left and 1 from right
- startX -=step;
- endX +=step;
- series2.getData().add(0,new Data<Number, Number>(startX, Math.sin(startX)));
- series2.getData().add(new Data<Number, Number>(endX, Math.sin(endX)));
- }
- else if (e.getCode().equals(KeyCode.DOWN)){
- //when pressing down key remove new 2 point 1 from left and 1 from right
- inData.remove(inData.size()-1);
- inData.remove(0);
- startX +=step;
- endX -=step;
- }
- }
- });
- stage = new Stage();
- Group root = new Group(chart);
- Scene scene = new Scene(root);
- stage.setWidth(500);
- stage.setHeight(500);
- stage.setScene(scene);
- stage.show();
- chart.requestFocus();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement