ERLEDIGT
NEIN
NEIN
ANTWORTEN
4
4
ZUGRIFFE
1786
1786
EMPFEHLEN
-
19.05.05 16:33 #1
- Registriert seit
- May 2005
- Beiträge
- 5
Hey!
-Ich möchte eine dynamisch zu füllende JList haben und:
-bei Auswahl eines Namens die ID in die Datenbank speichern.
Daher:
Aus einer Datenbank sollen je Element der Liste 2 Einträge (z.B. Kunden-ID und Kunden-Name) vorhanden sein.
Wie geht das?
Schon ein eingefügtes 2-elementiges Array läßt sich nicht über das Model-Object auslesen.
(Datenbank-Anbindung, SQL etc. sind klar, DefaultListModel für das dynamische Befüllen verwendet)
Gruß
-
04.06.05 00:30 #2
- Registriert seit
- Dec 2004
- Beiträge
- 12
Hi,
falls Du nicht ohnehin bereits eine Lösung für Dein Problem gefunden hast (ich bin spät...), hier mein Vorschlag (wenn ich Dich richtig verstanden habe, möchtest Du ja pro Listeneintrag den Id aus der Kundentab "unsichtbar" mitspeichern (und somit bleibt Deine Frage wenigstens nicht unbeantwortet, auch wenns nur symbolischen Charakter hat):
class CModel extends DefaultListModel{
ArrayList a = new ArrayList();
public void addEntry(int id, String name){
super.addElement(name);
a.add(new Integer(id));
}
public void insertEntry(int index, int id, String name){
super.add(index, name);
a.add(index, new Integer(id));
}
public int getId(int index){
return Integer.valueOf(a.get(index).toString()).intValue();
}
}
// ANWENDUNG:
// (Daten über JDBC auslesen)
Primary Key aus Kundentabelle -> 666
Name aus Kundentabelle: -> "Luzifer GmbH"
// Daten in GUI verarbeiten
CModel model = new CModel();
model.addEntry(666, "Luzifer GmbH");
JList list = new JList(model);
// Primary Key des 1. Tabelleneintrags holen
System.out.println("ID: " + model.getId(0));
// In echter Applikation natürlich so:
model.getId(list.getSelectionModel().getMinSelectionIndex());
Cheers,
SnakeGeändert von snake_plissken (04.06.05 um 00:51 Uhr)
-
04.06.05 02:54 #3
- Registriert seit
- Dec 2004
- Beiträge
- 12
Warte,
falls man einen Eintrag löschen möchte, fehlt der CModel-Klasse natürlich noch diese Methode:
public void deleteEntry(int index){
super.removeElementAt(index);
a.remove(index);
}
...und wenn man die ganze Liste löschen möchte
public void deleteAllEntries(){
super.removeAllElements();
a.clear();
}
ansonsten CModel neu initialisieren und der JList zuweisen
Die Klapperschlange
-
07.06.05 09:14 #4
- Registriert seit
- May 2005
- Beiträge
- 5
Hallo Snake!
Hab zwar ´nen Workaround gefunden, aber das ist natürlich viel eleganter. Wußte nicht, wie man das Model ausbaut.
Vielen Dank.
Gruß
Spider
P.S. Toller Film übrigens: Die Klapperschlange ( Snake Plessken) 1981
-
07.06.05 10:58 #5
- Registriert seit
- May 2005
- Beiträge
- 5
Hey!
Zugriff auf den Inhalt der Liste dann z.B. (ohne Umwege über Model)
durch:
System.out.println("ID: " + ((CModel)list.getModel()).getId(0));
Gruß
Spider
Ähnliche Themen
-
Firefox: Wikipedia mehrspaltig anzeigen?
Von Frezl im Forum Coders TalkAntworten: 4Letzter Beitrag: 12.07.09, 17:59 -
Überschrift Mehrspaltig
Von brunisand im Forum Desktop Publishing (DTP)Antworten: 2Letzter Beitrag: 28.07.08, 11:01 -
SWT List mehrspaltig
Von Drizztd im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 0Letzter Beitrag: 27.10.06, 09:46 -
Comobox mehrspaltig
Von bonke-online im Forum .NET ArchivAntworten: 4Letzter Beitrag: 21.04.05, 10:40 -
Comobox mehrspaltig
Von bonke-online im Forum Sonstige Grafik-ProgrammeAntworten: 0Letzter Beitrag: 19.04.05, 22:51





Zitieren
Login





