[java] Java GUI 프로그래밍 소개

Java는 다양한 플랫폼에서 실행되는 멀티 패러다임 프로그래밍 언어로, 사용자 인터페이스(UI)를 개발하기 위한 강력한 기능을 제공합니다. Java GUI(Graphical User Interface) 프로그래밍은 사용자가 그래픽으로 상호 작용할 수 있는 응용 프로그램을 개발하는 기술입니다.

Swing 라이브러리

Java에서 GUI 프로그래밍을 할 때 가장 많이 사용되는 라이브러리는 Swing입니다. Swing은 Java Foundation Classes (JFC)에 포함되어 있으며, 쉽고 유연한 GUI 컴포넌트를 제공합니다. 다양한 컴포넌트를 조합하여 유저가 화면에서 데이터를 입력하고 출력하는 기능을 개발할 수 있습니다.

Swing은 JDK에 기본으로 포함되어 있기 때문에 별도 설치 없이 사용할 수 있습니다. 다음과 같은 코드를 사용하여 간단한 Swing 창을 생성할 수 있습니다.

import javax.swing.*;

public class SimpleGUI {
   public static void main(String[] args) {
      JFrame frame = new JFrame("Simple GUI");
      frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      
      JLabel label = new JLabel("Hello, GUI!");
      frame.getContentPane().add(label);
      
      frame.pack();
      frame.setVisible(true);
   }
}

위의 코드에서는 JFrame, JLabel 등 Swing의 컴포넌트를 사용하여 GUI 창을 만들고, 라벨을 추가했습니다. frame.pack() 메서드는 컨텐트 팬의 크기에 맞게 프레임의 크기를 조정하고, frame.setVisible(true)은 창을 화면에 표시합니다.

JavaFX

Java 8부터 JavaFX라는 라이브러리가 포함되었습니다. JavaFX는 다양한 플랫폼에서 잘 작동하는 현대적이고 유연한 GUI 애플리케이션을 개발하기 위한 도구입니다. Swing에 비해 더욱 강력한 기능과 향상된 시각적 효과를 제공합니다.

JavaFX를 사용하여 GUI 프로그래밍을 하려면 JDK 8 이상 버전이 필요합니다. 다음과 같이 JavaFX 앱을 만들어볼 수 있습니다.

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

public class SimpleFX extends Application {
    @Override
    public void start(Stage primaryStage) {
        Label label = new Label("Hello, JavaFX!");
        StackPane root = new StackPane();
        root.getChildren().add(label);
        Scene scene = new Scene(root, 300, 200);
        primaryStage.setTitle("Simple FX");
        primaryStage.setScene(scene);
        primaryStage.show();
    }

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

위의 코드에서는 Application 클래스를 상속받아 start() 메서드를 재정의하여 JavaFX 앱을 개발하고 있습니다. Label 컴포넌트를 생성하여 스택 패널에 추가하고, 씬을 생성하여 스택 패널을 포함시킨 후 전체 창에 해당 씬을 설정합니다. 마지막으로, primaryStage.show()를 호출하여 창을 화면에 표시합니다.

결론

Java의 GUI 프로그래밍은 Swing 또는 JavaFX를 사용하여 다양한 플랫폼에서 실행되는 멋진 사용자 인터페이스를 개발하는데 유용한 도구와 라이브러리를 제공합니다. Swing은 더 오래된 기술이지만 여전히 많은 개발자들이 사용하고 있고, JavaFX는 최신 기술과 더 나은 시각적 효과를 제공합니다. 여러분의 프로젝트에 적합한 도구를 선택하여 멋진 GUI 애플리케이션을 개발해보세요!

참고 자료