ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • javaFX fxml로딩과 Scene 작성 / JavaFX Scene Builder
    고급 JAVA/FX 2020. 5. 22. 19:10

    FXML 로딩

     

     - 작성한 fxml 파일을 읽어들여 선언된 내용을 객체화 하는 것

     

    FXML 파일 로딩을 위해서는 javafx.fxml.FXMLLoader를 해야하며 FXMLLoader는 두 가지 종류의 로드 메서드를 가짐

     

    1. 정적 메서드 load()

     

    2. 인스턴스 메서드 load() 

     


    1. 정적 메서드 load()

     

    FXML 파일이 클래스와 동일한 패키지에 있을 때는 정적 load() 메서드로 FXML 파일을 로딩함.

     

    => Parent root = FMXLLoader.load(getClass().getResource("xxx.fxml"));

     

    getClass() : 현재 클래스 리턴

     

    getResource("xxx.fxml") : 클래스가 위치하는 곳에서 상대 경로로 리소스 URL 리턴

     

    2. 인스턴스 메서드 load()

     

    => FXMLLoader loader = new FXMLLoader.load(getClass().getResource("xxx.fxml"));

     

         Parent root = (Parent).loader.load();

     

    load() 메서드가 리턴하는 타입은 Parent 타입

     

    실제 객체는 FXML 파일에서 루트 태그로 선언된 컨테이너입니다.

     

    FXML파일에서 루트 태그가 <HBox>이면 타입 변환이 가능합니다.

     

    HBox hb = (HBox) FXMLLoader.load(getClass().getResource("xxx.fxml"));

     


    위의 방법 처럼 FXML 파일을 로딩해서 Parent 객체를 얻었으면, Scene(장면) 객체를 생성하면 된다.

     

    Scene s = new Scene(root);

    public class AppMain extends Application {
    
    @Override
    public void start(Stage primaryStage) throws Exception {
    
    Parent root = (Parent)FXMLLoader.load(getClass().getResource("root.fxml"));
    
    Scene scene = new Scene(root);
    
    primaryStage.setTitle("AppMain");
    
    primaryStage.setScene(scene);
    
    primaryStage.show();
    
    }
    public static void main(String[] args) {
    
    launch(args);
    
    }
    
    }

     

    '고급 JAVA > FX' 카테고리의 다른 글

    javaFX - 입력 컨트롤  (0) 2020.05.22
    javaFX 컨트롤 - 버튼 컨트롤  (0) 2020.05.22
    javaFX 속성 바인딩  (0) 2020.05.22
    javaFX 이벤트 핸들러  (0) 2020.05.22
    javaFX - 컨테이너 : AnchorPane 컨테이너  (0) 2020.05.22

    댓글

Designed by Tistory.