Vector in JList

RW_NORD

Mitglied
Hallo,

Ich bin neu hier im Forum und auch Änfänger im Programmieren mit Java.
Bin gerade dabei ein Projekt zu bearbeiten und komme nicht weiter.
Und zwar möchte ich gern eine JList mit einem Vector füllen, welcher ich mit verschiedenen Personen aus der DB gefüllt wird. Der Vector wird in der Klasse ClientInterface gefüllt und soll dann der JList in meiner GUI übergben werden. Zwar stehen die Personen in dem Vector drin, werden aber in der JList nicht untereinander angeordnet, sondern fortlaufend angezeigt. Komme leider nicht auf die Lösung wie ich das hinbekomme, oder ist vlt sogar die Auswahl einer Jlist für einen Vector unvorteilhaft. Ich psote mal den Code, in welchem mei Vector gefüllt wird.
Danke im voraus für eure Zeit und Antworten


Java:
    /**
     * Fülle eine JList mit allen Personen aus der Datenbank
     */
    public Vector<Vector> fuellJList_Person(Vector listData) {

        //Wenn bisher keine Verbindung hergstellt wurde, wird eine aufgebaut
        if (this.verwaltung == null) {
            this.initServerConnection();
        }

        try {

            Vector<Person> person = verwaltung.getAll_Person();
            Vector inhalte = new Vector();

                //Hier wird dem Vector 'inhalte' das Objekt Person mit den Elementen Titel, Vorname und Name
		//übergeben
		for ( Person c : person ) {
                    if (c != null ) {
                        inhalte.add(c.get_person_id()+ ": " + c.get_vorname() + " " + c.get_nachname());
                    }
                }
                
            listData.add(inhalte);

        } catch (RemoteException re) {
            System.out.println("RemoteException");
            System.out.println(re);
        }
        return listData;
    }
 

freez

Top Contributor
An dem Beispielcode ist jetzt erst mal nix Aussergewöhnliches zu erkennen. Wie füllst du deine JList (Code)?

[EDIT]Nachtrag: du füllst in dein listData mit einem Vector namens Inhalt und gibst diesen zurück? Vielleicht postest du mal den Code, der diese Methode aufruft. Das sieht jetzt tatsächlich etwas merkwürdig aus. Vor allem, warum übergibst du den Vector listData der Methode und lieferst es wieder als return Wert zurück?[/EDIT]
 
Zuletzt bearbeitet:

RW_NORD

