고급 JAVA/FX

javaFX - 화면 이동과 애니메이션 (화면 이동)

행복하게사는게꿈 2020. 5. 23. 12:44

화면 이동과 애니메이션

 

 애플리케이션은 메인화면 뿐만 아니라 회원가입 화면, 로그인화면, 목록화면 등등 많은 화면을

 

가지고 있음 => 애니메이션을 사용하면 화면이 이동될 때 지루하지 않게 해줌.

 

같은 화면에서도 마우스의 위치에 따라 컨트롤의 속성을 변화시켜 다이나믹한 애니메이션을 만들

 

수도 있음.

 


화면 이동

 

 Stage에 새로운 Scene를 세팅하는 것이 화면을 이동하는 가장 쉬운 방법.

 

애플리케이션 실행 => start() 메서드는 메인 화면인 Scene를 생성, 

 

primaryStage의 setScene()메서드로 Scene 설정.

 

@Override

public void start(Stage primaryStage) throws Exception {

   primaryStage.setTitle("AAA");

   Parent root = FXMLLoader.load(getClass().getResource("root.fxml");

   Scene scene = new Scene(root);

   primaryStage.setScene(scene);

   primaryStage.show();

}

이 메인 화면에서 로그인화면으로 이동을 위해 버튼을 클릭했다면?

 

컨트롤러의 이벤트 처리 메서드는 로그인 Scene을 생성, primaryStage의 setScene()메서드로 

 

메인 Scene을 로그인 Scene으로 변경.

 

public void handleButtonLogin(ActionEvent ae){

   try{

        Parent login = FXMLLoader.load(getClass().getResource("login.fxml");

        Scene scene = new Scene(login);

        primaryStage.setScene(scene);

   }catch(Exception e){

      e.printStackTrace();

  }

}

 

애니메이션을 적용하려면???

 

 : 일시적으로 이전화면과 다음화면이 공존해야함.

 

*그러나 setScene()메서드로 화면 이동을하면, 이전 Scene는 Stage에서 제거됨

 

=> 애니메이션 적용 불가.

 

StackPane을 이용하여 화면 이동 효과와 함께 애니메이션 적용가능.