본문 바로가기

JavaFX

[JavaFX] JavaFX cannot set style once stage has been set visible 에러

 

로그인 화면과 업무 화면을 구분하면 로그인과 업무 화면의 스테이지 스타일을 다르게 해놨다.

  • 로그인 화면은 stage.initStyle(StageStyle.undecorated)
  • 업무화면은 stage.initStyle(StageStyle.DECORATED)

로그아웃으로 로그인 화면으로 이동할 때

cannot set style once stage has been set visible  에러가 발생

 

원인은 스테이지가 표시되면 스타일을 설정할 수 없다는 에러인 듯하다.

 

그래서 기존 스테이지를 close()로 닫고

새 스테이지를 생성해서 initStyle(StageStyle.UNDECORATED) 하니까 해결됐다.

 

Stage s = (Stage) view.getScene().getWindow();
s.close();

Parent root = FXMLLoader.load(getClass().getClassLoader().getResource("path"));
Stage stage = new Stage();
stage.initStyle(StageStyle.UNDECORATED);

Scene scene = new Scene(root);
stage.setScene(scene);
stage.show();