我在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();
但视图仍然没有改变......
答案 0 :(得分:5)
当您重新分配变量JTable
时,您会根据model
丢弃table
。
table = new JTable(model);
table = new JTable(rowData, columnNames);
当您从model
中删除该行时,您显示的JTable
永远不会听到它,因为它有自己的模型。