gavanaa
Mitglied
Folegnedes Probelm mit der JTable:
habe folgende Tabelle in mein Programm implementiert.
Nun hab ich aber noch ein Vektor des Typs "daten(String, String,String,String,String)", dessen Inhalt ich gerne auf die Tabelle übertragen lassen möchte (der Vektor verändert sich im Programmverlauf, von daher muss die Tabelle auch immer wieder erneuert werden).
Die einzelnen Daten des Vektors auszulesen stellt kein problem dar. Ich verzweifele nur gerade daran, wie ich schlicht und einfach in der Tabelle eine neue Reihe mit neuem Inhalt erstellen.
Eine andere Sache ist, wie ich z.B. eine bestimmte Reihe auswählen um sie dann auf Knopfdruck zu löschen oder deren Inhalt ändern.
habe folgende Tabelle in mein Programm implementiert.
Nun hab ich aber noch ein Vektor des Typs "daten(String, String,String,String,String)", dessen Inhalt ich gerne auf die Tabelle übertragen lassen möchte (der Vektor verändert sich im Programmverlauf, von daher muss die Tabelle auch immer wieder erneuert werden).
Die einzelnen Daten des Vektors auszulesen stellt kein problem dar. Ich verzweifele nur gerade daran, wie ich schlicht und einfach in der Tabelle eine neue Reihe mit neuem Inhalt erstellen.
Eine andere Sache ist, wie ich z.B. eine bestimmte Reihe auswählen um sie dann auf Knopfdruck zu löschen oder deren Inhalt ändern.
Java:
class MyTableModel extends AbstractTableModel {
private String[] spaltenName = {"Nachname und Vorname",
"Telefonnummer",
"Kundennummer",
"Geburtsdatum",
"Video ausgeliehen?"};
// daten neuerEintrag0 = einträge.get(0);
private Object[][] data = {
{"Test person 1", "06841-63183", "001", new String(), new Boolean(false)},
{"Alison", "Huml", "Rowing", new Integer(3), new Boolean(true)},
{"Alison", "Huml", "Rowing", new Integer(3), new Boolean(true)},
{"Alison", "Huml", "Rowing", new Integer(3), new Boolean(true)},
{"Alison", "Huml", "Rowing", new Integer(3), new Boolean(true)},
{"Alison", "Huml", "Rowing", new Integer(3), new Boolean(true)},
};
public int getColumnCount() {
return spaltenName.length;
}
public int getRowCount() {
return data.length;
}
public String getColumnName(int spalte) {
return spaltenName[spalte];
}
public Object getValueAt(int reihe, int spalte) {
return data[reihe][spalte];
}
public Class getColumnClass(int c) {
return getValueAt(0, c).getClass();
}
/*
* Hierdurch soll man in Zukunft Änderungen direkt an der Tabelle vor-
* nehmen können.
*/
public boolean isCellEditable(int reihe, int spalte) {
//Note that the data/cell address is constant,
//no matter where the cell appears onscreen.
if (spalte < 2) {
return false;
} else {
return true;
}
}
/*
* Daten werden verändert
*/
public void setValueAt(Object value, int reihe, int spalte) {
if (DEBUG) {
System.out.println("Setze Wert bei " + reihe + "," + spalte
+ " auf " + value
+ " (eine Instanz von "
+ value.getClass() + ")");
}
data[reihe][spalte] = value;
fireTableCellUpdated(reihe, spalte);
}
}
}
Zuletzt bearbeitet: