当前位置: 首页 > 知识库问答 >
问题:

JavaFX中的多线程

呼延鸿畅
2023-03-14

我需要在 JavaFX 应用程序的后台使用多个线程。我有一个带有十个按钮的屏幕,我需要将每个线程与启动线程的按钮“绑定”在一起。如果用户按下了启动线程的按钮(在主屏幕中,MainController.java),我需要恢复它以显示包含的信息,以在详细信息屏幕(第二个屏幕,DetailController.java)的控件上显示它。

你推荐什么课程?服务?

https://docs.oracle.com/javase/8/javafx/api/javafx/concurrent/package-summary.html

是否可以使用这些类中的任何一个来命名线程?

最好的问候,

共有1个答案

夏俊人
2023-03-14

JavaFX并发快速概述将在Oracle教程中解释)。

任务和服务都实现了Worker接口,它提供了许多可观察和FX线程安全的属性。例如,您可以绑定到Button的禁用属性的running属性,但在您的应用程序中还有更多可以直接或间接使用的属性。

不同的是,Task仅用于一次:

Task<V> task = new Task<>();
Thread taskThread = new Thread(task);
taskThread.start();

之后,您无法重新启动或重用此任务,您必须创建另一个任务。由于这有些乏味,因此创建了该服务。它允许多次执行任务(内部每次都会创建一个新任务)。

而且,正如您可能已经看到的那样,在使用Task时,您可以自己分配ThreadGroups和其他Thread属性。也可以为<code>服务</code>设置这些属性,但必须指定一个Executor(可以在其中设置属性)。

 类似资料:
  • 我在JavaFx应用程序中面临一个问题。 前言:我不想具体到我的应用程序,而是想概括,这样像我这样的人就会对类似的情况有所了解。 背景:使用fxml文件和多线程概念实现一个Javafx应用程序。 总结:我试着做了一个应用程序,它基本上使用多线程来做一些任务,一旦多线程完成,它就会依次移动到另一个任务。在执行多线程操作时,主GUI会冻结。 我的所作所为, 现在,结果是这样的。如果我只是从控制器启动线

  • 我有两个交织在一起的多线程问题。 我在使用spring boot的JavaFX桌面应用程序中有一个SplitPane。左边是树视图,右边是选项卡窗格。开始时,SplitPane设备位于右侧边缘,隐藏了TabPane。当用户在树中选择一个项目时,两件事将同时发生: 首先,根据选择,创建10个选项卡。选项卡因所选对象而异。每个选项卡都显示与选定对象相关的详细数据。大多数选项卡包含图表,但也包含文本。

  • 问题内容: 我有一个简单的JavaFX 2应用程序,带有2个按钮,分别是“开始”和“停止”。单击开始按钮后,我想创建一个后台线程,该线程将进行一些处理并随着时间的推移更新UI(例如进度条)。如果单击停止按钮,我希望线程终止。 我尝试使用从文档中收集的类来完成此操作。但是,每当我单击“开始”时,UI就会冻结/挂起,而不是保持正常。 她是来自主类的用于显示按钮的代码: 这是类的代码: 相当简单,但是每

  • 主要内容:JavaFX多边形折线JavaFX多边形折线 多边形,一个简单的示例代码如下所示 - 上面的代码生成以下结果。 折线示例,一个简单的示例代码如下所示 - 上面的代码生成以下结果。

  • 问题内容: 我正在JavaFX项目上工作,但出现这样的错误: 我的MainApp.java 我的RootLayoutController.java RootLayout.fxml DrawerContentController.java DrawerContent.fxml 当我单击DefaultContentController中的注销按钮时,发生错误,显示“注销”消息,但我不理解该错误。请帮助

  • 我想创建一个扩展线或路径或其他东西的类(不确定) 该类用于在两个点(源和目标)之间创建一条线。 当用户单击直线时,应添加一个点。然后可以拖动该点(钉子)并相应地移动线。 当前,源和目标是一个扩展圆的类的对象,而钉子是扩展圆的单独类。 这些对象将添加到窗格中并绘制。 A点和B点- Line类应该保存nail对象的数组列表。我只需要知道Line类应该扩展什么。我不确定,因为它需要自我更新。