2016-06-01 13 views
1

プロジェクトでは、JcheckBoxとJRadioButtonsのグループにItemListenerを追加しました。JRadioButtonのButtonGroupを取得する方法

そして、すでに選択されているJRadioButtonをユーザーがクリックすると、その選択が解除されます。

私が知っているこの唯一の方法は、対応するButtonGroupを取得してからclearSelection()メソッドを呼び出すことです。 しかしitemStateChanged()メソッドでは、JtoggleButtonオプション=(JtoggleButton)event.getSource();があります。

オプションは、JRadioButtonまたはJcheckBoxのいずれかを指します。私は検索しましたが、JRadioButtonのButtonGroupを取得するメソッドを見つけることができません。

答えて

2

getSourceを使用し、instanceofで確認できます。 JRadioButtonの場合はJRadioButtonにキャストし、selectedをfalseに設定します。すでに選択された1つを選択解除したい場合はJCheckBox

if(event.getSource instanceof JRadioButton){ 

JRadioButton btn=(JRadioButton) event.getSource(); 
    btn.setSelected=false; 
} 
else if (event.getSource instanceof JCheckBox){ 

    JCheckBox chb= (JCheckBox) event.getSource(); 
    chb.setSelected=false; 
} 

のための同じことが、あなたは次のように条件を追加することができ、以下の

if(event.getSource instanceof JRadioButton){ 

    JRadioButton btn=(JRadioButton) event.getSource(); 
    if(btn.isSelected()) 
    btn.setSelected=false; 
} 
else if (event.getSource instanceof JCheckBox){ 
    JCheckBox chb= (JCheckBox) event.getSource(); 
    if(chb.isSelected()) 
    chb.setSelected=false; 
} 
関連する問題