所以我知道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);
}
});
}
任务的工作方式是否完全相同?或者是否存在差异,是否有如何修改此代码以在JavaFx项目中工作?
答案 0 :(得分:16)
您是否正在寻找JavaFX中的SwingUtil.invokeLater对应物。如果是,那就是:
Platform.runLater(java.lang.Runnable runnable)