0
したがって、プログラムにjavafx折れ線グラフがあります。プログラムは毎秒1-6のランダム値を生成し、それをグラフにプロットします。したがって、X軸は秒単位の時間を表し、Y軸は選択されたランダム値を表します。時間が経つにつれてグラフをx軸上で動かすにはどうすればいいですか?すなわちグラフを正しい方向にアニメーション化する。JavaFXは線グラフの軸に沿って移動します
xAxis.setForceZeroInRange(false);
を、一定の条件が満たされたときに、あなたのシリーズからのデータは0(最初の1)のインデックスを作成削除:
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);
}
}
このたくさんのおかげで、私が必要とする正確に何である:D –
だから私は私のプログラムにあなたのソリューションを改造しようとしましたが、私は実行しようとすると、それは私にこのエラーを与え、それは文字列を望んでいることを文句はありません整数: スレッド「JavaFXアプリケーションスレッド」の例外java.lang.ClassCastException:java.lang.Integerはjava.lang.Stringにキャストできません –
X軸をCategoryAxisに変更しようとしましたが、メソッドsetForceZeroInRange()があるので、移動するグラフを取得できません –