1. 스윙 컴포넌트 소개
-
GUI 구성 방법
- 컴포넌트 기반: 스윙 패키지(JButton, JLabel 등)를 이용, 쉽고 일반적인 방법
- 그래픽 기반: 선, 원 등을 직접 그려서 구성, 자유롭지만 작업 부담이 큼
-
JComponent의 특징
- 스윙 컴포넌트의 공통 기능을 제공하는 추상 클래스
- 모양 관련 메소드: 색상(
setBackground,setForeground), 폰트(setFont), 불투명성(setOpaque) 설정 - 상태 관련 메소드: 활성화/비활성화(
setEnabled), 보이기/숨기기(setVisible) - 위치/크기 메소드:
getWidth,getHeight,setLocation,setSize등 - 컨테이너 메소드: 자식 컴포넌트 추가(
add) 및 제거(remove)
2. JLabel, 레이블 컴포넌트
-
용도: 문자열이나 이미지를 화면에 출력하기 위한 용도 (사용자 입력 불가)
-
특징
- 단순 텍스트, 이미지(
ImageIcon), 또는 텍스트+이미지 조합 가능 SwingConstants를 통해 수평/수직 정렬 설정 가능
- 단순 텍스트, 이미지(
3. JButton, 버튼 컴포넌트
-
용도: 사용자가 클릭하여 동작을 실행하는 버튼
-
이벤트: 클릭 시 Action 이벤트 발생
-
이미지 버튼: 버튼의 상태에 따라 3가지 이미지를 설정하여 시각적 효과 극대화 가능
setIcon: 보통 상태setRolloverIcon: 마우스가 올라갔을 때setPressedIcon: 눌렸을 때
4. JCheckBox, 체크박스 컴포넌트
-
용도: 선택(
selected)과 비선택(deselected) 두 가지 상태를 가지는 버튼 -
특징: 여러 개를 동시에 선택 가능
-
이벤트: 상태 변경 시 Item 이벤트(
ItemListener) 발생 -
구성: 텍스트와 이미지를 함께 가질 수 있으며, 선택 상태일 때의 별도 아이콘 지정 가능
5. JRadioButton, 라디오버튼 컴포넌트
-
용도: 여러 옵션 중 단 하나만 선택해야 할 때 사용
-
특징
- ButtonGroup 객체를 생성하여 라디오 버튼들을 그룹으로 묶어야 상호 배타적 선택(하나 선택 시 다른 것 해제)이 작동함
- 체크박스와 마찬가지로 Item 이벤트 사용
6. JTextField, 텍스트필드 컴포넌트
-
용도: 한 줄의 문자열을 입력받는 창
-
이벤트: 입력 도중
<Enter>키를 누르면 Action 이벤트 발생 -
주요 기능
setEditable(false): 편집 불가능하게 설정setText(),getText(): 문자열 설정 및 가져오기setFont(): 폰트 지정
7. JTextArea, 텍스트영역 컴포넌트
-
용도: 여러 줄의 문자열을 입력받는 창
-
스크롤: 입력 내용이 많아질 경우를 대비해
JScrollPane컴포넌트에 삽입하여 생성해야 스크롤바가 지원됨 -
주요 기능:
append()메소드로 문자열을 끝에 추가 가능
8. JList<E>, 리스트 컴포넌트
-
용도: 여러 개의 아이템을 리스트 형식으로 보여주고 선택하는 컴포넌트
-
특징
- JDK 7부터 제네릭(
<E>) 도입으로 특정 타입 객체만 저장 JScrollPane에 넣어 스크롤 기능 지원
- JDK 7부터 제네릭(
-
데이터 관리
- 배열이나
Vector를 통해 아이템 제공 - 아이템 변경 시
setListData()를 호출하거나Vector를 수정 후 다시 연결하여 갱신
- 배열이나
9. JComboBox<E>, 콤보박스 컴포넌트
-
용도: 텍스트 필드와 드롭다운 리스트가 결합된 형태. 공간을 절약하며 목록 중 하나를 선택
-
특징
addItem()으로 동적 아이템 추가 가능- Action 이벤트를 통해 아이템 선택 감지
getSelectedIndex(),getSelectedItem()으로 선택된 항목 확인
10. JSlider, 슬라이더 컴포넌트
-
용도: 마우스로 손잡이(knob)를 움직여 특정 범위 내의 값을 선택
-
구성
- 방향(수평/수직), 최소값, 최대값, 초기값 설정
- 눈금(
Tick)과 레이블(Label) 보이기/숨기기 설정 가능 (Major/Minor 간격 조정)
-
이벤트: 슬라이더 값 변경 시 Change 이벤트(
ChangeListener) 발생