[英]JavaFX 8 How to dispose a Node object on a JavaFX Line chart
我有一个移动的折线图(实时图表,其中数据每秒移动一次,即上限和下限以及显示折线的序列每秒更新一次)。 每分钟一次,我还会在图表上显示锚定到特定xy值的文本对象。
整个图表每秒钟更新一次,此文本对象也会更新(文本对象每秒移动一次)
问题:
文本对象没有移过下限
我正在创建文本对象,然后使用setNode()API将其添加到XYChart.Data点,然后将此数据点设置为XYChart.Series并设置其样式。
我无法找出一种处理此文本对象的方法。
代码:创建文本对象并将其设置为XYChart.Data对象
Text moaLabel = new Text("MHRext\nUS1\nUnknown");
Data<Date, Integer> moaPlot = new Data<>();
moaPlot.setNode(moaLabel);
moaPlot.setXValue(xPosition);
moaPlot.setYValue(yPosition);
将Data对象添加到series对象
textSeries.getData().add(moaPlot);
的CSS
.chart-series-line-text-mode {
-fx-stroke-width: 0px;
-fx-stroke: #FFFFFF;
-fx-effect: null;
}
我找到了解决问题的方法。
方法是检查moaPlot.getXValue().equals(lowerBound)
然后将其从textSeries
列表中删除。
就我而言,由于图表每秒移动一次,因此我在调度程序中每秒运行以下代码。
Executors.newSingleThreadScheduledExecutor().scheduleAtFixedRate(()->{
textSeries.getData().removeIf(moa -> (moa.getXValue().before(lowerBound)));
}, 0, 1, TimeUnit.SECONDS);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.