JCombobox String-Element (sichtbar) und Integer-Schlüssel (inhärent)

8

Ich habe ein Datenbankschema = welches in einer JCombobox als JTable-Spalte angezeigt wird, um einen Namen auszuwählen. Aber ich möchte das ID-Feld (als Fremdschlüssel) in eine andere Tabelle einfügen.

Wenn Sie im Drop-Down-Menü ein Element auswählen, wird das ausgewählte Element in den angezeigten Bereich des Kombinationsfelds gebracht.

Was ich tun möchte, ist, wenn ein beliebiges Element (String) in der Combo-Box seinen entsprechenden Integer-Schlüssel (kann in einer sortierten Karte gehalten werden) sollte im Combobox-Platzhalter-Bereich angezeigt werden, so dass, wenn den Wert von die JTable.getValueAt (Zeile, Spalte), ich bekomme den Integer-Schlüssel, nicht den String-Wert. Bitte helfen Sie mir, wie kann ich das tun?

    
karim 27.01.2011, 22:55
quelle

3 Antworten

-2

Da gibt es keinen automatischen Weg es zu tun :(. Ich verwende eine Karte, um meine Werte und Schlüssel zu behalten.

%Vor%

Holen Sie sich alle Kategorien (Schlüssel, Wert) und füllen Sie Karte und Combo

%Vor%

Die vierte Spalte meiner JTable sollte Combobox sein,

%Vor%

Wenn Sie den Wert in der Combobox bearbeiten, wird der Text angezeigt, aber um den Wert in der Datenbanktabelle zu aktualisieren, muss ich den Integer-Schlüssel erhalten.

%Vor%

Für die Aktualisierung der Datenbank,

%Vor%

Und hier ist der getKeyForValue,

%Vor%     
karim 31.01.2011, 00:34
quelle
13

Sie sollten ein Objekt im TableModel speichern, das sowohl den anzuzeigenden Zeichenfolgenwert als auch den Integer-Wert für den Schlüssel enthält. Dann greifen Sie auf table.getValueAt (...) zu, Sie haben Zugriff auf das Objekt, das beide Informationen enthält.

Hier ist ein Beispiel für ein eigenständiges Kombinationsfeld:

%Vor%     
camickr 27.01.2011 23:01
quelle
0

Ich habe eine großartige und kluge Lösung:

%Vor%

Ich setze das Modell für rolComboBox mit einem Vector mit einem benutzerdefinierten Objekt, das resultSet -Objekt enthält alle Daten von der Datenbank. Nachdem ich die ID aus dem comboBox bekommen soll bekomme ich es mit der Methode getSelectedItem .

%Vor%     
Brayan Loayza 14.01.2018 04:03
quelle

Tags und Links