Programing/JavaFX

Springboot + JavaFX + SceneBuilder 연동하기

리커니 2019. 10. 23.
반응형

Springboot + JavaFX + SceneBuilder 연동하기

 

JavaFX 와 SceneBuilder 설치는 아래의 Link를 참고하세요.

 

Link : JavaFX java GUI 라이브러리 이클립스 설치 방법

 

JavaFX java GUI 라이브러리 이클립스 설치방법

JavaFX java GUI 라이브러리 이클립스 설치방법 윈도우용 GUI 응용프로그램을 만들기 위한 라이브러리인 JavaFX 플러그인 설치방법을 알아보겠습니다. 기존에 있던 AWT 나 Swing 보다 편리하고 뛰어납니다. 이클립..

aljjabaegi.tistory.com

 

 

Link : SceneBuilder JavaFX 연동하기, 보다 편한 GUI 생성

 

SceneBuilder JavaFX 연동하기. 보다 편한 GUI 생성

SceneBuilder JavaFX 연동하기. 보다 편한 GUI 생성 앞선 포스팅에서 JavaFX 설치 방법을 알아보았습니다. Link : JavaFX java GUI 라이브러리 이클립스 설치방법 JavaFX java GUI 라이브러리 이클립스 설치방법 J..

aljjabaegi.tistory.com

 

Springboot Version : 2.1.1 입니다. Gradle 기반입니다.

혹시나 Gradle 프로젝트를 생성하는 방법은 아래의 Link를 참고하세요.

 

Link : Eclipse Spring boot Gradle 프로젝트 간단 생성 방법

 

Eclipse Spring boot Gradle 프로젝트 간단 생성 방법

Eclipse Spring boot Gradle 프로젝트 간단 생성 방법 원래는 간단 합니다. 이클립스 좌측 Project Explorer 에서 오른쪽 마우스 클릭. New > Other... > Spring > Spring Starter Project 선택. 해서 버전만 선택..

aljjabaegi.tistory.com

 

 

이제 환경은 다 잡혔다는 가정하에 연동을 해보겠습니다.

위의 Link 대로 test라는 프로젝트를 생성하였습니다. 기본 패키지는 com.tistory.aljjabaegi.test

 

패키지를 하나 추가하겠습니다. com.tistory.aljjabaegi.test.view

 

 

view 패키지를 생성하셨으면 그 패키지에서 마우스 오른쪽 클릭 > New > Other 을 선택합니다.

 

 

fx를 검색해 javaFX > New FXML Document 를 선택 후 Next.

 

 

FXML 파일명을 선택하고 Root Element는 AnchorPane 을 선택합니다.

AnchorPane은 좌표기반으로 하는 레이아웃입니다.

 

그럼 view 패키지내에 FxTest.fxml 파일이 생성된 것을 확인 하실 수 있습니다.

이제 Springboot 프로젝트가 실행이 되면서 UI 가 실행 될 수 있게

메인 클래스를 수정합니다.

 

JavaFX를 실행하기 위해 Application 클래스를 extends 합니다.

 

 

그리고 start 메소드를 오버라이드 합니다.

 

@SpringBootApplication
public class TestApplication extends Application{

    public static void main(String[] args) {
        SpringApplication.run(TestApplication.class, args);
    }

    @Override
    public void start(Stage arg0) throws Exception {
        // TODO Auto-generated method stub
        
    }
}

 

이제 기본 골격은 잡혔고, 아래와 같이 코드를 추가해 줍니다.

 

@SpringBootApplication
public class TestApplication extends Application{

    private ConfigurableApplicationContext ctx;
    private Parent rootNode;
    
    public static void main(String[] args) {
        Application.launch(args);
    }

    @Override
    public void init() throws Exception {
        ctx = SpringApplication.run(TestApplication.class);

        /*Server Layout Setting*/
        FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("view/FxTest.fxml"));
        fxmlLoader.setControllerFactory(ctx::getBean);
        rootNode = fxmlLoader.load();
    }
    
    @Override
    public void start(Stage stage) throws Exception {
        stage.setTitle("JavaFX Test"); // 창 타이틀 설정
        stage.setScene(new Scene(rootNode));
        stage.setResizable(false); // 크기 조절 막기
        stage.show();
    }
    
    @Override
    public void stop() throws Exception {
        ctx.close();
    }
}

 

메인 클래스에서는 JavaFX를 실행하는 코드만 추가하고, 실제 구현 해야 될 로직은 init() 메소드 내에 구현을 하시면 됩니다 .

이제 실행을 하시면 windows창이 실행되는 것을 확인 하실 수 있습니다.

 

 

반응형

댓글

💲 추천 글