Personendatenbank mit Listbox realisieren?

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Ich muss im Studium eine Software schreiben, die mit einer Datenbank (Firebird) kommuniziert.

Da ich bisher nur wenig mit Java getan hab, stehe ich nun ab und an vor einem "kleinen" Problem.

Zur Zeit ist es die Anzeige der Elemente in der Listbox. Meine Box habe ich nun erfolgreich angelegt und auch so eingerichtet das sie eine Scrollbar enthält sobald mehr Einträge da sind als auf anhieb angezeigt werden können.

Code:
JList db_list = new JList();
/* Position of the db_list */
JScrollPane scrollList = new JScrollPane(db_list);	// Create a scrollable list
scrollList.setBounds(15, 30, 250, 500);				// Set the size of the list
pane.add(scrollList);

Nun habe ich eine Klasse "Person", von welcher dann pro DB Eintrag 1 Objekt angelegt werden soll.

Code:
public class Person {

	private int id;
	private String name;
	private String surname;
	private String phone;
	private String email;
	private String street;
	private String town;
	private int zipcode;
	
	public void setDetails(int id, String name, String surname, String phone, String email, String street, String town, int zipcode)
	{
		this.id = id;
		this.name = name;
		this.surname = surname;
		this.phone = phone;
		this.email = email;
		this.street = street;
		this.town = town;
		this.zipcode = zipcode;
	}
}

Nun ist allerdings das Problem, wie kann ich die Objekte "Sammeln" um sie dann via "new JList(OBJEKTE)" an die Liste zu übergeben?

Und wie kann ich anschließend dann durch auswählen in der Liste in einem Label die einzelnen Daten der markierten Person anzeigen?

Ich hoffe mir kann jemand helfen und danke schonmal im Voraus.

MfG,
soucy
 

SamHotte

Top Contributor
API: Vector, Object[] oder ListModel sind geeignet, um Daten per Konstruktor an die JList zu übergeben. Also deine Daten entsprechend in einen Vector addieren ...

Auswählen in der Liste: einen ListSelectionListener basteln, der das gewünschte tut (ebenfalls API) ...
 

soucy

Mitglied
Hmm ich hab nun einen Vector in den ich die neuen Objekte speicher.

In der Liste wird mir nun angezeigt "Person@b723jc2"

Was hat das zu bedeuten? Geht es auch das man z.B. die getName() Fkt des jeweiligen Objektes dort angezeigt bekommt?
 

foobar

Top Contributor
Geht es auch das man z.B. die getName() Fkt des jeweiligen Objektes dort angezeigt bekommt?
Na klar, dann mußt du eben ein eigenes Model implementieren. Benutz mal die Suche dazu.

Was hat das zu bedeuten?
Das ist die Standardausgabe der toString-Methode, wenn du ein anderes Ergebnis haben willst, mußt du die toString-Methode in deiner Klasse überschtreben.
 

soucy

Mitglied
Okay das mit der toString() Methode habe ich mitlerweile rausgefunden.

Nun tüftle ich an einem neuen Problem.

Code:
private Vector<Person> vec = new Vector<Person>(10);

....

Code:
Person tmp = new Person();
tmp.setDetails(text_pkid.getText(), text_name.getText(), text_surname.getText(), text_phone.getText(), text_email.getText(), text_street.getText(), text_town.getText(), text_zipcode.getText());

if(vec.contains(tmp) == true)
{
    vec.addElement(tmp);
}
    else
{
    application_label_l1.setText("Person already exists");
    application_label_l2.setText("");
}

Nun gibt mir aber vec.contains(tmp) immer false zurück. Auch wenn ich 2 mal direkt hintereinander die gleiche Person mit den gleichen Eigenschaften einfüge.

Was mache ich falsch?
 

foobar

Top Contributor
Nun gibt mir aber vec.contains(tmp) immer false zurück. Auch wenn ich 2 mal direkt hintereinander die gleiche Person mit den gleichen Eigenschaften einfüge.
Die contains-Methode des Vectors ruft die equals Methdo deiner Bean auf. D.h du mußt die equals-Methdoe überschreiben damit Java weiß wann die Beans identisch sind.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
G Listbox, combobox oder was anderes? [swing] AWT, Swing, JavaFX & SWT 4
M Listbox mit 4 Spalten AWT, Swing, JavaFX & SWT 3
M Wie am besten realisieren AWT, Swing, JavaFX & SWT 3
M GUI-Projekt realisieren AWT, Swing, JavaFX & SWT 9
A Einfache Benutzeroberfläche wie realisieren? AWT, Swing, JavaFX & SWT 6
S LayoutManager Einfaches Programm mit VE und Eclipse3.6 realisieren AWT, Swing, JavaFX & SWT 2
Semox Swing Shortcuts in Menü realisieren AWT, Swing, JavaFX & SWT 2
M Swing Wie AutoVervollständigen bei Kundensuche realisieren? AWT, Swing, JavaFX & SWT 11
vladimir Swing virtuelle Tastatur realisieren AWT, Swing, JavaFX & SWT 3
T Wie könne man das realisieren? AWT, Swing, JavaFX & SWT 18
G Popup eines Bildes im JTable realisieren AWT, Swing, JavaFX & SWT 3
F Listener als separate Klasse realisieren ? AWT, Swing, JavaFX & SWT 3
A Wie folgendes am besten realisieren (Multithreading.) AWT, Swing, JavaFX & SWT 16
J DB-Ausgabe realisieren? AWT, Swing, JavaFX & SWT 2
H Wie realisieren? AWT, Swing, JavaFX & SWT 2
Z Hilfe! wie kann ich das realisieren? AWT, Swing, JavaFX & SWT 3
O Stopuhr realisieren AWT, Swing, JavaFX & SWT 6
thE_29 JScrollPane: Zeilensprünge realisieren AWT, Swing, JavaFX & SWT 2
A Stundenplan realisieren AWT, Swing, JavaFX & SWT 6

Ähnliche Java Themen

Neue Themen


Oben