ArrayLists in JCombobox

BMWbest

Mitglied
Hey,
ich bin schon nach einiger Zeit am googlen nach dem o.g. Problem, aber kein tutorial passt so recht auf mein Problem. Ich hoffe ihr könnt mir helfen.

Zunächst: Ich habe eine Kundenklasse, die außerdem Attribute von der Oberklasse Personen erbt.
Somit besteht ein Kunde aus Kundennummer, Name, Vorname, eMail, Telefon usw.

Außerdem habe ich eine Gui-Klasse "AuftragAnlegen". Hier werden Aufträge angelegt.
Ein Auftragsobjekt besteht aus Auftragsnummer, Dauer, Kundennummer (Fremdschlüssel), Personalnummer (Fremdschlüssel), Einsatzbereich usw...

Hinter allem steckt eine Derbydatenbank mit den gespeicherten Werten.

Nun zum Problemfall:
Ich möchte in "AuftragAnlegen" eine JComboBox einfügen, die als Items sämtliche in der Datenbank gespeicherten Kundennummern enthält und weiß im Moment nicht, wie ich das hinbekommen soll.

Ich habe bereits eine ArrayList "kundenListe" erstellt, die sämtliche Kunde enthält.
Wie bekomme ich jetzt aber die Kundennummern daraus in die Combobox?

Danke für eure Hilfe!
 

Timothy Truckle

Top Contributor
Ich habe bereits eine ArrayList "kundenListe" erstellt, die sämtliche Kunde enthält.
Wie bekomme ich jetzt aber die Kundennummern daraus in die Combobox?
Wenn Deine Klasse
Code:
Kunde
Code:
toString()
implementiert hätte wäre mein Vorschlag:
Java:
new JCombobox(kundenListe.toArray(new Kunde[0]));
bye
TT
 

Landei

Top Contributor
Wenn man sich ganz, ganz, ganz sicher ist, dass da nie etwas anderes in die Combobox hineinkommt, die Werte nie gefiltert werden müssen u.s.w., mag das vielleicht angehen, ansonsten würde ich doch (wie in obigen Link beschrieben) zu einem eigenen Model raten.
 

Timothy Truckle

