JAVA UDP套接字和JavaFX GUI

时间:2016-03-04 10:45:11

标签: multithreading javafx udp

我的问题是我需要:

  • 接收包含笛卡尔坐标的UDP数据的一个线程。
  • JavaFX线程(函数?!)在场景上打印这些坐标。

所以我不断从UDP套接字接收数据,并将数据保存在BlockingQueue中。 该队列对于JavaFX线程和UDP_read线程是通用的。现在,我需要一个JavaFX场景(函数?!),它连续从队列中获取数据并在场景中打印(渲染/说明)这些坐标(带有矩形或其他形状),但我不能使用while -loop在JavaFX线程中。

我已尝试使用Task类,但它似乎仅在任务时才有用 时间有限,不连续。

任何帮助都是有意义的

1 个答案:

答案 0 :(得分:0)

根据您所写的内容,我可以假设以下内容:

  1. 您正在从其他线程或通过网络向您的应用程序接收坐标数据。
  2. 您想要在JavaFX应用程序窗口上说明坐标数据。
  3. 我很清楚可能有更好的解决方案,但是,我会以下列方式解决:

    1. 在JavaFX类上拥有全局变量。这些变量用于存储和获取坐标数据。
    2. 在JavaFX类中有一个内部类,用于侦听/接收UDP数据。在此类中,您将运行侦听UDP连接的线程,并将该坐标数据存储在步骤1中的全局变量中。
    3. 使用AnimationTimer类可以将要显示的形状转换/更新到应用程序窗口中。
    4. 在全局变量周围设置同步块非常重要,这样您就不会遇到数据不一致的问题。 希望这有一些帮助。