Hi,
weiß nicht, wie ich das am besten machen soll:
folgendes Tabellenmodel:
wenn ich nun versuche dynamisch Spalten mittels addColumn hinzuzufügen, scheitert das daran, dass ich ein verändertes Spaltenmodel benutze. Wenn ich JTable mit default Spaltenmodell (null) aufrufe, funktioniert das Hinzufügen von Spalten (bzw. die Visualisierung).
Wie mache ich das am besten ohne jedesmal die Tabelle neu initialisieren zu müssen?
Gruß
sisko78
weiß nicht, wie ich das am besten machen soll:
folgendes Tabellenmodel:
Code:
import java.util.Vector;
import javax.swing.table.AbstractTableModel;
import javax.swing.table.TableColumn;
import javax.swing.table.DefaultTableColumnModel;
public class KeyTableModel
extends AbstractTableModel {
Vector keywordTableVector = new Vector();
Vector tableHeader = new Vector();
int rowCnt = 20;
public KeyTableModel(Vector columnVector, Object name){
keywordTableVector.add(columnVector);
tableHeader.add(name);
}
public int getRowCount() {
return this.rowCnt;
}
public int getColumnCount() {
return keywordTableVector.size();
}
public Object getValueAt(int row, int column) {
return ( (Vector) keywordTableVector.get(column)).size() <= row ? "" :
( (Vector) keywordTableVector.get(column)).get(row);
}
public void addColumn(String columnName, Vector columnData) {
keywordTableVector.add(columnData);
tableHeader.add(columnName);
fireTableStructureChanged();
}
public DefaultTableColumnModel getColumnModel() {//diese Methode wird im JTable Konstruktor aufgerufen
DefaultTableColumnModel cm = new DefaultTableColumnModel();
for (int i = 0; i < tableHeader.size(); ++i) {
TableColumn col = new TableColumn(i, 150);
col.setHeaderValue(tableHeader.get(i));
cm.addColumn(col);
}
return cm;
}
}
wenn ich nun versuche dynamisch Spalten mittels addColumn hinzuzufügen, scheitert das daran, dass ich ein verändertes Spaltenmodel benutze. Wenn ich JTable mit default Spaltenmodell (null) aufrufe, funktioniert das Hinzufügen von Spalten (bzw. die Visualisierung).
Wie mache ich das am besten ohne jedesmal die Tabelle neu initialisieren zu müssen?
Gruß
sisko78