JList als DropDown ?

bonez81

Grünschnabel
Hallo !

Ich bin dabei hobbymässig ein Programm zu schreiben, welches Personendaten (Name, Vorname, Adresse,...) aus einer Datenbank einliest und sie in passenden "PersonenObjekten" abspeichert.
Der Benutzer soll nun die Möglichkeit haben, in ein JTextField den Nachnamen einzutragen und dadurch das gesamte zugehörige Objekt abzurufen.
So weit so gut, ich denke das kann ich mit einer Collection (Wörterbuch oder ähnliches)realisieren.

Ich möchte das Programm so schreiben, dass sobald der Benutzer einen Buchstaben in das JTextField eingibt, sich eine Auswahl öffnet (z.B. JList ?), die alle Nachnamen anzeigt, die mit diesem Buchstaben anfängt. Beim zweiten Buchstaben, sollen alle Nachnamen angezeigt werden, die mit diesen beiden Buchstaben anfangen usw...
Nun kann der Benutzer in der Auswahl einen Nachnamen anklicken und erhält das zugehörige Objekt geliefert.

Das Ganze soll genau so funktionieren, wie z.B. die "Google-Search-Bar" im WebBrowser.

Für Hilfestellung wäre ich sehr dankbar ! Gibt es in Java vielleicht bereits eine fertig implementierte Klasse dafür ?
 
Hallo,

ich weiß, es ist nicht ganz das was du suchst, aber warum nutzt du keine JCombobox?

MFG

zEriX
 
Ich bin für jede Idee offen :)

Mein Problem ist, dass ich keinen blassen Schimmer habe, wie ich es anstellen soll, dem Programm "zu sagen": Nimm den eingetippten Buchstaben aus dem JTextField (wohl mit KeyListener), vergleiche ihn mit dem "NachnamenFeld" der PersonenObjekte und spuck alle Objekte aus, deren NachnamenFeld mit diesem Buchstaben beginnt. Bzw. trage die NachnameFelder der passenden PersonenObjekte in die JList (oder eben JComboBox) Beim zweiten Buchstaben verfahre genau so nur halt mit den beiden Buchstaben usw. Bis der Anwender einen Nachnamen aus der JList auswählt. Dann, liefer das zugehörige PersonenObjekt".

Das ganze soll relativ effizient bezüglich aiuf Rechenzeit sein, da es sich um mehrere hundert Objekte handeln wird...wenn ichs denn mal gebacken krieg :)
 
Zuletzt bearbeitet:
Also erstmal musst du eine Liste anlegen

zum Beispiel die LinkedList aus dem java.util Package!
Die hat auch eine ToArray Funktion! (So kannst du das dann an die JComboBox übergeben!)
Da packst du dann alle deine Namen rein (oder was auch immer!)
Dann schreibst du eine Funktion die Namen sucht und die einen String annimmt!
(ein Objekt da aus der Lsite holen geht per get(index))
und Alle Elmente die darauf stimmen kommen in eine neue LinkedList!

Die machst du zu nem Array!
Lösche alle ComboBox Elemente und fuge die aus dem Array hinzu!

Schon hastes!
 
Zurück