簡體   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