问题描述
我正在研究一个 JavaFX 项目来分析股票,并且我正在使用 LineChart,lineChart 工作得很好,但是当我开始使用 Task强>,所以用户在分析时会被阻止,这很奇怪,作为日期周期的 X 轴都被混在一起了。
Task<DataModel> t1 = new Task<>() {
@Override
protected DataModel call() {
List<DataModel> = graphValues =
query.getData(data.getSymbol(),startDate,endDate);
return null;
}
};
t1.setonSucceeded((WorkerStateEvent wse) -> {
XYChart.Series<String,Number> closeSeries = new XYChart.Series<>();
lineChart.getData().add(closeSeries);
for (DataModel node : graphValues) {
XYChart.Data<String,Number> closeData =
new XYChart.Data<>(node.getDate(),node.getClose());
closeSeries.getData().add(closeData);
}
t1.setonFailed((WorkerStateEvent wse) -> System.out.println("Do something"));
Thread th = new Thread(t1);
th.setDaemon(true);
th.start();
我无法弄清楚。 提前致谢。
解决方法
此错误的解决方案是手动设置类别,而不是让图表找到它们。
xAxis.setCategories(xAxisList);
或更简单的方法:
xAxis.setAnimated(false)