想要在点击按钮时首先更新GUI,但是Platform.runLater会在稍后阶段执行,并且正在寻找更新GUI的代码片段,以便在点击按钮时首先发生。
Platform.runLater(new Runnable() {
@Override
public void run() {
//Update GUI here
}
});
如果有人能提供任何意见或建议,我们将非常感激。
答案 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
}