JTable数据刷新
网上找了很多资料,很多都是以讹传讹,不能实现JTable的刷新。摸索了很久才找到了这种可行的办法。
JTable结构
JTable采用了MVC的设计模式,见下图。JTable对象作为界面,TableModel对象设置JTable的属性如单元格是否可编辑等,并保存具体的表格数据。
一种更新方式
【例子】
……
public JTable table = null;
//MyTableModel继承自DefaultTableModel
private MyTableModel tmModel = null;
……
tmModel = new MyTableModel();
//数据源,列名
tmModel.setDataVector(data, colname);
table = new JTable(tmModel);
JScrollPane scrollPane = new JScrollPane(table);
scrollPane.setBounds(0, 0, FRAME_WIDTH, FRAME_HEIGHT);
……
//通过下面这句重新设置数据源,实现Jtable的更新
tmModel.setDataVector(dataNew, colNameNew);
MyTableModel.java
public class MyTableModel extends DefaultTableModel
{
// 禁止编辑表格
@Override
public boolean isCellEditable(int row, int column)
{
return false;
}
}
通过继承DefaultTableModel来自定义JTable的属性,如这里通过覆盖isCellEditable(int row, int column) 方法设置单元格不可编辑。
总结
如果按照JTable MVC的模式使用JTable,则刷新的一种方式是:
获取DefaultTableModel对象或子类对象,调用此对象的方法更新数据。
————————————————
https://blog.csdn.net/ecjtusbs/article/details/75136715