02. AWT 컴포넌트
1. 컴포넌트(Component)란?
AWT에서 화면을 구성하는 모든 요소를 컴포넌트라고 합니다.
java.awt.Component 클래스를 상속받아 구현되어 있으며, 버튼, 라벨, 텍스트 필드 등이 모두 컴포넌트입니다.
1-1. 컨테이너(Container)
컴포넌트를 담을 수 있는 특별한 컴포넌트를 컨테이너라고 합니다.
- Frame: 독립적인 윈도우 창입니다. 프로그램의 메인 화면 역할을 합니다.
- Dialog: 대화 상자입니다.
- Panel: 여러 컴포넌트를 묶어서 관리하기 위한 사각형 영역입니다.
2. 주요 AWT 컴포넌트
1) Label (라벨)
단순한 문자열을 표시하는 컴포넌트입니다. 사용자가 편집할 수 없습니다.
Label l1 = new Label("이름:");
Label l2 = new Label("비밀번호:", Label.RIGHT); // 정렬 지정
2) Button (버튼)
사용자가 클릭하여 이벤트를 발생시킬 수 있는 버튼입니다.
Button b = new Button("가입하기");
3) TextField (텍스트 필드)
한 줄의 텍스트를 입력받을 수 있는 컴포넌트입니다.
TextField tf = new TextField("기본값", 20); // 20은 글자 수(폭)
TextField pass = new TextField(10);
pass.setEchoChar('*'); // 비밀번호 입력 시 '*'로 표시
4) TextArea (텍스트 영역)
여러 줄의 텍스트를 입력받을 수 있는 컴포넌트입니다.
TextArea ta = new TextArea("내용을 입력하세요", 5, 30); // 5행 30열
5) Checkbox (체크박스) / CheckboxGroup (라디오 버튼)
선택 옵션을 제공하는 컴포넌트입니다.
// 다중 선택 가능 (체크박스)
Checkbox c1 = new Checkbox("사과");
Checkbox c2 = new Checkbox("바나나", true); // 선택된 상태
// 단일 선택 (라디오 버튼) - CheckboxGroup 사용
CheckboxGroup group = new CheckboxGroup();
Checkbox math = new Checkbox("수학", group, true);
Checkbox eng = new Checkbox("영어", group, false);
6) Choice (초이스/드롭다운)
클릭하면 목록이 펼쳐져 하나를 선택할 수 있는 컴포넌트입니다. (HTML의 <select>와 유사)
Choice day = new Choice();
day.add("MON");
day.add("TUE");
day.add("WED");
7) List (리스트)
여러 항목을 보여주고 선택할 수 있는 컴포넌트입니다.
List list = new List(3, true); // 3개 항목 보이기, 다중 선택 가능
list.add("Java");
list.add("Python");
list.add("C++");
3. 예제 코드
import java.awt.*;
public class ComponentExam {
public static void main(String[] args) {
Frame f = new Frame("Login");
f.setSize(300, 200);
f.setLayout(new FlowLayout()); // 컴포넌트를 순서대로 배치
Label idLabel = new Label("ID :");
TextField idText = new TextField(20);
Label pwLabel = new Label("PW :");
TextField pwText = new TextField(20);
pwText.setEchoChar('*'); // 비밀번호 가리기
Button loginBtn = new Button("Login");
f.add(idLabel);
f.add(idText);
f.add(pwLabel);
f.add(pwText);
f.add(loginBtn);
f.setVisible(true);
}
}
서브목차