我一直的JTable
一個子類,使用自定義表模型(的AbstractTableModel
實現)來管理數據。刪除行從JTable中自定義表格模型
的問題,當我試圖刪除一行與方法deleteRow
發生。我的表中的行被替換爲空白字符串,但行未被刪除。
下面是代碼:
public class LiveSearchTableModel extends AbstractTableModel
{
private List<String> columnNames = new ArrayList<String>();
private Map<Point, Object> displayData = new HashMap<Point, Object>();
private Map<Point, Object> originalData = new HashMap<Point, Object>();
public LiveSearchTableModel(List<String> columnNames,
Map<Point, Object> tableData)
{
this.columnNames = columnNames;
this.displayData = tableData;
this.originalData.putAll(tableData);
}
@Override
public int getColumnCount() {
return columnNames.size();
}
@Override
public int getRowCount() {
return displayData.size()/columnNames.size();
}
@Override
public Object getValueAt(int rowIndex, int columnIndex) {
return displayData.get(new Point(rowIndex, columnIndex));
}
public void deleteRow (int row)
{
for (int cont = 0; cont < columnNames.size();cont++)
{
displayData.remove(new Point (row,cont));
}
this.fireTableRowsDeleted(row, row);
}
@Override
public void setValueAt(Object value, int rowIndex, int columnIndex)
{
this.displayData.put(new Point(rowIndex, columnIndex), value);
this.fireTableDataChanged();
}
}
你能編輯你的代碼示例來提供一個[SSCCE](http://sscce.org/),我們可以執行和試驗嗎? –
並不是那麼簡單。我嘗試做到這一點!謝謝 – Luca
它比你想象的要容易得多。只是一個測試JFrame與一張桌子,一個按鈕和一些人口日期。它不需要漂亮。有時你會發現答案就是創建一個SSCCE。 –