Mitglied
Wow das ging jetzt schnell...
Ich habe das in der Methode so gemacht weil ich ohne der Methode den Vector listData zu übergeben sonst bei dem return Wert ein Fehler kam. Hatte deshalb bisschen im Internet gestöbert und bin dann auf diese Schreibweise gekommen.
Der Code in dem ich die Methode aufruf und die JList füll ist dieser (kurzgefasst). Bitte nicht zu streng mit mir sein, wenn es nicht sauber progarmmiert ist. :(

Java:
Vector listData = new Vector();
DefaultListModel dlm = new DefaultListModel();
listTeilnehmer = new JList(dlm);
dlm.addElement(ci.fuellJList_Person(listData));
 

Timothy Truckle

Top Contributor
Java:
listData.add(inhalte);
Du fügst hier den selben Vector
Code:
inhalte
in den anderen Vector
Code:
listData
ein.
Wenn Du dann den Vector
Code:
listData
an die JList übergibst ruft dies auf jedem Eintrag in
Code:
listData
Code:
toString()
auf. Die Einträge in
Code:
listData
sind aber viele Referenzen auf die selbe Instanz von
Code:
inhalte
.

Warum gibst Du eigentlich nicht direkt den Vector
Code:
person
zurück?
Die einzige Änderung, die man machen müßte wäre,
Code:
toString()
in
Code:
Person
zu implementieren.

bye
TT
 

freez

Top Contributor
Java:
/**
     * Fülle eine JList mit allen Personen aus der Datenbank
     */
    public Vector<String> fuellJList_Person() {
             Vector inhalte = new Vector();
        //Wenn bisher keine Verbindung hergstellt wurde, wird eine aufgebaut
        if (this.verwaltung == null) {
            this.initServerConnection();
        }
 
        try {
 
            Vector<Person> person = verwaltung.getAll_Person();

 
                //Hier wird dem Vector 'inhalte' das Objekt Person mit den Elementen Titel, Vorname und Name
        //übergeben
        for ( Person c : person ) {
                    if (c != null ) {
                        inhalte.add(c.get_person_id()+ ": " + c.get_vorname() + " " + c.get_nachname());
                    }
                }
 
        } catch (RemoteException re) {
            System.out.println("RemoteException");
            System.out.println(re);
        }
        return inhalte;
    }

Ganz sponatn würde ich sagen, dass es so richtiger wäre (ungetestet).
 

RW_NORD

Mitglied
Erstmal Danke Leute. Mit soviel Feedback habe ich gar nicht gerechnet, bin deswegen auch ein bisschen überfordert alles in mich aufzunhemen.
@ freez: Dein Code funktionert, nur leider bekomme ich die selbe Ausgabe in meiner JList wie vorher, also, [1: ......, 2: .......] in einer Zeile:(
@ Timothy Truckle: Auch Danke für deine Antwort. wenn ich direkt den Vector person zurückgeben will kommt leider ein Fehler. Wie genau meinst du das mit dem toString(), bin da gerade bisschen überfordert.
 

freez

Top Contributor
Na klar :idea:

die Methode addElement() musst du pro Eintrag einmal aufrufen. Also so:

Java:
	DefaultListModel<String> dlm = new DefaultListModel<String>();
		for (String s : fuellJList_Person()) {
			dlm.addElement(s);
		}
		JList<String> list = new JList<String>(dlm);
Und hier mal meine vereinfachte Testversion der Methode fuellJList_Person:
Java:
public Vector<String> fuellJList_Person() {
		Vector<String> inhalte = new Vector<String>();

		String[] s = { "Paul", "Hans", "Emil", "Helmut", "John", "Emily", "Johann", "Blub" };
		for (int i = 0; i < s.length; i++)
			inhalte.add(i + ": " + s[i]);

		return inhalte;
	}
 

freez

Top Contributor
Noch einfacher sollte es so gehen:

Java:
	...
	JList<String> list = createJList_Person();

         ...

	public JList<String> createJList_Person() {
		DefaultListModel<String> dlm = new DefaultListModel<String>();
		String[] s = { "Paul", "Hans", "Emil", "Helmut", "John", "Emily", "Johann", "Blub" };
		for (int i = 0; i < s.length; i++)
			dlm.addElement(i + ": " + s[i]);

		JList<String> list = new JList<String>(dlm);
		return list;

	}
 

RW_NORD

Mitglied
Also mir zeigt es die "return person" Zeile rot an (Cannot find symbol person variable).
Sorry dumm von mir nicht einfach kurz zu googlen:autsch:

@Freez versuch gerade deinen Code zu implementieren, bekomme es leider irgendwie nicht hin. Sonst hätte ich mich schon längst mal bedankt bei dir, Sorry. Aber ich versuch es weiter.:toll:
 

Timothy Truckle

Top Contributor
Also mir zeigt es die "return person" Zeile rot an (Cannot find symbol person variable).
Sorry dumm von mir nicht einfach kurz zu googlen:autsch:
Klar, die Variable
Code:
person
existiert außerhalb des try/catch-Blocks nicht.
Lösung:
das
Code:
return
vor das
Code:
catch
ziehen und im
Code:
catch
-Block als letztes eine RuntimeException werfen. Wenn Du ein
Code:
RemoteException
bekommst ist sicher sowieso kein vernünftiges Weiterarbeiten möglich...


bye
TT
 

RW_NORD

Mitglied
@ Timothy Truckle: Ja klingt logisch, Anfängerfehler:rtfm:

@freez: Also habe es geschafft deinen Code zu implementieren. Was soll ich sagen , es hat lang gedauert aber............................FUNKTIONIERT!!!!!!!! :toll::toll::toll::toll:

Danke an beide dass ihr euch Zeit genommen habt. Echt super von euch

Grüße NORD
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
S JList in Vector Allgemeine Java-Themen 3
A Vector Strings in Array splitten Allgemeine Java-Themen 6
G Fehler mit Vector Allgemeine Java-Themen 3
M String Array Vector komprimieren und verschicken Allgemeine Java-Themen 3
P Vectorelemente in einen anderen Vector kopieren Allgemeine Java-Themen 12
U Vector aus Oberklasse spezialisieren Allgemeine Java-Themen 2
M Cast double[]-->Object[] oder Vector<double[]> Allgemeine Java-Themen 3
R Threads korrekte Synchronisation bei Vector und ArrayList Allgemeine Java-Themen 6
H Index Out of Bounds bei Vector Allgemeine Java-Themen 4
H Java Vector Frage Allgemeine Java-Themen 9
E NetBeans Vector durch ArrayList ersetzen Allgemeine Java-Themen 4
C Vector/Point-Problem Allgemeine Java-Themen 3
M Buffer-Vector einzeln und zusammen synchronisieren Allgemeine Java-Themen 4
B Suchalgorithmus der Klasse Vector Allgemeine Java-Themen 5
X Vector Allgemeine Java-Themen 3
S 2D Vector speziell ausgeben. Allgemeine Java-Themen 2
S Vector in Vector gespeichert, wie greift man darauf zu? Allgemeine Java-Themen 3
C Swing JTable Vector aus DB adden Allgemeine Java-Themen 3
R Vector.clear() oder neu initialisieren Allgemeine Java-Themen 3
S vector & strings Allgemeine Java-Themen 26
X Vector in Intervall-Menge umwandeln Allgemeine Java-Themen 4
D Array oder Vector in Enum Deklarieren Allgemeine Java-Themen 3
J Erweiterte For-Schleife mit Vector Allgemeine Java-Themen 5
G JComponent in Vector - wie klonen? Allgemeine Java-Themen 7
V Performancefrage int-Vector/Stack Allgemeine Java-Themen 10
N HashMap<String,Vector<String>> a = new HashMap<String,Vector<String>>(); Allgemeine Java-Themen 4
H GUI: RectangleDrawer - zu viele Elemente im Vector für die paint-Methode Allgemeine Java-Themen 6
I Vector mit Objekten sortieren,Videos mit JMF wiedergeben Allgemeine Java-Themen 6
MQue Vector<..> nicht verwenden Allgemeine Java-Themen 4
H Vector<Character> zu char[] castern Allgemeine Java-Themen 2
T Element aus Vector entfernen Allgemeine Java-Themen 4
Spot84 Vector nach Ressourcetyp sortieren Allgemeine Java-Themen 4
M get Funktion von Vector Allgemeine Java-Themen 4
N wie greife ich auf hashmap in vector zu Allgemeine Java-Themen 9
V NullPointerException bei Vector Allgemeine Java-Themen 2
E einfache Frage zu Vector Allgemeine Java-Themen 8
K Serialisierung von Hashmap in Vector Allgemeine Java-Themen 3
G Vector beim Initialisieren befüllen Allgemeine Java-Themen 4
G Vector addAll Allgemeine Java-Themen 5
B sorteiren von Datein nach Zeitstempel in einem Vector Allgemeine Java-Themen 5
W [solved] Vector sortieren (Collection / Comparable?) Allgemeine Java-Themen 7
MQue Vector Allgemeine Java-Themen 7
F Vector in eine Datenbank speichern? Allgemeine Java-Themen 3
P Vector auf JTree Allgemeine Java-Themen 6
P dynamisches Array / Vector Allgemeine Java-Themen 2
P JTable/Vector Allgemeine Java-Themen 5
T Vector und remove? Allgemeine Java-Themen 13
T Vector in JAVA ? Allgemeine Java-Themen 10
P Vector in vielen Klassen Allgemeine Java-Themen 21
MQue Vector implementieren Allgemeine Java-Themen 2
MQue Vector<State> Allgemeine Java-Themen 2
O hilfe bei Vector frage Allgemeine Java-Themen 6
F Synchronisation + Vector/ArrayList/LinkedList Allgemeine Java-Themen 7
Z Elemente in Vector nach Häufigkeit sortieren. Allgemeine Java-Themen 13
H java.util.Vector langsam ? Allgemeine Java-Themen 5
H Vector<T>[] vecs = new Vector<T>[10]; geht nicht Allgemeine Java-Themen 2
N Java API java.util.vector Allgemeine Java-Themen 3
G Vector erweitern Allgemeine Java-Themen 4
S Vector sortieren nach Objekt-Info? Allgemeine Java-Themen 9
A Probleme mit Vector Allgemeine Java-Themen 6
M Vergleich im geordeten Vector und Methodenaufruf Allgemeine Java-Themen 2
J Vector - Wert ersetzen Allgemeine Java-Themen 14
J Vector - Boolean Allgemeine Java-Themen 24
M Vector zu einem byte[] Allgemeine Java-Themen 5
J Vector<Shape> Speichern [gelöst] Allgemeine Java-Themen 11
Y Array mit ID in Vector Allgemeine Java-Themen 6
T Vector <-> double Allgemeine Java-Themen 4
T ArrayList bzw. Vector per set-Methode? Allgemeine Java-Themen 3
T ArrayList oder Vector als Parameter? Allgemeine Java-Themen 7
M Vector add() unchecked? Allgemeine Java-Themen 5
M Probleme und Zeitdruck: Kunden-DB (Vector) Allgemeine Java-Themen 13
T Vector Array Allgemeine Java-Themen 5
M Kunden-DB mit Vector Allgemeine Java-Themen 9
J Vector sortieren Allgemeine Java-Themen 3
M Vector - contain Allgemeine Java-Themen 13
C String und char[] / String[] und Vector Allgemeine Java-Themen 21
N Vector -> 2Diminsonaler Array Allgemeine Java-Themen 10
N Alledateien in einem Ordner in ein Vector speichern Allgemeine Java-Themen 19
K Object nach Vector konvertieren Allgemeine Java-Themen 3
Z ResultSet in Array oder Vector schreiben! Allgemeine Java-Themen 2
C vector von vector sortieren Allgemeine Java-Themen 4
D Vector in String Allgemeine Java-Themen 5
J Von Collection zu vector Allgemeine Java-Themen 5
D Vector in Datei schreiben Allgemeine Java-Themen 18
I Vector serialisieren: StackOverflow Allgemeine Java-Themen 13
H Vector in ein File-Array umwandeln Allgemeine Java-Themen 2
J User Klasse in den Vector, Object Klasse wieder raus... Allgemeine Java-Themen 4
K vector, synchronized und mehrere methoden Allgemeine Java-Themen 3
Q-bert Strings aus der JList in eine Datenbank speichern Allgemeine Java-Themen 1
L Drop Emails von Outlook in eine JList Allgemeine Java-Themen 5
F 2D Array in jList einfügen Allgemeine Java-Themen 8
H JList GUI Allgemeine Java-Themen 0
K Neue Elemente in JList einfügen Allgemeine Java-Themen 2
Joew0815 JList + JTableModel: Parameter der Tabelle übergeben Allgemeine Java-Themen 10
S JList mit JScrollPane Allgemeine Java-Themen 6
S JList mit JScrollBar Allgemeine Java-Themen 6
nutellastulle Zugriff, Übergabe, Bearbeitung und Ausgabe von Jlist Allgemeine Java-Themen 6
S XML in JList Allgemeine Java-Themen 3
C Hilfe bei Adressbuch-Programmierung, wie am Besten mit JList implementieren Allgemeine Java-Themen 2
M Swing JList Problem Allgemeine Java-Themen 4

Ähnliche Java Themen

Neue Themen


Oben