본문 바로가기

자바공부

자바 Swing JRadioButton, 라디오버튼 컴포넌트, 명품자바프로그래밍11장

728x90
반응형

* JRadioButton은 라디오버튼 컴포넌트를 구현하는 클래스로서, JRadioButton의 여러 버튼들을 하나의 그룹으로 만들면 이 중 한 버튼만이 선택 상태가 된다.

JRadioButton 클래스는 생성하는 방법, 다루는 방법, 메소드, 이벤트 핸들링, 이미지를 가지는 방법등이 JCheckBox와 동일하다.

그러나 체크박스는 독립적으로 선택/해제되지만 라디오버튼의 경우 버튼 그룹에 속한 하나의 라디오버튼만 선택 가능하다.

하나의 라디오버튼만 선택 가능

생성자: (디폴트로 비선택 상태)

1) JRadioButton()

문자열이나 이미지가 없는 빈 라디오버튼 생성

2) JRadioButton(Icon image)

image 이미지만을 가진 라디오버튼 생성

3) JRadioButton(Icon image, boolean selected)

image 이미지만을 가진 라디오버튼 생성. selected가 true면 선택 상태로 초기화

4) JRadioButton(String text)

text 문자열만을 가진 라디오 버튼 생성

5) JRadioButton(String text, boolean selected)

text 문자열만을 가진 라디오버튼 생성, selected가 true면 선택 상태로 초기화

6) JRadioButton(String text, Icon image)

text 문자열과 image 이미지를 모두 가진 라디오버튼 생성

7) JRadioButton(String text, Icon image, boolean selected)

text 문자열과 image 이미지를 모두 가진 라디오버튼 생성. selected가 true면 선택 상태로 초기화

 

* 라디오버튼의 생성은 JRadioButton의 생성자를 호출하는 것만으로 끝나지 않는다.

4개의 과정이 필요하다.

1) 버튼 그룹 객체 생성

2) 라디오버튼 컴포넌트 생성

3) 라디오버튼을 버튼 그룹에 삽입

4) 라디오버튼을 컨테이너에 삽입

우선 라디오버튼을 그룹핑하기 위해서 ButtonGroup 클래스를 이용하여 라디오버튼 컴포넌트를 생성하고 버튼 그룹에 추가한다. 

이제 라디오버튼을 화면에 출력하기 위해 컨테이너에 삽입한다.

이 버튼 그룹에 속한 라디오 버튼 중 하나만이 선택상태가 된다.

3개의 라디오버튼을 만드는 과정

 

* 라디오버튼이 선택되거나 해제되어 처음 상태와 달라졌을 때 Item 이벤트가 발생한다. 

Item 이벤트는 ItemListener 인터페이스의 메소드에 의해 처리된다.

Item 이벤트가 발생하면 ItemEvent 객체가 생성되고 itemStateChanged() 메소드의 인자로 전달된다.

void itemStateChanged(ItemEvent e)
// 라디오버튼의 선택 상태가 변경되었을 때 호출된다.

 

* 체크박스는 개별적으로 작동하므로 하나의 체크박스를 선택하면 그 체크박스만 Item 이벤트가 발생한다.

그러나 라디오버튼의 경우는 조금 다르다. 라디오버튼을 선택하면 2개의 Item 이벤트가 발생한다.

기존의 선택 상태인 라디오버튼에게는 선택이 해체된 사유를 가진 Item 이벤트가, 새로 선택된 라디오버튼에게는 선택된 사유를 가진 Item 이벤트가 발생한다.

그러나 선택 상태의 라디오버튼을 재선택하는 경우에는 선택 상태에 변화가 없기 때문에 Item 이벤트가 발생하지 않는다.

반응형