Hy
Ich habe ein kleines Tool geschrieben in Java mit grafischer Oberfläche in Swing.
Ich habe auf der Oberfläche zwei Eingabefelder und einen Button. Die Eingabefelder dienen zur Eingabe des Namens und des Vornamens.
Ich möchte nun, dass jedesmal wenn ich einen Namen und Vornamen eingebe und den Button drücke, dass es mir ein neues Objekt der Klasse Person erstellt, an diesem Objekt die Instazmethoden setNachname() und setVorname() ausführt und dieses Objekt schliesslich in einem Array speichert. Oder wie macht man das sonst, wenn man mehrere Objekte einer Klasse managen will??
Klasse Person:
Code:
public class Person {
private String vorname;
private String nachname;
public Person() {
}
public String getVorname(){
return vorname;
}
public void setVorname(String vorname){
this.vorname = vorname;
}
public String getNachname(){
return nachname;
}
public void setNachname(String nachname){
this.nachname = nachname;
}
}
ok, vielen Dank. Ich werde es einmal mit Vector probieren.
Was mir einfach noch nicht so klar ist, wie das ganze ablaufen soll.
wenn ich gleich im konstruktor der klasse schon der vorname und der name setze, dan würde das ja im code so aussehen:
Code:
Person p = new Person("Daniel", "Meier");
Und dieses Objekt p füge ich nun dem Vector hinzu.
Dann ist das so gespeichert.
Gebe ich dan bei der Eingabemaske wieder einen Vornamen und einen Nachnamen ein, dann gibt es ein weiteres Objekt p und speichere das wieder im Vector. Funktionier denn das so, dass es gleichnamige Objekte in einem Vector hat, oder muss ich das irgendwie anders machen?
du erstellst die Objekte erst dann, wenn der User auf den Button klickt. Dann kennst du bereits den Vor- und Nachnamen.
Die Person kannst du dann direkt dem Vector hinzufügen.
Wichtig: Du musst die Objekte nicht vorher erstellen, du kannst immer bei einem Button-Klick ein Personen-Objekt erstellen.
noch eine frage: gibt es irgendeine liste, mit welcher man die objekte eines vektors anzeigen kann. und wenn man auf einen eintrag (also schlussendlich auf ein objekt) der liste klickt, dass man gleich dieses objekt verwenden kann?
wenn dugleich den inhalt der Personen ausgeben willst (also name und nachname) hast du mehrere Spalten und brauchtst JTable.
JList ist geeignet wenn du nur eine Spalte anzeigen musst.
Um auf klicks zu reagieren musst du Listeners hinzufügen.
Vector personen = //Hier sind die Personen gespeichert
Vector ausgabe = new Vector();
for(int i=0;i<personen.size();i++){
Person p = (Person)personen.get(i);
ausgabe.add(p.getVorname + " " + p.getNachname());
}
JList liste = new JList();
list.setData(ausgabe);
list.addListSelectionListener(new ListSelectionListener(){
public void valueChanged(...){
Person p = personen.get(list.getSelectedIndex());
});
Code ist nur ausm Kopf getippt..es fehlen noch n paar Klammern u.s.w.
ok, ich bin nun soweit, dass ich einen namen und einen vornamen eingeben kann, und dann speichert es mir das objekt in einem vector, und dieser vector gebe ich in der JList aus.
Nun weise ich ja so der jList der Vector zu un somit zeigt die jList immer Einträge in der folgenden Art an: uebungpersonen.Person@6caf16
das ist warscheindlich halt der objektname.
wie schaff ich das nun, dass es mir wenigstens den Vornamen oder den Nachnamen anzeigt?
Herzlichen Dank
Grüsse
m.