[英]JTable Data Refresh Issue
我想通过单击按钮刷新JTable数据。
问题是JTable中的旧数据无法删除,新数据只是添加到表中。 我尝试了以下方法来删除旧数据,但没有一个工作。
1. table.setModel(new DefaultTableModel());
2. ((DefaultTableModel)table.getModel()).setRowCount(0);
3. ((DefaultTableModel)table.getModel()).fireTableDataChanged();
4. ((DefaultTableModel)table.getModel()).getDataVector().removeAllElements();
5. table.repaint();
6. model = (DefaultTableModel)table.getModel();
while(model.getRowCount() > 0) {
model.removeRow(0);
}
您可以在此处使用更多代码。 很难确切地告诉你在哪里调用这些方法和顺序。 如果您更改模型然后调用fireTableDataChanged()它应该工作....假设您已更新正确的TableModel。 有一个很好的Java教程来使用表: http : //docs.oracle.com/javase/tutorial/uiswing/components/table.html
我自己也有同样的问题,但我的解决方案却有所不同。 检查几乎所有内容后,我通过控制台检查了表的内容,发现内容确实正在更新。 但是,更新未反映在屏幕上可见的表格上。
实际上,这段代码:
model = (DefaultTableModel)table.getModel();
while(model.getRowCount() > 0) {
model.removeRow(0);
}
不仅删除了行,还删除了表。
我的解决方案是从表单中删除表,然后在表数据更改时重新添加它。
在我的情况下看来,我的编码生成表没有任何问题,但布局管理器不喜欢覆盖或更新组件,我希望它放在那里的区域。
一些奇怪的事情发生了,但在一天结束时,这对我有用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.