DefaultComboBoxModel

Diskutiere DefaultComboBoxModel im AWT, Swing, JavaFX & SWT Forum; Hallo, ich habe 40 JComboBoxes und habe jeder ComboBox ihr eigenes DefaultComboBoxModel zugewiesen. Die 40 models verwalte ich in einem Array...

  1. blz
    blz Mitglied
    Hallo,
    ich habe 40 JComboBoxes und habe jeder ComboBox ihr eigenes DefaultComboBoxModel zugewiesen.
    Die 40 models verwalte ich in einem Array defaultModels[].

    Wenn ich nun z. B. den Befehl defModels[1].addElement("neuer Eintrag"); ausführen lasse,
    ist der neue Eintrag aber nicht nur in der gewünschten ComboBox, sondern in jeder!!!???

    Die Initialisierungen geschehen in einer Schleife:
    Code (Java):
    defaultModels[i] = new DefaultComboBoxModel<String>(names);
    plaetzeField[i] = new MyComboBox(defaultModels[i], i);
     
  2. Vielleicht hilft dir dieses Training hier weiter.
  3. blz
    blz Mitglied
    Ok, vermutlich ist die Information so zu dürftig. Ich dachte, vllt. handelt es sich um ein gängiges Problem, dass sich auch ohne Kenntnis des genaueren Codes lösen lässt - Hier meine komplette for-Schleife:

    Code (Java):
        for (i = 0; i < (reihen * maxBreite); i++) {

            defaultModels[i] = new DefaultComboBoxModel<String>(names);
            int width = (int) (Toolkit.getDefaultToolkit().getScreenSize().getWidth() / (maxBreite + 1));

            plaetzeField[i] = new ChooseOnceComboBox(defaultModels[i], i);
            plaetzeField[i].addItemListener(new ItemListener() {

                final int itemListenerIndex = i;

                public void itemStateChanged(ItemEvent e) {
                    if (boxEntriesInModification) {
                        return;
                    } else {
                        boxEntriesInModification = true;

                        String item = (String) e.getItem();

                        if (!item.equals("")) {
                            for (int j = 0; j < (reihen * maxBreite); j++) {
                                if (getIndexOfCurrentItemListener() != plaetzeField[j].getId()) {

                                    // Wurde das DESELECT-Event getriggert?
                                    if (e.getStateChange() == ItemEvent.DESELECTED) {
                                        // Das Abgewählte item, sofern es nicht "" ist, in den anderen Models ergänzen
                                        // (im aktuellen ist es ja noch drin, managt die Box selbst)
                                        defaultModels[j].addElement(item);
                                    }
                                    // Wurde das SELECT-Event getriggert?
                                    else if (e.getStateChange() == ItemEvent.SELECTED) {
                                        // Das gewählte item, sofern es nicht "" ist, aus den anderen Models entfernen
                                        defaultModels[j].removeElement(item);
                                    }
                                }
                            }
                        }



                        boxEntriesInModification = false;
                    }
                }

                public int getIndexOfCurrentItemListener() {
                    return itemListenerIndex;
                }
            });
            plaetzeField[i].setPreferredSize(new Dimension(width, 50));
            AutoCompleteDecorator.decorate(plaetzeField[i]);
            plaetzePanel.add(plaetzeField[i]);
        }
     
    Beim innersten "if" habe ich zum Testen die Zählvariable j durch eine 1 ersetzt. Dennoch war das einzufügende Element in ALLEN ComboBoxes ...
    (und wenn ich es mit dem "j" stehen lasse, ist es in jeder ComboBox 40 mal! (Anzahl der Schleifendurchläufe))
     
Passende Stellenanzeigen aus deiner Region:





Die Seite wird geladen...

DefaultComboBoxModel - Ähnliche Themen

JComboBox (DefaultComboBoxModel) überschreibt Eintrag beim erstellen
JComboBox (DefaultComboBoxModel) überschreibt Eintrag beim erstellen im Forum AWT, Swing, JavaFX & SWT
DefaultComboBoxModel überschreiben
DefaultComboBoxModel überschreiben im Forum Allgemeine Java-Themen
DefaultComboBoxModel --> getSelectedItem() Problem
DefaultComboBoxModel --> getSelectedItem() Problem im Forum AWT, Swing, JavaFX & SWT
DefaultComboBoxModel
DefaultComboBoxModel im Forum AWT, Swing, JavaFX & SWT
Bug in JList oder ListModel oder DefaultComboBoxModel?
Bug in JList oder ListModel oder DefaultComboBoxModel? im Forum AWT, Swing, JavaFX & SWT
Thema: DefaultComboBoxModel