繁体   English   中英

JavaFX 8如何在JavaFX折线图上布置Node对象

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM