Hallo zusammen,
ich erzeuge mir je nach Bedarf (abhängig von Einträgen in der Datenbank) eine gewisse Anzahl von JComboboxen und fülle sie mit Daten:
Dies klappt auch wunderbar.
Jetzt will ich entsprechende Einträge selektieren. Dies geschieht in dem ich abgleiche und wenn der Wert passt merke ich mir den Index und weise den zu (Zeile 18):
Zeile 19 bestätigt mir, dass der selektierte Index richtig gesetzt worden ist.
Ausgabe Zeile 19:
Muss ich hier noch was besonderes beachten, da ich die JComboboxen in einem Array erzeugt habe?
Idee dahinter:
Man hat in der Datenbank mehrere Modelle. Diese setzten sich aus Einzelteilen zusammen. Die Standardteile zu einem Modell sollen hier angezeigt und auch geändert werden können. Beim Laden dieses Fenster werden die Standardteile des Modells in auf Index 0 geladen und eben in den anderen JComboboxen die die Einzelteile enthalten ausgewählt werden.
Wie schon gesagt, klappt es bis auf die grafische Darstellung.
Hoffe, dass mir jemand helfen kann.
Gruß
_dome
Zum Schluss noch ein Bild
ich erzeuge mir je nach Bedarf (abhängig von Einträgen in der Datenbank) eine gewisse Anzahl von JComboboxen und fülle sie mit Daten:
Java:
Einzelteiltyp[] typ = gen.get_alle_Einzelteiltypen();
cb_einzelteil = new JComboBox[typ.length];
label_einzelteil = new JLabel[typ.length];
Einzelteil[] einzelteil_liste;
int zeile = 0;
int spalte = 0;
for (int i = 0; i < typ.length; i++)
{
for (int einzelteiltypnr = 0; einzelteiltypnr < typ.length; einzelteiltypnr++)
{
cb_einzelteil[einzelteiltypnr] = new JComboBox();
cb_einzelteil[einzelteiltypnr].setRenderer(new CellRenderer_Einzelteil());
einzelteil_liste = gen.get_alle_Einzelteile(einzelteiltypnr + 1);
for (int z = 0; z < einzelteil_liste.length; z++)
{
cb_einzelteil[einzelteiltypnr].addItem(einzelteil_liste[z]);
}
}
label_einzelteil[i] = new JLabel();
label_einzelteil[i].setText(typ[i].get_Name() + ":");
panel.add(label_einzelteil[i], "cell " + i % 2 + " " + zeile);
panel.add(cb_einzelteil[i], "cell " + ((i % 2) + 1) + " " + zeile);
spalte++;
if (spalte == 2)
{
zeile++;
spalte = 0;
}
Dies klappt auch wunderbar.
Jetzt will ich entsprechende Einträge selektieren. Dies geschieht in dem ich abgleiche und wenn der Wert passt merke ich mir den Index und weise den zu (Zeile 18):
Java:
BigDecimal preis = new BigDecimal("0.0");
Standardzuweisung[] standardzuweisung;
standardzuweisung = gen.get_alle_Standardzuweisungen(((Bikemodell) comboBox_Bikemodell.getSelectedItem()).get_ID());
Einzelteiltyp[] typ = gen.get_alle_Einzelteiltypen();
for (int r = 0; r < typ.length; r++)
{
fk = standardzuweisung[0].get_Fk_Einzelteiltyp_value_at_index(r);
for (int a = 0; a < cb_einzelteil[r].getItemCount(); a++)
{
if (((Einzelteil) cb_einzelteil[r].getItemAt(a)).get_ID() == fk)
{
preis = preis.add(((Einzelteil) cb_einzelteil[r].getItemAt(a)).get_Verkaufspreis_netto());
cb_einzelteil[r].setSelectedIndex(a);
System.out.println("index:" + cb_einzelteil[r].getSelectedIndex());
}
}
}
spinner_preis.setValue(preis);
Zeile 19 bestätigt mir, dass der selektierte Index richtig gesetzt worden ist.
Ausgabe Zeile 19:
Jedoch sind die entsprechende JComboboxen alle auf Index 0.index:2
index:1
index:0
index:0
index:0
index:0
index:0
index:0
index:0
index:0
index:0
index:0
index:0
index:0
index:0
index:0
index:0
index:0
Muss ich hier noch was besonderes beachten, da ich die JComboboxen in einem Array erzeugt habe?
Idee dahinter:
Man hat in der Datenbank mehrere Modelle. Diese setzten sich aus Einzelteilen zusammen. Die Standardteile zu einem Modell sollen hier angezeigt und auch geändert werden können. Beim Laden dieses Fenster werden die Standardteile des Modells in auf Index 0 geladen und eben in den anderen JComboboxen die die Einzelteile enthalten ausgewählt werden.
Wie schon gesagt, klappt es bis auf die grafische Darstellung.
Hoffe, dass mir jemand helfen kann.
Gruß
_dome
Zum Schluss noch ein Bild
Zuletzt bearbeitet: