JBomboBox mal voll mal leer

Status
Nicht offen für weitere Antworten.

genji3000

Mitglied
Hallo,

ich habe eine JCombobox, die ich mit Tabellennammen aus einer Datenbank füllen will.
Das komische ist, dass manchmal die Daten drinstehen und manchmal nicht.

Ich benutze JDK 1.5.0-06
Dazu habe ich ein Workaround gefunden, indem es heißt das man besser Objecte als Strings benutzen soll, weil es sonst zu Schwiwrigkeiten kommen kann.
Nun habe ich beide Möglichkeiten ausprobiert, bekomme aber immer noch mal eine schön gefüllte JComboBox und manchmal eine leere.

Über eine Lösungsmöglichkeit würde ich mich sehr freuen. 😀

Code:
private Object makeObj(final String item){
        	return new Object() { public String toString() {return item;}};
        }
        
        //Methode für Tabellen
        public void getTabelle() throws SQLException{
        	while(resultsetTabelle.next()){
        		//jComboBox1.addItem(makeObj(resultsetTabelle.getString("TABLE_NAME")));
        		jComboBox1.addItem(resultsetTabelle.getObject("TABLE_NAME"));
        	}
        }
 
genji3000 hat gesagt.:
..Das komische ist, dass manchmal die Daten drinstehen und manchmal nicht..
Versuch's mal so:
Code:
   public void getTabelle() throws SQLException{
        resultsetTabelle.beforeFirst();//<------------- einfügen
        while(resultsetTabelle.next()){
          ...
        }
    }
 
Wenn nichts in der ComboBox drinnen steht, gibts dann ne SQLException vielleicht??

Lässt du dir die eh anzeigen oder "verschluckst" du die irgendwann?


Desweiteren diese String to object Methode kannst dir ruig sparen!

Jede Klasse ist erbt von Object, dh, jede Klasse ist eigentlich sowieso eine instanz von Object!
 
Danke für die Tipps.
Es hat sich aber leider nichts geändert.
Bei jedem 2. oder 3. mal ist die Combobox leer.
Eine SQL-Exception wird nicht angezeigt.

Kann das an JDK 1.5 liegen?
 
Mach mal

Code:
public void getTabelle() throws SQLException{
           while(resultsetTabelle.next()){
              String tmp = resultsetTabelle.getString("TABLE_NAME");
              System.out.println("Element: " + tmp);
              jComboBox1.addItem(tmp);
           }
        }

Und schau ob er dir immer was ausgibt!
 
Danke für den Tipp.
Leider immer noch das gleiche.
Auf der Konsole gibt er immer die Elemente aus in der Combobox leider nicht immer.
Irgendwie scheint die Combobox manchmal keine Daten zu bekommen.

In der Doku heißt es:
Warning: Focus and keyboard navigation problems may arise if you add duplicate String objects. A workaround is to add new objects instead of String objects and make sure that the toString() method is defined. For example:
Code:
   comboBox.addItem(makeObj("Item 1"));
   comboBox.addItem(makeObj("Item 1"));
   ...
   private Object makeObj(final String item)  {
     return new Object() { public String toString() { return item; } };
   }

Aber das ja auch nicht funktioniert. :bahnhof:
 
Naja, das hat was damit zum tun, das man gleiche Elemente adden will und dann mit Tastatur navigiert!

Prob mal nach dem adden ein

JComboBox.validate();
JComboBox.repaint();

Aber mit deiner JComboBox instanz!
 
Danke.
Funktioniert leider auch nicht.
Im Moment wird nur noch eine leere COmbobox angezeigt.
Muss ich eigentlich ein CVombobox Modell auswählen?
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben