JAVA FX
Scene
업데이트 :: 2018.07.26
Scene 이동
public void bandleBtnLogin(ActionEvent event) { try { Parent login = FXMLoader.load(getClass().getResource("login.fxml")); Scene scene = new Scene(login); Stage primaryStage = (Stage) ((Node) event.getSource()).getScene().getWindow(); primaryStage.setScene(scene); } catch (Exception e) { e.printStackTrace(); } }
다음은 컨트롤러의 이벤트 처리에서 페이지 이동을 하는 코드입니다.
"setScene()" 메소드를 사용하면 이전 Scene은 Stage에서 제거됩니다.
Scene 간에 데이터 전달
다음 setUserData / getUserData 함수를 통해 Scene간에 데이터를 전달할 수 있습니다.
this.primaryStage.setUserData(shareObject); this.primaryStage.getUserData();
Scene을 싱글톤 전역객체로 관리하기
Scene을 어디서든 사용할 수 있도록 Singleton 처리 합니다.
primaryStage에 대한 접근이나,
Scene을 이용하는 경우 다음 SceneManager를 통해 할 수 있습니다.
public class SceneManager { private static SceneManager instance; Stage stage; Scene scene; Share share; public SceneManager( Stage stage ) { if(SceneManager.instance != null) return; SceneManager.instance = this; this.stage = stage; this.share = new Share(); this.stage.setUserData(share); } public static SceneManager getInstance() { return instance; } public Stage getStage() { return this.stage; } public void setStage(Stage stage) { this.stage = stage; } public void setTitle( String title ) { stage.setTitle(title); } public void moveScene( String location ) { try { Parent root = FXMLLoader.load(getClass().getResource(location)); scene = new Scene(root); stage.setScene(scene); } catch (IOException e) { e.printStackTrace(); } } }
Created by SDM
작성자 정보
e-mail :: jm921106@naver.com || jm921106@gmail.com
github :: https://github.com/moonscoding
반응형
'Java > JavaFX 개념' 카테고리의 다른 글
Java FX // 개념 // Popup & Dialog (0) | 2018.07.27 |
---|---|
Java FX // 개념 // Controller (0) | 2018.07.27 |
JavaFX // 개념 // TableView (0) | 2018.07.26 |