我把我的Jtable放在ScrollPane中,而ScrollPane又放在Panel里面.所以每当我删除一行时使用
model.removeRow(row_number);
Run Code Online (Sandbox Code Playgroud)
它确实删除了行(通过调用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);
}
Run Code Online (Sandbox Code Playgroud)
我在所有三个(面板,表格和滚动窗格)上都尝试了revalidate(),repaint()
model.fireTableDataChanged();
Run Code Online (Sandbox Code Playgroud)
但是观点仍然没有改变......
当您重新分配变量时,您将丢弃JTable基于您model的内容table.
table = new JTable(model);
table = new JTable(rowData, columnNames);
Run Code Online (Sandbox Code Playgroud)
当您从中删除行时model,JTable您显示的内容从不会听到它,因为它有自己的模型.
| 归档时间: |
|
| 查看次数: |
82 次 |
| 最近记录: |