JTable数据刷新

来源:互联网 发布:开放式网络是什么意思 编辑:程序博客网 时间:2024/06/08 18:08

JTable数据刷新

网上找了很多资料,很多都是以讹传讹,不能实现JTable的刷新。摸索了很久才找到了这种可行的办法。感觉自己还是弱爆了啊,囧囧囧o(╯□╰)o


JTable结构

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


图片来源 http://docs.oracle.com/javase/tutorial/uiswing/components/table.html#data

一种更新方式

【例子】

    ……    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对象或子类对象,调用此对象的方法更新数据。

原创粉丝点击