JavaFX로 데스크톱 애플리케이션을 개발하려면 몇 가지 필수 단계를 거쳐야 합니다. 이 글에서는 JavaFX 기본 애플리케이션을 만드는 과정을 단계별로 자세히 살펴보겠습니다.
1. Application 클래스 상속하기
JavaFX 애플리케이션을 만들려면 javafx.application 패키지의 Application 클래스를 상속받고, 추상 메서드인 start()를 반드시 구현해야 합니다. 이 메서드 안에 JavaFX 애플리케이션의 핵심 코드를 작성하게 됩니다.
자바 클래스를 하나 생성한 뒤 Application 클래스를 상속받고 start() 메서드를 아래와 같이 구현합니다.
public class JavafxSample extends Application {
public void start(Stage primaryStage) throws Exception {
}
}
2. Group 객체 생성하기
Group 노드는 여러 자식 노드를 담을 수 있는 컨테이너 역할을 하는 노드입니다. Group 노드가 렌더링되면 포함된 모든 자식 노드가 순서대로 화면에 그려집니다.
start() 메서드 내부에서 javafx.scene.Group 클래스를 인스턴스화하여 Group 객체를 생성합니다.
Group root = new Group();
3. Scene 객체 생성하기
씬 그래프(Scene Graph)는 트리와 유사한 데이터 구조로, 현대적인 그래픽 애플리케이션에서 노드들의 집합을 의미합니다. JavaFX 애플리케이션에서는 javafx.scene.Scene 클래스가 씬 그래프의 모든 콘텐츠를 담당합니다.
Scene 클래스를 인스턴스화하고, 생성자에 앞서 만든 Group 객체(root)를 전달합니다. 이때 씬의 너비와 높이도 함께 지정할 수 있습니다.
Scene scene = new Scene(root, 600, 300);
4. Stage에 Scene 등록하기
Stage는 JavaFX 애플리케이션의 최상위 컨테이너로, 애플리케이션이 실행되는 창(window) 역할을 하며 javafx.stage.Stage 클래스로 표현됩니다. Stage 객체는 start() 메서드의 매개변수로 자동 전달됩니다.
setScene() 메서드를 사용해 앞서 준비한 Scene 객체를 Stage에 등록합니다.
primaryStage.setScene(scene);
5. 화면에 콘텐츠 표시하기
Stage 클래스의 show() 메서드를 호출하면 씬의 내용이 실제 화면에 나타납니다.
primaryStage.show();
6. 애플리케이션 실행하기(launch)
main 메서드에서 Application 클래스의 정적 메서드인 launch()를 호출하여 JavaFX 애플리케이션을 시작합니다.
public static void main(String args[]){
launch(args);
}
전체 예제 코드
지금까지 설명한 단계를 모두 적용한 완전한 예제입니다. 배경색 지정과 창 제목 설정 과정도 함께 포함되어 있습니다.
import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.paint.Color;
import javafx.stage.Stage;
public class BasicApplication extends Application {
public void start(Stage stage) {
// Group 클래스 인스턴스화
Group root = new Group();
// Scene 클래스 인스턴스화 (배경색 지정)
Scene scene = new Scene(root, 595, 300, Color.BEIGE);
// Stage에 Scene 설정
stage.setScene(scene);
// Stage 제목 설정
stage.setTitle("JavFX Basic Application");
// Stage 내용 화면에 표시
stage.show();
}
public static void main(String args[]){
launch(args);
}
}
실행 결과
코드를 실행하면 가로 595픽셀, 세로 300픽셀 크기의 베이지색(Beige) 배경을 가진 창이 열리고, 제목 표시줄에는 설정된 애플리케이션 제목이 나타납니다.

마무리 정리
JavaFX 기본 애플리케이션은 Application 클래스 상속 → Group(루트 노드) 생성 → Scene 생성 → Stage에 Scene 등록 → show()로 화면 출력 → launch()로 앱 실행의 흐름으로 구성됩니다. 이 기본 구조만 확실히 이해하면 이후 버튼, 레이아웃, 이벤트 처리 등 더 복잡한 UI 요소도 손쉽게 확장할 수 있습니다.