ItemStateChanged bei einer Masse von Checkboxes abfragen

Maddili

Mitglied
Hi,

ich habe eine Masse an Checkboxes (ca. 80 Stück). Den Checkboxes habe ich bereits einen ItemListener hinzugefügt.

Jetzt möchte ich einfach nur herausfinden, ob (mindestens) eine der Checkboxes angehakt ist.

Die Checkboxes sind folgendermaßen definiert: z.B.: cb_A01 bis cb_W99

Java:
public static String options[] = {"A01", "A02", [.....], "Y41", "W41", };

public void itemStateChanged(ItemEvent ie) {


		  for(int x=0; x<options.length; x++){

              String fieldName = "cb_"+options[x];
              try {
                  JCheckBox c = (JCheckBox) Output.class.getDeclaredField(
                          fieldName).get(null);
                  if (c.isSelected()){
                	  // Mache irgendwas 
                	  // Hier evtl mit einer boolean arbeiten
                  } else {
                	  // Mache irgendwas anderes
                  }

              }catch (Exception e) {
                      e.printStackTrace();
          }
        }

Mein Problem ist, dass ich an einen String etwas anhängen will ( " - Z " ), falls eine der Checkboxes angehakt ist. Allerdings nur einmal (auch wenn mehrere CB´s angehakt sind).
Und wenn ich eine CB anhake (das " - Z " wird dem String hinzugefügt) und dann den Haken wieder wegmache, soll das " - Z " auch wieder vom String weg.

Kann mir bitte jemand helfen?

//Maddin
 
Warum machst dus nicht so in etwa? (VHIDT)

Java:
private static final Stack<JCheckBox> SELECTED_CHECK_BOX_SOURCE = new Stack<JCheckBox>();

public void itemStateChanged(ItemEvent ie) {
	JCheckBox source = (JCheckBox)ie.getSource();

	if(ie.getState() == ItemEvent.STATE_ANGEKLICKT) {
		if(stack.size() == 0) {
			source.setText(source.getText() + "- Z");
		}
		SELECTED_CHECK_BOX_STACK.push(source);
	} else {
		JCheckBox firstOnStack = SELECTED_CHECK_BOX_STACK.pop();
		if(source == firstOnStack) {
			String sourceText = source.getText();
			source.setText(sourceText.substring(0, sourceText.lenght - 4);
			JCheckBox nextOnStack = SELECTED_CHECK_BOX_STACK.peek();
			nextOnStack.setText(nextOnStack.getText() + "- Z");
		} else {
			SELECTED_CHECK_BOX_STACK.remove(source);
		}
	}
}

Allerdings würde mich brennend interessieren, was du damit bezweckst. Ich kann mir darunter rein garnichts vorstellen.
 
Zurück