2014-07-27 3 views
2

'javax.swing.ButtonGroup'패키지를 사용하여 라디오 버튼 그룹을 'ButtonGroup bg1;'으로 정의했습니다. 확인 버튼 'btnOK'을 클릭 한 후 사용자가 선택을 변경할 수 없도록이 그룹을 비활성화하고 싶습니다. 라디오 버튼 그룹 비활성화

그래서 나는이 라인을 따라 뭔가를 찾고 있었다 :

private void btnOkActionPerformed(java.awt.event.ActionEvent evt) { 
    bg1.setEnabled(false); 
} 

그러나, .setEnabled(false)가 존재하지 않는 것 같습니다.

+0

네. 그럼 네 질문은 뭐니? 그룹의 모든 라디오 버튼을 비활성화하려면 무엇을 할 수 있습니까? 어쩌면 ... 그룹의 모든 라디오 버튼을 비활성화하십시오 ... –

+0

다른 질문에 대한 잘못된 게시물 @ JBNizet –

+0

ButtonGroup 클래스에는 그룹의 버튼 열거를 반환하는 getElements 메소드가 있습니다. 그것을 반복하고 각 버튼에서'setEnabled (false)'를 호출하십시오. – jpw

답변

6

내가이 그룹

ButtonGroup을 해제하고자하는 시각적 구성 요소가 아닙니다. 버튼 집합에 대한 다중 제외 범위를 만드는 데 사용됩니다.

동일한 ButtonGroup 개체를 가진 단추 집합을 만들면 해당 단추 중 하나를 "켜면"그룹의 다른 모든 단추가 꺼진다는 것을 의미합니다.


당신은 ButtonGroup이 전체 그룹을 해제하는 그러한 방법이 없기 때문에 각각의 모든 JRadioButtonButtongroup에 추가하지 않도록해야합니다.

샘플 코드 :

Enumeration<AbstractButton> enumeration = bg1.getElements(); 
while (enumeration.hasMoreElements()) { 
    enumeration.nextElement().setEnabled(false); 
} 
+0

고마워요! 작동 중! – Christian

+0

환영합니다 ..... – Braj

+0

1+ @Christian :이 질문에 대한 답이 있으면 왼쪽에있는 큰 체크 표시를 클릭하십시오. 이 방법으로 포스터 (그의 이름이 바뀐 것 같습니까? Braj?) 15 rep points –

1

JRadioButton[] buttons = new JRadioButton[]{jbutton1,jbutton2,jbutton3,jbutton4}; 

다음은 배열을 반복하고 버튼의 상태를 변경

간단한 해결책은 배열에있는 버튼을 배치하는 것입니다 ... ...

for (JRadioButton btn : buttons) { 
     btn.setEnabled(false); 
    } 

또는 당신은 할 수 JPanel에 라디오 버튼 그룹을 입력하고 JPanel을 추가하십시오.

OK 버튼 클릭 이벤트에서 구성 요소를 가져 와서 루프를 반복하여 비활성화 할 수 있습니다.

for(Component c:jpanel1.getComponents()){ 
     c.setEnabled(false); 
    } 
관련 문제