我是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);
我已经尝试了很多东西,而在google或Stackoverflow上搜索只发现我已经尝试过的东西。
请帮我实现这个目标。
Thankx
答案 0 :(得分:1)
DefaultTableModel
将通知其侦听器发生更改,并且任何侦听表都会自行更新。如果这种方法是你的第一次尝试没有成功,那么问题就出在其他地方。特别是,您不应该自己无效,重新验证或触发任何表模型事件。在这个完整的example中,添加行按钮会调用addRow()
,它会将请求转发给TableModel
。
private DefaultTableModel dtm = new DefaultTableModel(…) {…}
private void addRow() {
dtm.addRow(new Object[]{
…
});
}