按钮上的GUI更新单击:JavaFX

时间:2014-08-05 19:17:50

标签: java multithreading concurrency javafx platform

想要在点击按钮时首先更新GUI,但是Platform.runLater会在稍后阶段执行,并且正在寻找更新GUI的代码片段,以便在点击按钮时首先发生。

Platform.runLater(new Runnable() {
                    @Override
                    public void run() {
                        //Update GUI here
                    }
                });

如果有人能提供任何意见或建议,我们将非常感激。

1 个答案:

答案 0 :(得分:1)

尽管API指定Platform.runLater“在未来某个未指定的时间在JavaFX应用程序线程上运行指定的Runnable”,但通常很少或没有时间执行指定的线程。相反,您只需向按钮添加一个EventHandler即可收听鼠标点击。

假设控制器implements Initializable

    @FXML Button button;

    @Override
    public void initialize(URL fxmlFileLocation, ResourceBundle resources) {
        button.setOnMouseClicked(new EventHandler<MouseEvent>() {

            @Override
            public void handle(MouseEvent event) {
                updateGUI();
            }
        });
    }

    private void updateGUI() {
        // code
    }