add user agent parser and update build configuration
This commit is contained in:
215
docs/swing/컴포넌트.md
Normal file
215
docs/swing/컴포넌트.md
Normal file
@@ -0,0 +1,215 @@
|
||||
## **1. 주요 Swing 컴포넌트 메서드 정리**
|
||||
|
||||
### **(1) `JLabel` 메서드**
|
||||
| 메서드 | 설명 |
|
||||
|--------|------------------------------------------|
|
||||
| `setText(String text)` | 레이블의 텍스트를 설정 |
|
||||
| `getText()` | 레이블의 현재 텍스트 반환 |
|
||||
| `setIcon(Icon icon)` | 아이콘을 설정 |
|
||||
| `getIcon()` | 현재 설정된 아이콘 반환 |
|
||||
| `setHorizontalAlignment(int alignment)` | 텍스트/아이콘의 수평 정렬 설정 (`SwingConstants.LEFT`, `CENTER`, `RIGHT`) |
|
||||
| `setVerticalAlignment(int alignment)` | 텍스트/아이콘의 수직 정렬 설정 (`TOP`, `CENTER`, `BOTTOM`) |
|
||||
|
||||
---
|
||||
|
||||
### **(2) `JButton` 메서드**
|
||||
| 메서드 | 설명 |
|
||||
|--------|------------------------------------------|
|
||||
| `setText(String text)` | 버튼의 텍스트 설정 |
|
||||
| `getText()` | 버튼의 현재 텍스트 반환 |
|
||||
| `setEnabled(boolean b)` | 버튼 활성화/비활성화 |
|
||||
| `setIcon(Icon icon)` | 버튼의 아이콘 설정 |
|
||||
| `addActionListener(ActionListener l)` | 클릭 이벤트 리스너 추가 |
|
||||
|
||||
---
|
||||
|
||||
### **(3) `JToggleButton` 메서드**
|
||||
| 메서드 | 설명 |
|
||||
|--------|------------------------------------------|
|
||||
| `setSelected(boolean b)` | 토글 버튼의 선택 상태 설정 |
|
||||
| `isSelected()` | 현재 선택 상태 반환 |
|
||||
| `addItemListener(ItemListener l)` | 상태 변경 이벤트 리스너 추가 |
|
||||
|
||||
---
|
||||
|
||||
### **(4) `JCheckBox` 메서드**
|
||||
| 메서드 | 설명 |
|
||||
|--------|------------------------------------------|
|
||||
| `setSelected(boolean b)` | 체크박스의 선택 여부 설정 |
|
||||
| `isSelected()` | 현재 선택 상태 반환 |
|
||||
| `addItemListener(ItemListener l)` | 체크박스 상태 변경 이벤트 리스너 추가 |
|
||||
|
||||
---
|
||||
|
||||
### **(5) `JRadioButton` 메서드**
|
||||
| 메서드 | 설명 |
|
||||
|--------|------------------------------------------|
|
||||
| `setSelected(boolean b)` | 라디오 버튼의 선택 상태 설정 |
|
||||
| `isSelected()` | 현재 선택 상태 반환 |
|
||||
| `setText(String text)` | 버튼의 텍스트 설정 |
|
||||
| `addItemListener(ItemListener l)` | 상태 변경 이벤트 리스너 추가 |
|
||||
|
||||
---
|
||||
|
||||
### **(6) `JComponent` 메서드 (모든 Swing 컴포넌트의 공통 메서드)**
|
||||
| 메서드 | 설명 |
|
||||
|--------|------------------------------------------|
|
||||
| `setBackground(Color c)` | 배경색 설정 |
|
||||
| `setForeground(Color c)` | 전경색(글자색) 설정 |
|
||||
| `setFont(Font f)` | 폰트 설정 |
|
||||
| `setBounds(int x, int y, int width, int height)` | 컴포넌트의 위치와 크기 설정 |
|
||||
| `setToolTipText(String text)` | 툴팁(마우스 오버 시 표시되는 설명) 설정 |
|
||||
|
||||
---
|
||||
|
||||
### **(7) `AbstractButton` 메서드 (JButton, JToggleButton, JCheckBox, JRadioButton의 공통 메서드)**
|
||||
| 메서드 | 설명 |
|
||||
|--------|------------------------------------------|
|
||||
| `setText(String text)` | 버튼의 텍스트 설정 |
|
||||
| `getText()` | 버튼의 현재 텍스트 반환 |
|
||||
| `setIcon(Icon icon)` | 버튼의 아이콘 설정 |
|
||||
| `setSelected(boolean b)` | 선택 여부 설정 (토글 버튼 및 체크박스에서 사용) |
|
||||
| `isSelected()` | 현재 선택 여부 반환 |
|
||||
| `addActionListener(ActionListener l)` | 액션 이벤트 추가 |
|
||||
|
||||
---
|
||||
|
||||
## **2. 관련 이벤트 정리**
|
||||
|
||||
| 이벤트 리스너 | 관련 컴포넌트 | 설명 |
|
||||
|--------------|-------------|----------------------------------|
|
||||
| `ActionListener` | `JButton`, `JToggleButton`, `JCheckBox`, `JRadioButton` | 버튼 클릭 시 동작 |
|
||||
| `ItemListener` | `JToggleButton`, `JCheckBox`, `JRadioButton` | 선택 상태가 변경될 때 동작 |
|
||||
| `MouseListener` | `JLabel`, `JButton`, `JToggleButton`, `JCheckBox`, `JRadioButton` | 마우스 클릭, 이동 등 감지 |
|
||||
|
||||
---
|
||||
|
||||
## **3. Swing 컴포넌트 예제 코드와 설명**
|
||||
|
||||
### **(1) `JLabel`과 `JButton`을 이용한 간단한 GUI**
|
||||
```java
|
||||
import javax.swing.*;
|
||||
import java.awt.*;
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
|
||||
public class SwingExample {
|
||||
public static void main(String[] args) {
|
||||
JFrame frame = new JFrame("Swing Example");
|
||||
frame.setSize(300, 200);
|
||||
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
|
||||
frame.setLayout(new FlowLayout());
|
||||
|
||||
JLabel label = new JLabel("버튼을 눌러보세요!");
|
||||
JButton button = new JButton("클릭");
|
||||
|
||||
button.addActionListener(new ActionListener() {
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
label.setText("버튼이 클릭됨!");
|
||||
}
|
||||
});
|
||||
|
||||
frame.add(label);
|
||||
frame.add(button);
|
||||
frame.setVisible(true);
|
||||
}
|
||||
}
|
||||
```
|
||||
**설명:**
|
||||
- `JLabel`을 사용해 텍스트를 출력하고,
|
||||
- `JButton`을 클릭하면 `JLabel`의 텍스트가 변경된다.
|
||||
- `ActionListener`를 사용하여 버튼 이벤트를 감지한다.
|
||||
|
||||
---
|
||||
|
||||
### **(2) `JToggleButton`과 `JCheckBox` 사용 예제**
|
||||
```java
|
||||
import javax.swing.*;
|
||||
import java.awt.*;
|
||||
import java.awt.event.ItemEvent;
|
||||
import java.awt.event.ItemListener;
|
||||
|
||||
public class ToggleExample {
|
||||
public static void main(String[] args) {
|
||||
JFrame frame = new JFrame("Toggle Example");
|
||||
frame.setSize(300, 200);
|
||||
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
|
||||
frame.setLayout(new FlowLayout());
|
||||
|
||||
JToggleButton toggleButton = new JToggleButton("OFF");
|
||||
JCheckBox checkBox = new JCheckBox("체크박스");
|
||||
|
||||
toggleButton.addItemListener(new ItemListener() {
|
||||
@Override
|
||||
public void itemStateChanged(ItemEvent e) {
|
||||
if (toggleButton.isSelected()) {
|
||||
toggleButton.setText("ON");
|
||||
} else {
|
||||
toggleButton.setText("OFF");
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
frame.add(toggleButton);
|
||||
frame.add(checkBox);
|
||||
frame.setVisible(true);
|
||||
}
|
||||
}
|
||||
```
|
||||
**설명:**
|
||||
- `JToggleButton`은 클릭할 때마다 "ON"/"OFF"로 상태가 바뀜.
|
||||
- `ItemListener`를 사용하여 상태 변경을 감지.
|
||||
- `JCheckBox`는 별도의 기능 없이 화면에 추가됨.
|
||||
|
||||
---
|
||||
|
||||
### **(3) `JRadioButton`을 사용한 단일 선택 예제**
|
||||
```java
|
||||
import javax.swing.*;
|
||||
import java.awt.*;
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
|
||||
public class RadioButtonExample {
|
||||
public static void main(String[] args) {
|
||||
JFrame frame = new JFrame("Radio Button Example");
|
||||
frame.setSize(300, 200);
|
||||
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
|
||||
frame.setLayout(new FlowLayout());
|
||||
|
||||
JRadioButton option1 = new JRadioButton("옵션 1");
|
||||
JRadioButton option2 = new JRadioButton("옵션 2");
|
||||
ButtonGroup group = new ButtonGroup();
|
||||
group.add(option1);
|
||||
group.add(option2);
|
||||
|
||||
JButton button = new JButton("선택 확인");
|
||||
JLabel label = new JLabel("선택된 옵션: 없음");
|
||||
|
||||
button.addActionListener(new ActionListener() {
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
if (option1.isSelected()) {
|
||||
label.setText("선택된 옵션: 옵션 1");
|
||||
} else if (option2.isSelected()) {
|
||||
label.setText("선택된 옵션: 옵션 2");
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
frame.add(option1);
|
||||
frame.add(option2);
|
||||
frame.add(button);
|
||||
frame.add(label);
|
||||
frame.setVisible(true);
|
||||
}
|
||||
}
|
||||
```
|
||||
**설명:**
|
||||
- `JRadioButton`을 사용해 하나의 옵션만 선택 가능하도록 `ButtonGroup`을 사용.
|
||||
- `JButton`을 클릭하면 선택된 옵션이 `JLabel`에 표시됨.
|
||||
|
||||
---
|
||||
|
||||
이제 **Swing의 주요 컴포넌트, 이벤트, 예제 코드**까지 완벽하게 정리되었다.
|
||||
Reference in New Issue
Block a user