1. 스윙 컴포넌트 소개

  • GUI 구성 방법

    1. 컴포넌트 기반: 스윙 패키지(JButton, JLabel 등)를 이용, 쉽고 일반적인 방법
    2. 그래픽 기반: 선, 원 등을 직접 그려서 구성, 자유롭지만 작업 부담이 큼
  • 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에 넣어 스크롤 기능 지원
  • 데이터 관리

    • 배열이나 Vector를 통해 아이템 제공
    • 아이템 변경 시 setListData()를 호출하거나 Vector를 수정 후 다시 연결하여 갱신

9. JComboBox<E>, 콤보박스 컴포넌트

  • 용도: 텍스트 필드와 드롭다운 리스트가 결합된 형태. 공간을 절약하며 목록 중 하나를 선택

  • 특징

    • addItem()으로 동적 아이템 추가 가능
    • Action 이벤트를 통해 아이템 선택 감지
    • getSelectedIndex(), getSelectedItem()으로 선택된 항목 확인

10. JSlider, 슬라이더 컴포넌트

  • 용도: 마우스로 손잡이(knob)를 움직여 특정 범위 내의 값을 선택

  • 구성

    • 방향(수평/수직), 최소값, 최대값, 초기값 설정
    • 눈금(Tick)과 레이블(Label) 보이기/숨기기 설정 가능 (Major/Minor 간격 조정)
  • 이벤트: 슬라이더 값 변경 시 Change 이벤트(ChangeListener) 발생