删除行

时间:2016-03-03 19:50:59

标签: java swing jtable

我在ScrollPane中有我的Jtable,而ScrollPane又在Panel中。所以每当我使用

删除一行时
model.removeRow(row_number);

它确实删除了行(通过调用model.getRowCount()验证),但视图保持不变。

public void createTable(){
    model = new DefaultTableModel(rowData, columnNames);
    table = new JTable(model);

    table = new JTable(rowData, columnNames);
    table.setEnabled(false);
    table.setShowVerticalLines(false);
    scrollPane_2 = new JScrollPane(table);
    scrollPane_2.setBounds(10, 16, 554, 89);
    scrollPane_2.setBorder(BorderFactory.createEmptyBorder());
    panel_6.add(scrollPane_2);

}

我在所有三个(面板,表格和滚动窗格)上尝试了revalidate(),repaint(),还

model.fireTableDataChanged();

但视图仍然没有改变......

1 个答案:

答案 0 :(得分:5)

当您重新分配变量JTable时,您会根据model丢弃table

table = new JTable(model);

table = new JTable(rowData, columnNames);

当您从model中删除该行时,您显示的JTable永远不会听到它,因为它有自己的模型。