java如何在动作监听事件上刷新jtable的内容?
我使用以下代码在现有对话框的新面板中显示jtable。我为表模型使用了mytablemodel类,setmodel方法与构造函数类似(因为我必须使用同一个模型对象创建多个表,所以我使用方法而不是构造函数)。但是我的jtable并没有改变actionlisten上的内容。。即使输入的值发生变化,也会重复相同的内容。。。请帮忙
btnShow.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
showTable();
}
});
panel_1.add(btnShow);
private void showTable() {
fillData();
//filldata used to fill object data for table using date specified by user
MyTableModel model=new MyTableModel();
model.setModel(data,col,totalrow);
table = new JTable(model);
table.setForeground(new Color(255,0,0) );
System.out.println("after table");
panel_2.add(new JScrollPane(table));
panel_2.setVisible(true);
table.setVisible(true);
System.out.println("after scroll pane");
}
# 1 楼答案
不要每次都创建一个新的JTable。取而代之的是,获取模型并替换/编辑数据(最佳),或者给表格一个新模型(“确定”)
模型的数据更改后,需要调用“fireTableXXX”方法
你可以打电话。fireTableDataChanged()将重新加载所有数据。还有一些方法可以指定更改了哪些行或单元格,这样就不必重新加载所有行或单元格