Multithreading 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

如何在JavaFX中创建线程?我环顾四周,没有一个答案是明确的/我需要的,这与Java的线程可运行性基本相同,Java的线程可运行性与JavaFx不兼容,除非它用于后台任务

我拥有的基本启动应用程序类:

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应用程序线程之外修改场景图。