7.2 KiB
7.2 KiB
Java Swing 쉽게 배우기
1. Swing이란?
Java Swing은 GUI(그래픽 사용자 인터페이스)를 만드는 라이브러리다.
버튼, 창, 메뉴, 입력 필드 등을 쉽게 만들 수 있다.
Swing의 특징
✔ AWT보다 강력한 GUI 제공 (AWT는 운영체제에 의존, Swing은 독립적)
✔ 더 많은 UI 컴포넌트 제공 (버튼, 리스트, 테이블, 트리 등)
✔ 이식성이 높음 (운영체제에 상관없이 동일한 UI 제공)
✔ 이벤트 기반 프로그래밍 가능
2. 주요 Swing 클래스 및 메서드 정리
(1) JFrame 클래스 (메인 창)
| 메서드 | 설명 |
|---|---|
setSize(int width, int height) |
창의 크기를 설정 |
setVisible(boolean b) |
창을 화면에 표시 (true) 또는 숨김 (false) |
setDefaultCloseOperation(int operation) |
창 닫기 동작 설정 (예: EXIT_ON_CLOSE) |
add(Component comp) |
창에 컴포넌트 추가 |
(2) JPanel 클래스 (패널 - 여러 컴포넌트를 담는 컨테이너)
| 메서드 | 설명 |
|---|---|
add(Component comp) |
패널에 컴포넌트 추가 |
setLayout(LayoutManager mgr) |
패널의 배치 관리자 설정 |
(3) JButton 클래스 (버튼)
| 메서드 | 설명 |
|---|---|
setText(String text) |
버튼의 텍스트 설정 |
addActionListener(ActionListener l) |
버튼 클릭 이벤트 설정 |
(4) JLabel 클래스 (텍스트 라벨)
| 메서드 | 설명 |
|---|---|
setText(String text) |
라벨의 텍스트 변경 |
setIcon(Icon icon) |
라벨에 이미지 아이콘 설정 |
(5) JTextField 클래스 (한 줄 입력 필드)
| 메서드 | 설명 |
|---|---|
setText(String text) |
입력 필드에 텍스트 설정 |
getText() |
입력된 텍스트 가져오기 |
addActionListener(ActionListener l) |
엔터 키 입력 이벤트 설정 |
(6) JTextArea 클래스 (여러 줄 입력 필드)
| 메서드 | 설명 |
|---|---|
setText(String text) |
입력 필드에 텍스트 설정 |
getText() |
입력된 텍스트 가져오기 |
setLineWrap(boolean wrap) |
자동 줄바꿈 설정 |
(7) JCheckBox 클래스 (체크박스)
| 메서드 | 설명 |
|---|---|
setSelected(boolean b) |
체크 상태 설정 |
isSelected() |
체크 여부 확인 |
(8) JRadioButton 클래스 (라디오 버튼)
| 메서드 | 설명 |
|---|---|
setSelected(boolean b) |
선택 상태 설정 |
isSelected() |
선택 여부 확인 |
(9) JComboBox 클래스 (드롭다운 목록)
| 메서드 | 설명 |
|---|---|
addItem(Object item) |
목록에 항목 추가 |
getSelectedItem() |
선택된 항목 가져오기 |
(10) JList 클래스 (리스트 박스)
| 메서드 | 설명 |
|---|---|
setListData(Object[] data) |
리스트 아이템 설정 |
getSelectedValue() |
선택된 값 가져오기 |
(11) JTable 클래스 (테이블)
| 메서드 | 설명 |
|---|---|
setModel(TableModel model) |
테이블 데이터 설정 |
getValueAt(int row, int column) |
특정 위치의 값 가져오기 |
(12) JMenuBar, JMenu, JMenuItem 클래스 (메뉴)
| 메서드 | 설명 |
|---|---|
JMenuBar.add(JMenu menu) |
메뉴바에 메뉴 추가 |
JMenu.add(JMenuItem item) |
메뉴에 항목 추가 |
3. 간단한 Swing 예제
✔ 기본 창 만들기 (JFrame)
import javax.swing.*;
public class SwingExample {
public static void main(String[] args) {
// 프레임 생성
JFrame frame = new JFrame("Swing 기본 창");
frame.setSize(400, 300);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// 창을 보이게 설정
frame.setVisible(true);
}
}
✅ JFrame을 사용하여 기본적인 창을 생성하는 코드다.
✅ setSize()로 크기 설정, setVisible(true)로 창을 표시한다.
✔ 버튼 추가 및 이벤트 처리 (JButton)
import javax.swing.*;
import java.awt.event.*;
public class ButtonExample {
public static void main(String[] args) {
JFrame frame = new JFrame("버튼 예제");
frame.setSize(300, 200);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JButton button = new JButton("클릭하세요!");
button.addActionListener(e -> JOptionPane.showMessageDialog(null, "버튼이 눌렸습니다!"));
frame.add(button);
frame.setVisible(true);
}
}
✅ JButton을 추가하고, 버튼 클릭 이벤트를 처리하는 코드다.
✅ JOptionPane.showMessageDialog()를 사용해 팝업 메시지 출력이 가능하다.
✔ 텍스트 입력 필드 (JTextField)
import javax.swing.*;
public class TextFieldExample {
public static void main(String[] args) {
JFrame frame = new JFrame("텍스트 입력 예제");
frame.setSize(300, 200);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JTextField textField = new JTextField(20);
JButton button = new JButton("확인");
button.addActionListener(e -> JOptionPane.showMessageDialog(null, "입력한 값: " + textField.getText()));
JPanel panel = new JPanel();
panel.add(textField);
panel.add(button);
frame.add(panel);
frame.setVisible(true);
}
}
✅ JTextField를 사용하여 사용자로부터 입력을 받는 GUI다.
✅ 버튼 클릭 시 입력된 값이 팝업으로 출력된다.
✔ 체크박스 (JCheckBox)
import javax.swing.*;
public class CheckBoxExample {
public static void main(String[] args) {
JFrame frame = new JFrame("체크박스 예제");
frame.setSize(300, 200);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JCheckBox checkBox = new JCheckBox("동의합니다.");
JButton button = new JButton("확인");
button.addActionListener(e -> {
if (checkBox.isSelected()) {
JOptionPane.showMessageDialog(null, "체크됨!");
} else {
JOptionPane.showMessageDialog(null, "체크 안됨!");
}
});
JPanel panel = new JPanel();
panel.add(checkBox);
panel.add(button);
frame.add(panel);
frame.setVisible(true);
}
}
✅ 체크박스를 추가하고 상태를 확인하는 코드다.
4. 정리
✔ Swing은 Java에서 GUI를 만들기 위한 라이브러리!
✔ 버튼, 입력 필드, 체크박스, 리스트, 테이블 등 다양한 UI 제공
✔ 이벤트 리스너를 통해 사용자 입력 처리 가능
✅ Swing을 활용하면 간단한 GUI 프로그램부터 복잡한 데스크톱 애플리케이션까지 개발 가능!