자바의 Swing 이해하기

Swing은 자바 재단 클래스(JFC)의 일부이며, 오래되었지만 여전히 관련 있는 자바 기반 GUI 생성 프레임워크 중 하나입니다.

  • Swing의 기초:
    • 이벤트 중심 프레임워크로 가벼운 컴포넌트를 사용합니다.
    • 버튼, 텍스트 필드, 테이블과 같은 다양한 위젯 제공.
  • 간단한 Swing 애플리케이션 생성하기:
    • 버튼과 이벤트 처리를 포함한 기본 GUI 예제.
1
2
3
4
5
6
7
8
9
10
11
12
13
import javax.swing.*;
public class FirstSwingExample {
    public static void main(String[] args) {
        JFrame frame = new JFrame();//JFrame 인스턴스 생성  
        JButton button = new JButton(“클릭”);//JButton 인스턴스 생성  
        button.setBounds(130,100,10040);
        frame.add(button);//JFrame에 버튼 추가    
        frame.setSize(400,500);//너비 400, 높이 500 설정  
        frame.setLayout(null);//레이아웃 관리자 사용 안 함  
        frame.setVisible(true);//프레임을 보이게 설정    
    }
}
cs

 

JavaFX: 자바 GUI의 현대적 접근

JavaFX는 Swing을 대체할 목적으로 개발된 더 새로운 프레임워크로, 현대적인 GUI 개발을 위한 향상된 기능과 능력을 제공합니다.

  • JavaFX의 특징:
    • 2D 및 3D 그래픽, 웹 렌더링, 미디어 재생을 위한 풍부한 API 세트.
    • CSS 스타일링과 FXML, XML 기반 UI 마크업 언어를 지원합니다.
  • JavaFX 애플리케이션 구축하기:
    • 기본 레이아웃과 컨트롤을 포함한 JavaFX 예제.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
public class HelloWorld extends Application {
    public void start(Stage primaryStage) {
        Button btn = new Button();
        btn.setText(“Say ‘Hello World'”);
        btn.setOnAction(event > System.out.println(“Hello World!”));
        StackPane root = new StackPane();
        root.getChildren().add(btn);
        Scene scene = new Scene(root, 300250);
        primaryStage.setTitle(“Hello World!”);
        primaryStage.setScene(scene);
        primaryStage.show();
    }
    public static void main(String[] args) {
        launch(args);
    }
}
cs

 

Swing과 JavaFX 비교

  • Swing 대 JavaFX:
    • Swing은 널리 사용되며 다양한 컴포넌트를 가지고 있지만, JavaFX는 풍부한 기능 세트와 사용의 용이성으로 현대적인 접근을 제공합니다.

친숙함과 널리 사용되는 Swing을 선택하든, 현대적인 기능을 제공하는 JavaFX를 선택하든, 두 프레임워크 모두 자바 GUI 개발에 탁월한 선택입니다. 각각의 장점과 사용 사례를 이해하면 더 상호작용적이고 시각적으로 매력적인 애플리케이션을 만들 수 있습니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다