자바의 GUI 라이브러리인 JAVAFX를 인텔리제이에 설치하고 실행테스트를 한다.

 

젯브레인 문서를 참고해서 작성한다.

 

www.jetbrains.com/help/idea/javafx.html#create-project

 

Create a new JavaFX project - Help | IntelliJ IDEA

 

www.jetbrains.com

자바 11 이전까지 JAVAFX 는 자바의 기본 패키지에 포함되었는데 11 이후 부터는 분리되었다. 때문에 자바FX를 설치하려면 별도의 방법으로 한다.

 

아래의 Javafx 사이트에 들어가서 자신의 시스템에 맞는 버전을 다운로드한다. 테스트한 환경은 윈도우10, 자바 버전 15, JAVAFX 는 Windows x64 SDK 15.0.1을 설치하였다.

 

gluonhq.com/products/javafx/

 

JavaFX - Gluon

Long Term Support JavaFX 11 is the first long term support release of JavaFX by Gluon. For commercial, long term support of JavaFX 11, please review our JavaFX Long Term Support options. The JavaFX 11 runtime is available as a platform-specific SDK, as a n

gluonhq.com

SDK 를 다운로드 받으면 압축파일이 하나 있는데 의미있는 폴더에 압축을 해제한다. 필자는 java sdk가 설치된 폴더와 같은 레벨의 디렉토리에 압축을 풀었다.

 

인텔리제이를 시작하여 새로운 프로젝트를 만든다.

 

왼쪽의 Java FX를 선택하고 오른쪽에 자바SDK 를 선택한다. java version "15" 라고 쓴게 보인다. 자바 SDK가 선택되었다. Next 를 클릭한 후 프로젝트의 이름을 지어주고 Finish 한다.

 

다음은 라이브러리를 추가해준다. file 의 Project Settings에 들어가서 Libraries 탭을 클릭한다. javafx-sdk 폴더의 lib 폴더를 선택한 후 ok 를 클릭한다. 

 

다음은 VM options 를 설정해야 한다. VM 은 자바가상머신이고 런타임 환경이다. 메뉴의 Run - Edit Configuration 에 들어간다.

 

다른 웹사이트에서는 다음과 같이 옵션을 주라고 하는 곳이 많았다. 그러나 글쓴이 환경에서는 에러메시지와 함께 동작하지 않았다.

 

--module-path %PATH_TO_FX% --add-modules=javafx.controls,javafx.fxml

 

가운데 PATH_TO_FX 는 라이브러리 저장소인데 아래처럼 그냥 디렉토리의 풀네임을 적으니 구동이 잘 되었다.

(각자의 실행환경에 따라 차이가 있을 수 있다.)

--module-path C:\java\javafx-sdk-15.0.1\lib --add-modules javafx.controls,javafx.fxml

 

 

아무것도 안쓰여있는 작은 창이 작동한 것을 확인하였다면 텍스트를 표시하기 위한 코드를 작성한다.

 

아래 코드는 인텔리제이가 만든 샘플코드를 약간 수정했다. Main.java에 약간 손을 본다.

 

package sample;

import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Group;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.scene.text.Font;
import javafx.scene.text.FontPosture;
import javafx.scene.text.FontWeight;
import javafx.scene.text.Text;
import javafx.stage.Stage;

public class Main extends Application {

    @Override
    public void start(Stage primaryStage) throws Exception{
        Parent root = FXMLLoader.load(getClass().getResource("sample.fxml"));

        printText(primaryStage);

        for (String s :Font.getFamilies()) {
            System.out.println(s);
        }
    }

    static void printText(Stage stage){
        Text text = new Text();
        text.setFont(Font.font("Verdana", FontWeight.BOLD, FontPosture.REGULAR, 30));
        text.setX(50);
        text.setY(100);

        text.setText("Hello my friend!\n\nWe meet again!");

        Group root = new Group(text);
        Scene scene = new Scene(root, 700, 500 );

        stage.setTitle("Text Sample");
        stage.setScene(scene);
        stage.show();

    }


    public static void main(String[] args) {
        launch(args);
    }
}

텍스트를 만들어서 화면에 출력하는 내용이다. 시스템에서 사용가능한 font 를 알고 싶으면 Font.getFamilies 메서드로 확인가능하다.

 

JAVAFX 실행창

작동이 잘 되는 것을 확인할 수 있다.

 

이제부터 JavaFX로 프로그래밍이 가능하다.

공유하기

facebook twitter kakaoTalk kakaostory naver band