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 애플리케이션을 개발해보세요!