Springboot + JavaFX + SceneBuilder 연동하기
JavaFX 와 SceneBuilder 설치는 아래의 Link를 참고하세요.
Link : JavaFX java GUI 라이브러리 이클립스 설치 방법
Link : SceneBuilder JavaFX 연동하기, 보다 편한 GUI 생성
Springboot Version : 2.1.1 입니다. Gradle 기반입니다.
혹시나 Gradle 프로젝트를 생성하는 방법은 아래의 Link를 참고하세요.
Link : Eclipse Spring boot Gradle 프로젝트 간단 생성 방법
이제 환경은 다 잡혔다는 가정하에 연동을 해보겠습니다.
위의 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창이 실행되는 것을 확인 하실 수 있습니다.
'Programing > JavaFX' 카테고리의 다른 글
JavaFX Text style 변경 TextArea, TextFrow (0) | 2019.10.28 |
---|---|
JavaFX UI변경하기, 변경시 주의점. Not on FX application thread (0) | 2019.10.28 |
Springboot + JavaFX + SceneBuilder 새창열기 open new window (0) | 2019.10.25 |
Springboot + JavaFX + SceneBuilder menu 추가 방법 (0) | 2019.10.24 |
JavaFX java GUI 라이브러리 이클립스 설치방법 (2) | 2019.10.22 |
댓글