2016-09-01 2 views
0

Ich habe ein kleines Panel, das hat 3 JComboBox und 2 JCheckBox die gehört zu JButtonGroup. Ich versuche zu überprüfen, ob die Panel-Form gültig ist und dass alle erforderlichen Felder keine Null-Auswahl haben, also habe ich eine Methode erstellt.Wie überprüft man, ob JCheckBox zu einer Schaltflächengruppe gehört?

enter image description here

public static boolean isValid(List<Component> aComponent){ 
     boolean isValid = false ; 
     for(Component c: aComponent){ 
      if(c instanceof JComboBox){ 
       isValid = (((JComboBox) c).getSelectedIndex() > -1); 
       JOptionPane.showMessageDialog(null,"ComboBox returned: "+isValid); 
      }else if(c instanceof JCheckBox){ 
       isValid = (((JCheckBox) c).isSelected()); 
       JOptionPane.showMessageDialog(null,"Checkbox returned: "+isValid); 
      }else if(c instanceof JTextField){ 
       isValid = ((JTextField) c).getText().isEmpty(); 
       JOptionPane.showMessageDialog(null,"TextField returned: "+isValid); 
      } 
     } 
     return isValid; 
    } 

Das Problem ist, ich brauche nur ein JCheckbox für Lerner ausgewählt haben. Ich muss überprüfen können, ob die Button-Gruppe mindestens 1JChecBox überprüft hat.

Der folgende Block wird false zurück, da beide Transferee und New Instanzen JCheckBox sind. Aber ich brauche nur 1 JCheckBox überprüft, um das Formular gültig zu machen.

Wie überprüfe ich, ob mindestens 1 mit der Methode isValid() aus der Schaltflächengruppe ausgewählt wurde?

+0

siehe: http://stackoverflow.com/questions/201287/how-do-i-get-which-jradiobutton-is-selected-from-a-buttongroup – c0der

Antwort

0

Wenn Sie die Signatur der isValid-Methode ändern können, können Sie einen neuen Parameter zum Senden der List of ButtonGroup hinzufügen, dann sollten gruppierte Komponenten aus dem ersten Parameter List of Component ausgeschlossen werden.

wenn Sie nicht möchten, dass noch einiges zu tun gibt es eine schmutzige Art und Weise ist, wenn es ein JCheckBox ist, können Sie

((DefaultButtonModel)checkBox.getModel()).getGroup() 

überprüfen Sie die „Instanz“ vor cast DefaultButtonModel zu nennen versuchen.

Verwandte Themen