JTable数据刷新,重新设置数据源,JTable的MVC设计模式图

JTable数据刷新

网上找了很多资料,很多都是以讹传讹,不能实现JTable的刷新。摸索了很久才找到了这种可行的办法。

JTable结构

JTable采用了MVC的设计模式,见下图。JTable对象作为界面,TableModel对象设置JTable的属性如单元格是否可编辑等,并保存具体的表格数据。

JTable数据刷新,重新设置数据源,JTable的MVC设计模式图

一种更新方式

【例子】

    ……
    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

JTable数据刷新,重新设置数据源,JTable的MVC设计模式图

上一篇:npm install时,报错 install: `node install.js`安装失败


下一篇:uniapp详细入门教程