본문 바로가기

Programming/JAVA

[Swing] JRadioButton 라디오 버튼


한번에 1개만 선택 할 수 있는 것이 라디오 버튼이다.

 

 

라디오버튼은 아래의 순서로 만든다

 

1.라디오 버튼 객체 생성

2.버튼 그룹 객체 생성

3.라디오버튼 객체를 버튼그룹에 add 하여 그룹화

4.버튼 객체들을 컨테이너(프레임, 판넬) 에 추가.

 

 

아래와 같이 만든다.

 

  1. gibonCode.setLayout(new GridLayout(1,4))// 그리드 레이아웃 설정.
  2.  
  3. JRadioButton  rb1 = new JRadioButton("1"); rb1.setFont(font)// JRadioButton 생성
  4. JRadioButton  rb2 = new JRadioButton("2"); rb2.setFont(font);
  5. JRadioButton  rb3 = new JRadioButton("3"); rb3.setFont(font);
  6. JRadioButton  rb4 = new JRadioButton("4"); rb4.setFont(font);
  7.  
  8. ButtonGroup  group = new ButtonGroup()//라디오버튼 그룹화를 위한 버튼그룹 설정
  9.                                         // 같은 그룹끼리는 그룹중에 1개만 선택된다.
  10.  
  11. group.add(rb1);  group.add(rb2);  group.add(rb3)//그룹에 그룹화시킬 버튼들을 추가
  12. group.add(rb4);
  13. gibonCode.add(rb1);  gibonCode.add(rb2);    //라디오 버튼을 gibonCode 라는 이름으로 만든 frame에 추가
  14. gibonCode.add(rb3);  gibonCode.add(rb4);

 

 

데이터 뽑아내기 

 

ButtonGroup 클래스의 메소드 getElements()

 

Enumeration<AbstractButton> getElements() // AbstractButton형태로 리턴된다.

 

 

Enumeration 의 메소드

 

boolean hasMoreElements()  // Enum에 더 받아낼 객체가 있나 체크. 있으면 true

<E> nextElement() // Enum에 들어있는 요소 1개를 받아낸다. 받아낸 후엔 커서가 넘어가서

                               그다음번에 호출할때는 다음 요소를 받아낸다.

 

JRadioButton 의 메소드

 

boolean isSelected() // 선택 여부 반환

String getText() // 라벨링된 문자열을 반환.

 

  1. Enumeration<AbstractButton> enums = group.getElements();
  2. int gibonCode = 0;
  3. while(enums.hasMoreElements()) {            // hasMoreElements() Enum에 더 꺼낼 개체가 있는지 체크한다. 없으며 false 반환
  4.     AbstractButton ab = enums.nextElement();    // 제네릭스가 AbstractButton 이니까 당연히 AbstractButton으로 받아야함
  5.     JRadioButton jb = (JRadioButton)ab;         // 형변환. 물론 윗줄과 이줄을 합쳐서 바로 형변환 해서 받아도 된다.
  6.  
  7.     if(jb.isSelected())                         // 받아낸 라디오버튼의 체크 상태를 확인한다. 체크되었을경우 true 반환.
  8.         gibonCode = Integer.parseInt(jb.getText().trim())//getText() 메소드로 문자열 받아낸다.
  9. }