쪼꼬만 지식 가게

Tiny Wisdom Saves You!

Tiny Wisdom saves You!

데이터/IT 조금 전문적으로

자바로 GUI(그래픽 사용자 인터페이스) 프로그램 만드는 방법

쪼꼬만 아저씨 2024. 10. 22. 12:32
반응형
자바로 GUI 프로그램 만드는 방법

자바로 GUI 프로그램 만드는 방법

자바로 GUI(Graphical User Interface) 프로그램을 만드는 방법은 크게 두 가지 방식이 있습니다. 첫 번째는 자바의 표준 GUI 라이브러리인 Swing을 사용하는 방법이고, 두 번째는 JavaFX를 사용하는 방법입니다. 각각의 방법에 대해 간단하게 설명하고, 기본적인 예제를 제공하겠습니다.

1. 자바 Swing으로 GUI 프로그램 만들기

Swing은 자바에서 오랫동안 사용된 GUI 라이브러리로, 간단한 그래픽 인터페이스를 구축할 수 있는 다양한 클래스와 컴포넌트를 제공합니다. 이 방식은 자바 SE에 포함되어 있기 때문에 추가 설치가 필요 없고, 상대적으로 배우기 쉽습니다.

기본적인 Swing GUI 예제


import javax.swing.*;  // Swing 라이브러리 임포트
import java.awt.*;      // 레이아웃 및 그래픽 관련 클래스 임포트
import java.awt.event.*;  // 이벤트 처리 관련 클래스 임포트

public class HelloWorldSwing {
    public static void main(String[] args) {
        JFrame frame = new JFrame("Hello World");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(300, 200);  // 프레임 크기 설정

        JLabel label = new JLabel("Hello, World!", SwingConstants.CENTER);
        frame.add(label);  // 프레임에 레이블 추가

        JButton button = new JButton("Click Me");
        frame.add(button, BorderLayout.SOUTH);  // 버튼을 프레임의 아래쪽에 배치

        button.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                label.setText("Button Clicked!");  // 버튼 클릭 시 레이블 텍스트 변경
            }
        });

        frame.setVisible(true);
    }
}

Swing 예제 설명:

  • JFrame: 애플리케이션의 메인 창을 나타냅니다.
  • JLabel: 텍스트나 이미지를 화면에 표시할 수 있는 컴포넌트입니다.
  • JButton: 클릭 가능한 버튼을 나타냅니다.
  • ActionListener: 버튼과 같은 컴포넌트의 이벤트를 처리하는 리스너 인터페이스입니다.

2. 자바 JavaFX로 GUI 프로그램 만들기

JavaFX는 더 모던한 GUI 라이브러리로, 그래픽과 미디어 관련 기능이 더 강력하고 다양한 스타일링을 지원합니다. JavaFX는 Swing보다 더 유연하며 애니메이션이나 CSS 스타일링을 쉽게 적용할 수 있는 장점이 있습니다. JavaFX는 자바 11부터 별도의 모듈로 분리되어 있기 때문에 설치가 필요할 수 있습니다.

기본적인 JavaFX GUI 예제


import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;

public class HelloWorldJavaFX extends Application {

    @Override
    public void start(Stage primaryStage) {
        Label label = new Label("Hello, World!");
        Button button = new Button("Click Me");

        button.setOnAction(e -> label.setText("Button Clicked!"));

        VBox layout = new VBox(10);  // 컴포넌트 간 간격 10
        layout.getChildren().addAll(label, button);

        Scene scene = new Scene(layout, 300, 200);

        primaryStage.setTitle("Hello World");
        primaryStage.setScene(scene);
        primaryStage.show();  // 윈도우 띄우기
    }

    public static void main(String[] args) {
        launch(args);  // JavaFX 애플리케이션 시작
    }
}

JavaFX 예제 설명:

  • Application: JavaFX 애플리케이션은 이 클래스를 상속받아 구현됩니다.
  • Stage: 애플리케이션의 기본 창을 나타냅니다.
  • Scene: 스테이지 안에 배치될 장면(Scene)을 나타냅니다.
  • VBox: 컴포넌트들을 세로로 배치하는 레이아웃 컨테이너입니다.
  • Button: 클릭 가능한 버튼을 나타냅니다.
  • setOnAction: 버튼의 이벤트 핸들러를 설정합니다.

Swing과 JavaFX의 차이점

  • Swing은 오랫동안 사용된 라이브러리로, 더 간단한 프로그램에서는 여전히 유용합니다. 하지만 JavaFX는 그래픽 성능과 사용자 경험을 더 높일 수 있는 다양한 기능을 지원합니다.
  • JavaFX는 CSS로 UI를 스타일링할 수 있고, 더 직관적인 레이아웃 시스템을 제공합니다.
  • Swing은 자바의 기본 GUI 라이브러리로 더 안정적이며, 호환성 면에서 여전히 널리 쓰입니다.

결론

간단한 GUI 프로그램을 만들고 싶다면 Swing이 더 만들기가 쉽습니다. 만일 더 복잡하고 인터랙티브한 UI나 최신 스타일링이 필요하다면 JavaFX가 더 나은 선택으로 보입니다.

반응형