我的 Jtable 位于 ScrollPane 内,而 ScrollPane 又位于 Panel 内。所以每当我使用删除一行时
model.removeRow(row_number);
它确实删除了行(通过调用 model.getRowCount() 进行验证),但 View 保持不变。
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);
}
我已经在所有三个面板(面板、表格和滚动 Pane )上尝试了 revalidate()、repaint()
model.fireTableDataChanged();
但 View 仍然没有改变...
最佳答案
当您重新分配变量 table
时,您将根据您的 model
丢弃 JTable
。
table = new JTable(model);
table = new JTable(rowData, columnNames);
当您从 model
中删除该行时,您显示的 JTable
永远不会听说它,因为它有自己的模型。
关于java - 删除行后 JTable 不刷新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35781687/