[java] 자바 스윙(Swing) 프로그래밍

자바 스윙(Swing)은 자바 프로그래밍 언어를 사용하여 사용자 인터페이스(GUI)를 개발하기위한 툴킷입니다. 스윙은 자바 AWT(추상 윈도우 툴킷)보다 강력하고 유연한 기능을 제공합니다. 이제 자바 스윙 프로그래밍에 대해 알아보겠습니다.

스윙 컴포넌트

스윙은 다양한 컴포넌트를 제공하여 사용자 인터페이스를 구축할 수 있습니다. 몇 가지 주요 스윙 컴포넌트는 다음과 같습니다.

스윙 이벤트 처리

스윙 컴포넌트는 사용자의 동작에 응답하기 위해 이벤트 처리 기능을 제공합니다. 자바 스윙에서 이벤트 처리를 위해 다음과 같은 단계를 따를 수 있습니다.

  1. 이벤트 리스너 인터페이스를 구현합니다.
  2. 이벤트를 처리하는 메서드를 구현합니다.
  3. 리스너를 컴포넌트에 등록합니다.
// 이벤트 리스너 인터페이스 구현
public class MyButtonListener implements ActionListener {
  public void actionPerformed(ActionEvent e) {
    // 이벤트 처리 로직 작성
    System.out.println("버튼이 클릭되었습니다.");
  }
}

// 이벤트 처리 메서드 구현
public void actionPerformed(ActionEvent e) {
  // 이벤트 처리 로직 작성
  System.out.println("버튼이 클릭되었습니다.");
}

// 리스너를 컴포넌트에 등록
JButton button = new JButton("클릭하세요");
button.addActionListener(new MyButtonListener());

스윙 레이아웃 관리자

스윙에서 컴포넌트의 레이아웃을 관리하기 위해 레이아웃 관리자를 사용할 수 있습니다. 레이아웃 관리자는 컨테이너 내부의 컴포넌트를 배치하는 역할을 담당합니다.

스윙 애플리케이션 예제

아래는 간단한 스윙 애플리케이션 예제입니다.

import javax.swing.*;

public class MySwingApp {
  public static void main(String[] args) {
    JFrame frame = new JFrame("나의 스윙 애플리케이션");
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    
    // 레이아웃 매니저 설정
    frame.setLayout(new BorderLayout());
    
    // 컴포넌트 추가
    JLabel label = new JLabel("안녕, 스윙!");
    frame.add(label, BorderLayout.CENTER);
    
    JButton button = new JButton("클릭하세요");
    frame.add(button, BorderLayout.SOUTH);
    
    // 이벤트 리스너 등록
    button.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent e) {
        label.setText("버튼이 클릭되었습니다.");
      }
    });
    
    // 프레임 크기 지정
    frame.setSize(300, 200);
    
    // 프레임 표시
    frame.setVisible(true);
  }
}

위의 코드는 ‘나의 스윙 애플리케이션’이라는 제목을 가진 프레임을 생성하고, 중앙에 ‘안녕, 스윙!’이라는 텍스트를 나타내는 레이블과 하단에 ‘클릭하세요’라는 버튼을 추가합니다. 이 버튼을 클릭하면 레이블의 텍스트가 ‘버튼이 클릭되었습니다.’로 변경됩니다.

스윙 프로그래밍을 사용하면 사용자 친화적인 인터페이스를 개발할 수 있으며, 유연하고 강력한 기능을 제공합니다. 자바 스윙을 사용하여 다양한 윈도우 기반 애플리케이션을 개발해보세요.

참고 자료