Hallo,
ich habe folgendes Problem:
Ich erstelle in einer Klasse ein Tablemodel und weise es einem JTable zu.
Der Inhalt meines Tablemodels soll nun dynamisch verändert werden.
Jedesmal wenn ich den neuen modifizierten Inhalt aus meiner Datenbank lade, wird dieser neue Inhalt aber nicht angezeigt.
Hier die relevanten Ausschnitte aus meinem Quelltext:
Das Problem erscheint mir so, dass der alte Inhalt von meinem tablemodel nicht richtig aktualisiert wird. Vielmehr verdeckt der alte Inhalt den neuen.....
Ich hoffe jemand hat eine Idee und Lösung,
Jorge
ich habe folgendes Problem:
Ich erstelle in einer Klasse ein Tablemodel und weise es einem JTable zu.
Der Inhalt meines Tablemodels soll nun dynamisch verändert werden.
Jedesmal wenn ich den neuen modifizierten Inhalt aus meiner Datenbank lade, wird dieser neue Inhalt aber nicht angezeigt.
Hier die relevanten Ausschnitte aus meinem Quelltext:
Code:
// wird nach Klick auf die TabPane aufgerufen
class Aufstellung extends JPanel{
JTable aufstellung_tb = new JTable();
private AufstellungTableModel tablemodel;
public Aufstellung(){
getTable();
}
private void getTable() throws Exception{
String stm = "SELECT PersonID FROM nimmtTeilSpiel WHERE SpieltagID=" +
spieltagDAO.getKey();
ResultSet rs = Frame.db.query(stm);
//count the results
int rows = 0;
while (rs.next()) {
rows++;
}
//create a properly sized array
PersonDAO[] retval = new PersonDAO[rows];
//query again and fill the array
rs = Frame.db.query(stm);
int i = 0;
while (rs.next()) {
retval[i] = new PersonDAO(rs.getLong(1));
i++;
}
tablemodel = new AufstellungTableModel(retval);
aufstellung_tb.setModel(tablemodel);
//System.out.println(retval.length);
rs.close();
Frame.db.stm.close();
}
}
public class AufstellungTableModel extends AbstractTableModel {
PersonDAO[] aufstellung;
public AufstellungTableModel(PersonDAO[] aufstellung) {
this.aufstellung = aufstellung;
}
// die Menge der Zeilen ergibt sich aus der Summe aller drei Übungsteilen
public int getRowCount() {
return aufstellung.length;
}
// es gibt immer 3 Spalten in dieser Tabelle
public int getColumnCount() {
return 1;
}
public String getColumnName(int columnIndex) {
switch (columnIndex) {
case 0:
return "Spielername";
default:
return "Das dürfte hier jetzt nicht stehen!";
}
}
public Object getValueAt(int rowIndex, int columnIndex) throws Exception{
//Wenn die Übung eine Pause ist setzte eine Pause
System.out.println(aufstellung[rowIndex].getLastName()+", "+aufstellung[rowIndex].getFirstName());
return aufstellung[rowIndex].getLastName()+", "+aufstellung[rowIndex].getFirstName();
}
}
Das Problem erscheint mir so, dass der alte Inhalt von meinem tablemodel nicht richtig aktualisiert wird. Vielmehr verdeckt der alte Inhalt den neuen.....
Ich hoffe jemand hat eine Idee und Lösung,
Jorge