Top Contributor
Wenn man sich ganz, ganz, ganz sicher ist, dass da nie etwas anderes in die Combobox hineinkommt, die Werte nie gefiltert werden müssen u.s.w., mag das vielleicht angehen, ansonsten würde ich doch (wie in obigen Link beschrieben) zu einem eigenen Model raten.
Filtern lasse ich gerne als Argument für ein [JAPI]ComboboxModel[/JAPI] gelten, aber das [JAPI]DefaultComboBoxModel [/JAPI]selbst kann das noch nicht und ich fürchte, dass dann nur Lösungen raus kommen, die man auch mit der Liste selbst hätte umsetzen können...:(

bye
TT
 

Landei

Top Contributor
Jaaaain...es kommt halt darauf an, wie dynamisch das ganze sein muss. Mit einem eigenen Model hat man eben jederzeit die Möglichkeit, Inhalt und Darstellung anzupassen, und das z.B. auch mit anderen Models zu verknüppern.
 

BMWbest

Mitglied
also Filtern muss sie natürlich in gewisser Weiße. Vielleicht nicht gerade beim Kunde.
Beim Personal aber schon, da ein Mitarbeiter später nur einen Auftrag zugeordnet werden soll.

Außerdem existiert noch eine Combobox mit gewissen Teilbereichen (Personenschutz, Gebäudeschutz usw.)
Da die Mitarbeiter in der Datenbank mit Spezialgebieten (dieselben (Personenschutz, usw)) angelegt sind, sollen in der Combox mit den Personalnummern/Mitarbeiternummern nur die angezeigt werden, bei denen og. Spezialgebiet zuvor ausgewählt wurden,.
Kurz: Was in der MitarbeiterComboBox angezeigt wird, hängt von der SpezialgebietComboBox ab.
Das ist ein wenig tricky :/
Ich fang erst mal mit der "einfacheren Combobox" Kunden an.
denn einer kann ja mehrere Aufträge abschicken. Sprich es soll in der combobox immer die ganze Liste an Kundennummern angezeigt werden.

Zu oben genanntem Link:

Ich mache also eine separte Klasse "ComboBoxModel"
Java:
DefaultComboBoxModel model = new DefaultComboBoxModel();
model.addElement(kundenListe);
// Der combobox wird das model zugewiesen
deineComboBox.setModel(model);

Was für ein Model wird zugewiesen? Das versteh ich jetzt nicht so recht.

Außerdem wäre dann noch nicht gelöst, wie er von den Kundenobjekten NUR die Kundennummern anzeigt. Weiße ich der Combobox das Kundenobjekt zu, so stehen da ja nacher sämtliche Daten drinnen, oder?
 
Zuletzt bearbeitet:

Landei

Top Contributor
Nee, nicht DefaultComboBoxModel. Du willst ja selbst die Kontrolle über die Daten haben.

Hier mal ein Beispiel für ein Model, bei dem du über eine RegEx die Werte filtern kannst (Java 1.7, sonst ohne Generics):

Java:
import javax.swing.*;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class MyComboBoxModel<T> extends AbstractListModel<T> implements ComboBoxModel<T> {

    private final List<T> originalList;
    private List<T> list;
    private Object selectedItem;

    public MyComboBoxModel(List<T> list) {
        this.originalList = list;
        this.list = list;
    }

    @Override
    public int getSize() {
        return list.size();
    }

    @Override
    public T getElementAt(int index) {
        return list.get(index);
    }

    @Override
    public void setSelectedItem(Object anItem) {
        if (list.contains(anItem)) {
            selectedItem = anItem;
            fireContentsChanged(this, -1, -1); 
        }
    }

    @Override
    public Object getSelectedItem() {
        return selectedItem;
    }

    public void filter(String pattern) {
        list = new ArrayList<T>();
        for(T t : originalList) {
            if (t.toString().matches(pattern)) {
                list.add(t);
            }
        }
        if (! list.contains(selectedItem)) {
           selectedItem = null;
        } 
        fireContentsChanged(this, -1, -1);
    }

    public void unfilter() {
        list = originalList;
        fireContentsChanged(this, -1, -1);
    }
}


//Mal ein Test:
List<String> list = new ArrayList<String>(Arrays.asList("one","two","three","four","five"));
MyComboBoxModel<String> model = new MyComboBoxModel<String>(list);
JComboBox<String> box = new JComboBox<String>(model);
model.filter(".*o.*");  //zeigt nur Items, die ein "o" enthalten
int x = JOptionPane.showConfirmDialog(null, box);
System.out.println(x);
System.out.println(box.getSelectedItem());
 
Zuletzt bearbeitet:

BMWbest

Mitglied
Hey spitze, danke dir...
Ich steig jetzt trotzdem noch immer nicht ganz durch..

Trage ich bei getElementAt nun statt index den Indexwert ein,wo sich die Kundennummer im Object befindet?

und die Filtermethode macht in meinem Beispiel ja auch wenig sinn.
Wenn dann müsste ich bei den Mitarbeiten schauen, ob Kunde.toString.contains("Personenschutz/Gebäudesicherung usw"). Oder?

je nach Auftragart sollen später ja nur die Mitarbeiter in der Combobox angezeigt werden, die auf den Einsatzbereich spezialisiert sind.

Reicht eigentlich das ComboBoxModel oder muss ich gar das MutableComboBoxModel verwenden ?
Eigentlich langt sie ja, da ich in dem Teil der Applikation keine weiteren Kunden/Mitarbeiter hinzufüge/entferne.
Sorry für das viele Wirrwar, aber ich kann das Beispiel noch nicht wirklich auf mein Problem transformieren.
Auch weiß ich nicht, wie ich das Model später implementieren kann in die Gui-Klasse...
 

Landei

Top Contributor
Na die Filtermethode musst du schon an deine Gegebenheiten anpassen, ich habe nur etwas genommen, was bei beliebigen Objekten funktioniert.

Und wie du das Model verwendest, zeigt doch der Beispielcode. Am bequemsten hältst du in deiner für die GUI verantortlichen Klasse eine Membervariable mit dem Model (natürlich muss es der JComboBox beim Initialisieren auch mitgegeben werden. Deine Listener (oder was auch immer) können dann filter oder so einfach am Model aufrufen, und die JComboBox verändert sich entsprechend.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
paulen1 Best Practice "Unchecked Assignment" Warnung beim erstellen eines 2D Arrays of Arraylists Java Basics - Anfänger-Themen 2
lizamcoden dateizugriff, arraylists Java Basics - Anfänger-Themen 15
S BubbleSort für ArrayLists Java Basics - Anfänger-Themen 3
C Anzahl ArrayLists unbekannt Java Basics - Anfänger-Themen 4
B Objekte, bspw. konkret Arraylists,manuell aus Speicher löschen? Java Basics - Anfänger-Themen 70
HoT verschiedene ArrayLists mit ähnlichem Namen in for-Schleife aufrufen Java Basics - Anfänger-Themen 3
J Replace mit Hilfe von ArrayLists Java Basics - Anfänger-Themen 6
S Vergleich zweier ArrayLists mit Ausgabe an dritte ArrayList Java Basics - Anfänger-Themen 5
M BildLauf - ArrayLists - Denkanstoß Java Basics - Anfänger-Themen 2
I Daten aus Arraylists in eine Tabelle übertragen Java Basics - Anfänger-Themen 2
I Mehrere ArrayLists mit einer for( : ) Schleife auf Inhalt prüfen Java Basics - Anfänger-Themen 6
T add-Methode für verschachtelte ArrayLists Java Basics - Anfänger-Themen 10
W ArrayLists: Verständnisproblem bei remove() Java Basics - Anfänger-Themen 2
T Probleme mit ArrayList, in der Objekte gespeichert sind, die ArrayLists enthalten Java Basics - Anfänger-Themen 2
J 100 arraylists mit for-schleife erstellen und in hashmap einbinden Java Basics - Anfänger-Themen 11
F Argh: hab ArrayList von ArrayLists, Konstruktor will ArrayLists Java Basics - Anfänger-Themen 9
J ArrayLists initialisieren Java Basics - Anfänger-Themen 21
J Hash-Maps / ArrayLists testen Java Basics - Anfänger-Themen 12
G ArrayLists, HashMaps, etc. vereinigen. Java Basics - Anfänger-Themen 6
J Primzahlen errechnen.ArrayLists abgleichen Java Basics - Anfänger-Themen 2
U ArrayLists und Casten Java Basics - Anfänger-Themen 2
E Meine JCombobox werte an ohne selectiert zu haben Java Basics - Anfänger-Themen 6
D Probleme mit dem Windowbuilder und JComboBox Java Basics - Anfänger-Themen 2
J Selektiertes Element von jComboBox zwischenspeichern und wieder einsetzen Java Basics - Anfänger-Themen 0
C Erste Schritte JComboBox Einträge auf Duplikat prüfen Java Basics - Anfänger-Themen 4
A Mit JComboBox Ergebnis einen Integer aus einer anderen Klasse aufrufen. Java Basics - Anfänger-Themen 2
M JComboBox ersten Eintrag leerlassen bzw. Platzhalter Java Basics - Anfänger-Themen 1
Tommy135 Klassen jComboBox macht nicht was sie soll Java Basics - Anfänger-Themen 4
S ArrayListe in einer JComboBox anzeigen Java Basics - Anfänger-Themen 10
H JComboBox wird nicht angezeigt Java Basics - Anfänger-Themen 3
M JComboBox feste double Werte zu ordnen Java Basics - Anfänger-Themen 8
T Einträge in jComboBox aus Liste übernehmen Java Basics - Anfänger-Themen 1
T Auslesen mehrerer jComboBox (-en) Java Basics - Anfänger-Themen 4
H JCombobox Java Basics - Anfänger-Themen 1
D JComboBox duplizieren Java Basics - Anfänger-Themen 2
T jComboBox Java Basics - Anfänger-Themen 9
GadgetSofa jComboBox mit dem Button verbinden. Aber wie?? Java Basics - Anfänger-Themen 4
A GUI Absturz nach 3x benutzen einer JComboBox Java Basics - Anfänger-Themen 11
S Erste Schritte JComboBox Java Basics - Anfänger-Themen 1
S JCombobox und JButton verknüpfen Java Basics - Anfänger-Themen 6
S JComboBox automatisch füllen Java Basics - Anfänger-Themen 3
C JComboBox "Hilfstext" anzeigen Java Basics - Anfänger-Themen 11
T Datentypen Jcombobox Array Java Basics - Anfänger-Themen 1
J JComboBox in andere Klasse Java Basics - Anfänger-Themen 2
S Variablen auslesen beim JCombobox Java Basics - Anfänger-Themen 0
K JCombobox Eclipse Java Basics - Anfänger-Themen 7
D JComboBox erzeugen Java Basics - Anfänger-Themen 1
T JComboBox Java Basics - Anfänger-Themen 3
M JComboBox und ItemListener/ItemEvent Problem Java Basics - Anfänger-Themen 3
M JComboBox Auswahl Java Basics - Anfänger-Themen 10
N Compiler-Fehler JComboBox DefaultListCellRenderer Java Basics - Anfänger-Themen 2
J JComboBox - Auswahl auslesen Java Basics - Anfänger-Themen 2
J jcombobox.getSelectedItem - nullpointerexception Java Basics - Anfänger-Themen 3
C JComboBox setSelectedItem(Object) Problem Java Basics - Anfänger-Themen 5
M JComboBox Obergrenzen/Untergrenze festlegen? Java Basics - Anfänger-Themen 5
B JComboBox(editable) Java Basics - Anfänger-Themen 6
K JComboBox hat volle Höhe uber das gesamte JPane, warum? Java Basics - Anfänger-Themen 2
S JComboBox mit ArrayList füllen Java Basics - Anfänger-Themen 7
C Ausgewähltes Element einer JCombobox in JTextField Java Basics - Anfänger-Themen 3
S JComboBox füllen Java Basics - Anfänger-Themen 9
C JComboBox Java Basics - Anfänger-Themen 9
R Auf auswahl in ner JComboBox reagieren Java Basics - Anfänger-Themen 3
T Frage zu JComboBox Java Basics - Anfänger-Themen 6
G JComboBox wird nicht gezeichnet Java Basics - Anfänger-Themen 3
N JComboBox mit Dateinamen befüllen Java Basics - Anfänger-Themen 7
M JComboBox => Item String => Color Java Basics - Anfänger-Themen 2
StrikeTom Editable JComboBox + enter Wie??? Java Basics - Anfänger-Themen 3
J JComboBox Listener Java Basics - Anfänger-Themen 6
F Werte aus JComboBox auslesen und Zahlen zuordnen Java Basics - Anfänger-Themen 5
S JComboBox Platzhalter Java Basics - Anfänger-Themen 7
J jComboBox auf default setzen wie? Java Basics - Anfänger-Themen 3
J daten über jComboBox ausgeben wie? Java Basics - Anfänger-Themen 2
S Vector -> String JComboBox Java Basics - Anfänger-Themen 11
E JComboBox Java Basics - Anfänger-Themen 4
J jComboBox.getSelectedIndex() Java Basics - Anfänger-Themen 8
J Funktion Auslösen über JComboBox Java Basics - Anfänger-Themen 2
T JComboBox klappt nur ein- bis zweimal auf Java Basics - Anfänger-Themen 30
S Kein Event bei Click auf JComboBox Java Basics - Anfänger-Themen 4
Developer_X JComboBox getSelectedFilè??? Java Basics - Anfänger-Themen 4
T Daten eines Ordners in JCombobox anzeigen Java Basics - Anfänger-Themen 5
M Einträge in JComboBox farblich hinterlegen? Java Basics - Anfänger-Themen 2
6 Dritte JComboBox in Abhaengigkeit von zwei vorherigen Java Basics - Anfänger-Themen 4
G 2. JComboBox in Abhängigkeit der 1. JCombobox füllen Java Basics - Anfänger-Themen 2
S Problem mit JComboBox Java Basics - Anfänger-Themen 9
H jcombobox mit nur einem Item Java Basics - Anfänger-Themen 7
G Inhalt einer JComboBox wechseln Java Basics - Anfänger-Themen 5
G Problem mit JComboBox Java Basics - Anfänger-Themen 15
G JComboBox Strukturiert anzeigen Java Basics - Anfänger-Themen 6
Schandro Hotkeys bei JComboBox abschalten Java Basics - Anfänger-Themen 3
G JComboBox soll beim Öffnen eine andere JCB öffnen Java Basics - Anfänger-Themen 2
P Hilfe für JComboBox, bmp einbinden/bestimmte punkte auf bmp Java Basics - Anfänger-Themen 3
G JComboBox - BasicComboPopup Java Basics - Anfänger-Themen 4
S Inhalt der JComboBox vergrößtert die JCB ? Java Basics - Anfänger-Themen 2
B Werte aus einer JCombobox in eine Liste Java Basics - Anfänger-Themen 16
mwildam JComboBox FocusGained feuert nicht wenn editable Java Basics - Anfänger-Themen 4
F ComboBox im Vektor auslesen, Vektor<JComboBox> Java Basics - Anfänger-Themen 6
S Jcombobox und 2maliges anzeigen wegen ItemStateChanged? Java Basics - Anfänger-Themen 3
W setModel feuert ActionEvent bei JComboBox Java Basics - Anfänger-Themen 2
G Frage zu JComboBox Java Basics - Anfänger-Themen 2
W Actionlistener oder Itemlistener bei JCombobox ? Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben