10

因此,我知道 JavaFx 在使用线程时更新 GUI 的方法称为 Task,但代码是否以类似的方式工作或有任何差异。让我给你一个挥杆的例子:

GUI 之外的另一个作为线程运行的类

public void run(){
    while (socket.isConnected()) {
        String x = input.next();
        System.out.println(x);
        mg.updateChat(x)
    }
}

在实际的 GUI 中

public void updateChat(final String input){
    SwingUtilities.invokeLater(new Runnable() {
        @Override
        public void run() {
            txtChat.setText(input); 
        }
    }); 
}

Task 的工作方式是否完全相同?或者是否存在差异,如果有,您将如何修改此代码以在 JavaFx 项目中工作?

4

1 回答 1

17

您是否正在寻找 JavaFX 中的 SwingUtil.invokeLater 对应项。如果是,它是:

Platform.runLater(java.lang.Runnable runnable)
于 2012-10-20T03:58:07.973 回答