실무 데스크톱 프로그램에서 널리 쓰이는 다양한 고급 스윙(Swing) 컴포넌트와 팝업 대화상자(JDialog)를 다룹니다.
1. 고급 컴포넌트 용어 사전 (Glossary)
- JCheckBox: 다중 선택(Multiple Choice)이 가능한 체크박스 컴포넌트입니다.
- JRadioButton: 여러 선택지 중 오직 단 1개만 선택 가능한 원형 라디오 버튼입니다. (
ButtonGroup으로 묶음 필수) - JComboBox: 클릭하면 아래로 선택 목록이 드롭다운(Drop-down)되는 컴포넌트입니다.
- JTextArea: 여러 줄의 텍스트를 입력 및 표시할 수 있는 대용량 입력 영역입니다. (
JScrollPane으로 감싸기 필수) - JDialog: 메인 윈도우 창 외에 알림이나 추가 입력을 받기 위해 떠오르는 팝업 창입니다.
2. 라디오 버튼과 콤보박스 활용 예제
import javax.swing.*;
import java.awt.*;
public class AdvancedComponentsFrame extends JFrame {
public AdvancedComponentsFrame() {
setTitle("고급 Swing 컴포넌트");
setSize(400, 200);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLayout(new FlowLayout());
// 1. 라디오 버튼 그룹화
JRadioButton r1 = new JRadioButton("남자");
JRadioButton r2 = new JRadioButton("여자", true); // 기본 선택
ButtonGroup group = new ButtonGroup();
group.add(r1); group.add(r2);
// 2. 드롭다운 콤보박스
String[] cities = {"서울", "부산", "대구", "인천", "광주"};
JComboBox<String> cityCombo = new JComboBox<>(cities);
add(new JLabel("성별:")); add(r1); add(r2);
add(new JLabel("거주지:")); add(cityCombo);
setVisible(true);
}
public static void main(String[] args) {
new AdvancedComponentsFrame();
}
}
3. 자주 묻는 질문 (Q&A)
Q. JTextArea에 텍스트가 넘칠 때 스크롤바가 안 생기나요?
A. JTextArea 자체에는 스크롤바가 없으므로 JScrollPane scrollPane = new JScrollPane(textArea); 형태로 스크롤 팬으로 감싸서 컨테이너에 배치해야 스크롤바가 생깁니다.