# JCombobox dynamisch füllen (erstes Element Problem)



## ABstraCT (6. Nov 2008)

Hi,

habe hier 3 Comboboxes und diese werden nacheinander gefüllt.

d.h. mann wählt in der ersten was aus und je nachdem wird die 2te gefüllt usw.

Mein Problem ist dass ich z.B. die 2te Combobox füllen lasse und die dritte dann von action Performed befüllt wird.

aber man in der zweiten nen eintrag erst auswählen muss um die dritte per actionperformed zu füllen.
Heisst das füllen der zweiten wird nicht als action verstanden, auch wenn ich das erste Element auswähle passiert nichts erst wenn man ein anderes auswählt wird die dritte gefüllt.

hat jemand nen hint ?
CU


----------



## SlaterB (6. Nov 2008)

hmm, ich hatte das Problem eigentlich immer andersrum ,

wenn ich in CB 1 was auswähle wird CB 2 gefüllt und der erste Wert gesetzt und der ActionListener springt sofort an, 
obwohl eigentlich erstmal nichts weiter passieren soll,

da musste ich umständlich ein boolean-Flag einführen:

actionListenerOff = true;
fuelle CB 2;
actionListenerOff = false;


vielleicht musst du einen ItemListener verwenden,
oder ein Beispielprogramm posten

-------

hier passiert was:


```
public class Test
{


    public static void main(String args[])
        throws Exception
    {
        final JComboBox box = new JComboBox();
        box.addActionListener(new ActionListener()
            {

                public void actionPerformed(ActionEvent e)
                {
                    System.out.println("Selektion: " + box.getSelectedItem());
                }

            });
        box.addItem("erstes Item");
    }
}

---

Ausgabe: 

Selektion: erstes Item
```


----------



## ABstraCT (6. Nov 2008)

war grad am bugjagen.

habe ne ganz normale action an der combobox:

private void jComboBox_ALG_PROActionPerformed(java.awt.event.ActionEvent evt) { 

jComboBox_SAM_PRO.setModel(SrateModel);
}

und die füllt die nächste mit dem Model.

doch dies wird nicht als action verstanden.
CU


----------



## SlaterB (6. Nov 2008)

vielleicht sowas:


```
public class Test
{


    public static void main(String args[])
        throws Exception
    {
        final JComboBox box = new JComboBox();
        box.addActionListener(new ActionListener()
            {

                public void actionPerformed(ActionEvent e)
                {
                    System.out.println("Selektion: " + box.getSelectedItem());
                }

            });
        DefaultComboBoxModel cm = new DefaultComboBoxModel();
        cm.addElement("erstes Element");
        cm.setSelectedItem(null); // muss sein, sonst bringt der zweite setSelectedItem-Aufruf nix,
        // aber vor setModel, sonst gibts zwei ActionEvents
        box.setModel(cm);
        cm.setSelectedItem(cm.getElementAt(0));
    }
}
```


----------



## ABstraCT (6. Nov 2008)

YIPPIIIE !

das funzt !

THANX :toll:


----------

