你可以实现AbstractTableModel这个接口,然后修改数据源,然后通知table刷新就行了。
例如
Vector tableHead,ldata;
AbstractTableModel dataModel =new AbstractTableModel()
{
public int getRowCount()
{
return ldata.size();
}
public int getColumnCount()
{
return tableHead.size();
}
public Object getValueAt(int row, int column)
{
return ((Vector)(ldata.get(row))).get(column);
}
public String getColumnName(int column)
{
return (String)tableHead.get(column);
} };
jTable1= new JTable(dataModel);
例如
Vector tableHead,ldata;
AbstractTableModel dataModel =new AbstractTableModel()
{
public int getRowCount()
{
return ldata.size();
}
public int getColumnCount()
{
return tableHead.size();
}
public Object getValueAt(int row, int column)
{
return ((Vector)(ldata.get(row))).get(column);
}
public String getColumnName(int column)
{
return (String)tableHead.get(column);
} };
jTable1= new JTable(dataModel);
//Message[] messages;
String[][] rowValues; String[] columnNames = {"asfasdf","asfasfd","asfasfas"};
Class[] columnTypes = { String.class, String.class, String.class }; public void setRowValues(String[][] rows) {
this.rowValues = rows;
fireTableDataChanged();
} public String[][] getRowValues() {
return rowValues;
} //---------------------
// Implementation of the TableModel methods
//--------------------- public String getColumnName(int column) {
return columnNames[column];
} public Class getColumnClass(int column) {
return columnTypes[column];
}
public int getColumnCount() {
return columnNames.length;
} public int getRowCount() {
if (this.rowValues != null)
return rowValues.length;
return 0;
} public Object getValueAt(int aRow, int aColumn) {
//return "";
if (this.rowValues != null)
return rowValues[aRow][aColumn];
return ""; }
}每次你删除一行后,重新调用一下setRowValues(String[][] 删除行后的新数据集),(FolderTable是放在一个JScrollPane上),JScrollPane再调用一下inValidate(),validate(),就可以自动刷新FolderTable了。