Programming language/Java

JRadioButton 중복 선택 방지 | Avoid selecting multiple JRadioButton [java swing]

은성 개발자 2024. 9. 5. 17:27
728x90

 

[ 원하는 기능 ]

  • 성별을 묻는 상황에서 라디오버튼을 클릭 시 한 성별을 선택한다.
  • 다른 성별을 선택 시, 기존 선택된 성별을 제외되고 선택한 성별만 선택된다.
  • input 입력 버튼을 눌렀을 때 성별 radio button의 값을 가져와 db에 저장 후 JTable에 출력한다.

 

[ 문제 상황 ]

  • 다른 성별을 선택 시, 양쪽 다 선택된다.
  • 그래서 첫번째 값인 female만 저장되는 상황 발생
public class ClientGui extends JFrame {
	private JRadioButton femaleRadioButton;
	private JRadioButton maleRadioButton;
	
	// (생략) 
	
	public ClientGui(){
		inputButton.addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent e) {
				if (femaleRadioButton.isSelected()) {
				    gender = "female";
				} else {
				    gender = "male";
				}
				// (생략)
			}
	}
}

 

[ 해결책 ]

  • ButtonGroup을 이용해서 중복을 방지한다.
  • add()를 이용해 group을 적용시킨다.
private ButtonGroup genderBtnGroup;

public ClientGui() {
	// 추가된 내용
	genderBtnGroup = new ButtonGroup();
	genderBtnGroup.add(femaleRadioButton);
	genderBtnGroup.add(maleRadioButton);
}

 

[ 출력 결과 ]

 


회사에서 쓰이니 swing을 공부하고 있다. 나름 이해하기는 괜찮다.

python으로도 비슷한 걸 만들어서 익숙하다.


참고 자료

 

Java: How to avoid multiple selection in radio button..

How to avoid multiple selection in radio button.. Here is two radio buttons (jRadioButton1 & jRadioButton2). In the executed window it is possible to select both radio buttons.. how can restric...

stackoverflow.com

 

728x90
반응형