본문 바로가기

JavaFX

[JavaFX] 자바 FX Not on FX application thread; currentThread = Thread - 7

FX Not on FX application thread; currentThread = Thread - 7 에러 해결

 

JavaFX + Scenebuilder 를 사용해여 개발하던 중 

FX Not on FX application thread; currentThread = Thread - 7 에러가 발생했다.

 

Thread 를 사용해서 fxml의 UI 를 변경할때 발생한 에러인데

JavaFX에서 JavaFX Application Thread가 UI를 담당하는데 Thread에서 UI를 변경하게 되면

Exception in thread "Thread-7" java.lang.IllegalStateException: FX Not on FX application thread; currentThread = Thread - 7

에러가 발생한다.

 

이를 해결하는 방법으로는

Platform.runLater 메소드를 사용해서 해결할 수 있다.

 

@FXML private Label label;

Runnable runnable = new Runnable(){
  @Override
  public void run(){
    Platform.runLater(() -> label.setText("test") );
  }
}