javaswingjavafxevent-dispatch-threadmixing

JavaFx response to SwingUtilities.invokeLater


So I am aware that JavaFx's method of updating the GUI while using a thread is called Task but does the code work in similar way or are there any differences. let me give you a swing example:

Another class outside the GUI that runs as a thread

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

Inside the actual GUI

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

Does Task work the exact same way? Or are there differences and if there are how would you modify this code to work in a JavaFx project?


Solution

  • Are you looking for SwingUtil.invokeLater counterparts in JavaFX. If yes, it is:

    Platform.runLater(java.lang.Runnable runnable)