如,我在界面上先生成了一个JTable,然后用户在界面上输入查询条件,再提交到数据库,将查询结果显示在JTable中,即根据用户的输入条件在同一个表格显示不同的数据,也就是说,JTable的数据模式每次均有变化,如何实现???

解决方案 »

  1.   

    JTable的TableModel是可以换的,他的setModel原代如下public void setModel(TableModel dataModel) {
            if (dataModel == null) {
                throw new IllegalArgumentException("Cannot set a null TableModel");
    }
            if (this.dataModel != dataModel) {
        TableModel old = this.dataModel;
                if (old != null) {
                    old.removeTableModelListener(this); 
        }
                this.dataModel = dataModel;
                dataModel.addTableModelListener(this);
                // If this method is called from the JTable constructor,
                // the column model will be null. In this case we can't use
                // the usual methods to update the internal state. In all other
                // cases, use the usual tableChanged() method to reconfigure
                // the JTable for the new model.
                if (getColumnModel() != null) {
                    tableChanged(new TableModelEvent(dataModel, TableModelEvent.HEADER_ROW));
                }
        firePropertyChange("model", old, dataModel);
            }
        }可以看出,对于传入一个非空Model, JTable会删掉旧Model的相关Listener以免引起混乱,你可以是一是