고급 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을 이용하여 화면 이동 효과와 함께 애니메이션 적용가능.