我是java新手,正在尝试刷新jTable。我想做的是显示 Jtable 中的数据列表,现在我确实有一个刷新图标,如果我单击该图标,它会刷新表并更新其中的记录。 我尝试了很多事情但没有成功。我所尝试过的是:
//引用。从中获得帮助:
尝试1:
private void remakeData(CollectionType< Objects > name) {
model.setRowCount(0);
for (CollectionType Objects : name){
String n = Object.getName();
String e = Object.getEmail();
model.insertRow(model.getRowCount(),new Object[] { n,e });
}}
尝试2:
tableModel.fireTableDataChanged();
尝试3:
list_asset.invalidate(); // list_asset is my jTable
list_asset.repaint();
尝试4:
((AbstractTableModel) list_asset.getModel()).fireTableCellUpdated(data.size(), 0);
尝试5:
jPanel1.revalidate();
jPanel1.repaint();
tableModel.setRowCount(0);
tableModel = new DefaultTableModel(data,columnNames);
list_asset.setModel(tableModel);
我尝试了很多东西,在谷歌或 Stackoverflow 上搜索时只发现了这些我已经尝试过的东西。
请帮助我实现这一目标。
谢谢
最佳答案
DefaultTableModel
将通知其监听器发生更改,任何监听表都会更新自身作为响应。如果您的第一次尝试不起作用,则问题出在其他地方。特别是,您不需要自己使任何表模型事件失效、重新生效或触发。在此完整example ,Add Row 按钮调用 addRow()
,它将请求转发到 TableModel
。
private DefaultTableModel dtm = new DefaultTableModel(…) {…}
private void addRow() {
dtm.addRow(new Object[]{
…
});
}
关于java - 如何刷新 JTable 中的数据并显示更新的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25337389/