Multithreading JavaFX:如何在不冻结应用程序的情况下创建循环线程?
如何在JavaFX中创建线程?我环顾四周,没有一个答案是明确的/我需要的,这与Java的线程可运行性基本相同,Java的线程可运行性与JavaFx不兼容,除非它用于后台任务 我拥有的基本启动应用程序类:Multithreading JavaFX:如何在不冻结应用程序的情况下创建循环线程?,multithreading,javafx,Multithreading,Javafx,如何在JavaFX中创建线程?我环顾四周,没有一个答案是明确的/我需要的,这与Java的线程可运行性基本相同,Java的线程可运行性与JavaFx不兼容,除非它用于后台任务 我拥有的基本启动应用程序类: public class Main extends Application { private Stage stage; private AnchorPane rootLayout; @Override public void start(Stage stag
public class Main extends Application {
private Stage stage;
private AnchorPane rootLayout;
@Override
public void start(Stage stage) {
this.stage = stage;
this.stage.setTitle("Main");
setLayout();
}
private void setLayout() {
try {
FXMLLoader loader = new FXMLLoader();
loader.setLocation(Main.class.getResource("view/View.fxml"));
rootLayout = (AnchorPane) loader.load();
Scene scene = new Scene(rootLayout);
stage.setScene(scene);
stage.show();
} catch (IOException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
launch(args);
}
}
我需要一个JavaFX线程,它可以在应用程序运行时不断更改按钮的可见性,而不会冻结/暂停应用程序,我该怎么做呢
编辑:我需要这个,但对于JavaFX应用程序:
public void run(){
while (true){
if (button.isVisible)
button.setVisibility(false);
else
button.setVisibility(true);
Thread.sleep(1000);
}
}
请详细说明如何处理来自另一个线程的UI组件,然后在每个计划的时间段后执行功能。尽量避免while(true)
在线程内。我建议使用a来打开和关闭按钮的可见性-您既不需要单独的线程,也不需要循环。有了时间线,您的UI就不会被冻结,您也不必处理潜在的并发问题,比如试图在JavaFX应用程序线程之外修改场景图。