Hallo!
Ich bastel gerade an einer Datenbankanwendung. Dort soll in einer JComboBox eine Liste mit Namen aufgelistet werden. Wenn ein Name angewählt worden ist, soll natürlich eine Id als Schlüssel zurück gegeben werden. Dazu habe ich folgenden Klasse erstellt.
Dieser Datentyp wird in einer DAO-Klasse in einen Vector gepackt:
Nun dachte ich, wenn ich einfach die JComboBox mit dem Kontruktor JComboBox(<Vector>) verwende und ind dem jeweilgen Objekt eine toString()-Methode ist, dass die Namen einfach aufgelistet werden. Dem ist aber nicht so
. Wie kann ich das am besten realisieren, dass in der ComboBox die namen erscheinen und beim auswählen die ID zurückgeliefert wird?
Gruß niesel
Ich bastel gerade an einer Datenbankanwendung. Dort soll in einer JComboBox eine Liste mit Namen aufgelistet werden. Wenn ein Name angewählt worden ist, soll natürlich eine Id als Schlüssel zurück gegeben werden. Dazu habe ich folgenden Klasse erstellt.
Java:
public class ANehmerSchnell {
private String name;
private String vorName;
private int id;
public ANehmerSchnell(String name, String vorName, int id) {
this.name = name;
this.vorName = vorName;
this.id = id;
}
public ANehmerSchnell() {
}
@Override
public String toString() {
return this.name + ", " + this.vorName;
}
public String getVorname() {
return this.vorName;
}
public String getName() {
return this.name;
}
public int getId() {
return id;
}
public void setVorName(String vorName) {
this.vorName = vorName;
}
public void setrName(String name) {
this.name = name;
}
public void setId(int id) {
this.id = id;
}
}
Java:
package empathie.DAO;
import java.sql.*;
import empathie.PersonUndJob.*;
import java.util.*;
public class ANehmerSchnellListDAO {
private String user;
private String password;
private Connection conn;
private String dburl;
private String className;
public ANehmerSchnellListDAO(String user, String password, String dburl, String className) {
this.user = user;
this.password = password;
this.dburl = dburl;
this.className = className;
}
/**
* Diese Methode liest die Berufe die in der Datenbank vorhanden sind aus
* und speichert sie in einem SchnellListenenObjekt. Dieses wird dann wieder einer
* Vectorabgespeichert.
* @return Vector vom Typ ANehmerSchnell
* @throws SQLException
*/
public Vector<ANehmerSchnell> retrieve() throws ClassNotFoundException, SQLException {
conn = AllowConnect.driver(this.user, this.password, this.dburl, this.className);
Vector<ANehmerSchnell> list = new Vector<ANehmerSchnell>();
if (conn != null) {
PreparedStatement stmt = conn.prepareStatement("SELECT `Name`, Vorname, `AN-ID` FROM `arbeitnehmer`;");
ResultSet rs = stmt.executeQuery();
while (rs.next()) {
empathie.PersonUndJob.ANehmerSchnell anSchn = new ANehmerSchnell();
String vorName = rs.getString(1);
String name = rs.getString(2);
int id = rs.getInt(3);
anSchn.setVorName(vorName);
anSchn.setrName(name);
anSchn.setId(id);
list.add(anSchn);
}//while
conn.close();
}//if
return list;
}//retrieve
}//class
Nun dachte ich, wenn ich einfach die JComboBox mit dem Kontruktor JComboBox(<Vector>) verwende und ind dem jeweilgen Objekt eine toString()-Methode ist, dass die Namen einfach aufgelistet werden. Dem ist aber nicht so
Gruß niesel