So habe ich ein Javafx Liniendiagramm in meinem Programm. Das Programm erzeugt jede Sekunde einen Zufallswert von 1 bis 6 und zeichnet es in der Grafik auf. Die X-Achse repräsentiert also die Zeit in Sekunden und die Y-Achse den gewählten Zufallswert. Wie würde ich das Diagramm auf der x-Achse verschieben, wenn die Zeit vergeht? das Animieren des Graphen, der in die richtige Richtung geht.JavaFX bewegt sich entlang der Achse eines Liniendiagramms
public class MainDisplayController implements Initializable {
LineChart<String,Number> lineChart;
Timer timer = new Timer();
TimerTask task;
Random dice = new Random();
@Override
public void initialize(URL arg0, ResourceBundle arg1) {
XYChart.Series<String,Number> series = new XYChart.Series<String,Number>();
series.getData().add(new XYChart.Data<String,Number>("1",0));
lineChart.getData().add(series);
task = new TimerTask(){
int secondsPassed = 0;
@Override
public void run() {
secondsPassed++;
System.out.println(secondsPassed);
int number;
number = 1+dice.nextInt(6);
series.getData().add(new XYChart.Data<String,Number>(String.valueOf(secondsPassed),number));
}
};
timer.scheduleAtFixedRate(task, 1000, 1000);
}
}
Thanks a lot das ist genau das, was ich brauche: Ich habe versucht, Ihre Lösung in mein Programm zur Nachrüstung D –
So aber wenn ich versuche, es gibt mir diesen Fehler zu laufen, beschwert, dass sie einen String will und nicht ein Integer: Ausnahme im Thread "JavaFX Application Thread" java.lang.ClassCastException: java.lang.Integer kann nicht in java.lang.String –
umgewandelt werden Ich habe versucht, die X-Achse zu einer CategoryAxis zu ändern, aber es tut nicht t habe die Methode setForceZeroInRange(), so kann ich das Diagramm nicht verschieben –