How to avoid Not on FX application thread; currentThread = JavaFX Application Thread error? How to avoid Not on FX application thread; currentThread = JavaFX Application Thread error? multithreading multithreading

How to avoid Not on FX application thread; currentThread = JavaFX Application Thread error?


Calling

Platform.runLater(new Runnable(){// do your GUI stuff here});

will fix it.


This happened with me when i was modifying UI element from task in javafx 2 like listview elements.A Task Which Modifies The Scene Graph helped me to solve the issue i.e. updating UI elements by

 final ListView<String> group = new ListView (); Task<Void> task = new Task<Void>() {     @Override protected Void call() throws Exception {         group.getItems().clear();            for (int i=0; i<100; i++) {                             Platform.runLater(new Runnable() {                 @Override public void run() {                     group.getItems.add(i);                 }             });         }         return null;     } };


It should happens when you try to change some component UI, like a label text. Running like that works always:

@FXML Label myLabel;Platform.runLater(new Runnable(){   myLabel.setText("some text");});