1️⃣ GUI vs CLI
| 방식 |
특징 |
| CLI (Command Line Interface) |
명령어 입력 기반 / 개발자·관리자 중심 |
| GUI (Graphic User Interface) |
버튼, 창, 마우스 입력 등 직관적 사용자 인터페이스 |
GUI 프로그램 = 컴포넌트들(Component) + 레이아웃(Layout) 조합
2️⃣ AWT & Swing 비교
| 구분 |
AWT |
Swing |
| 의미 |
기본 GUI 라이브러리 |
AWT를 확장한 GUI 툴킷 |
| 운영체제 UI 의존 |
의존함 |
독립적(일관된 UI) |
| 제공 컴포넌트 |
버튼/리스트/텍스트 등 기본 요소 |
테이블, 트리 등 확장 컴포넌트 많음 |
| 클래스 앞 |
없음 |
J 로 시작 (예: JFrame, JButton) |
실무에서는 Swing이 일반적으로 더 많이 사용됨
3️⃣ 기본 GUI 화면 생성 예시
✅ AWT Frame 생성
Frame f = new Frame("윈도우 예제");
f.setSize(200, 200);
f.setVisible(true);
✅ Swing JFrame 생성
JFrame f = new JFrame("스윙 예제");
f.setSize(200, 200);
f.setVisible(true);
4️⃣ 주요 AWT 컴포넌트
| 컴포넌트 |
용도 |
| Button |
클릭 가능한 버튼 |
| Checkbox / CheckboxGroup |
다중 / 단일 선택 항목 |
| Choice |
드롭다운 선택 메뉴 |
| Label |
텍스트 표시 |
| List |
여러 항목 중 선택 |
| Scrollbar |
스크롤 바 |
| TextField / TextArea |
텍스트 입력 |
| Panel |
컴포넌트 묶는 컨테이너 |
| ScrollPane |
스크롤 가능한 화면 컨테이너 |
5️⃣ 주요 Swing 컴포넌트
| Swing 컴포넌트 |
설명 |
JCheckBox |
체크박스 |
JRadioButton |
라디오 버튼 그룹 (ButtonGroup 사용) |
JList |
리스트 (AWT보다 사용 편리) |
JTable |
표 형태 데이터 표시 |
JScrollPane |
스크롤 가능한 패널 |