如何使用套接字输入使用JavaFX创建动态折线图

时间:2015-02-20 21:05:11

标签: sockets dynamic javafx linechart

我编写了一些代码来读取套接字输入,并在Double值的ArrayList中输出我想要的数据。我想继续用当前值更新这个ArrayList,并将它们绘制成JavaFx中的折线图。

如何设置我的javafx文件,以便在套接字提供新数据时更新图表?

1 个答案:

答案 0 :(得分:2)

JavaFX图表中的data是ObservableLists的ObservableList - 每个图表系列的一个ObservableList。图表监听可观察数据列表的变化,当您修改任何这些ObservableList中的任何数据时(由于它们的可观察性质),图表将自动更新。所以你真的不需要做太多。

在更改图表数据之前,请将图表的animated属性设置为适当的值;即,如果希望图表中的新值直接显示,请关闭动画;如果希望图表中的数据点慢慢移动到新值,请启用动画。

您声明您正在通过套接字接收数据。通常使用传统的套接字IO,您有一个线程监视套接字以获取新数据 - 这不应该是JavaFX应用程序线程,否则您的应用程序UI将在等待新数据时挂起。当套接字监视线程接收新数据时,它不应直接修改图表数据的ObservableList。相反,它应该在Platform.runLater()调用中对图表的可观察列表进行任何修改,以便对JavaFX应用程序线程进行对图表数据的修改。