2011-12-01 88 views
1

我有一个简单的JXTable,其中有几列可由最终用户调整大小。现在我需要以任何方式保存列的大小(属性文件,数组..无论如何)。如何保存JTable列的宽度,顺序和可见性

我的问题是columnMarginChanged事件其中我不知道如何获取列索引。

我尝试什么:

class ColumnUpdateListener implements TableColumnModelListener { 

     public void columnMarginChanged(ChangeEvent e) 
     { 
      saveWidth((DefaultTableColumnModelExt) e.getSource()); 
     } 

     private void saveWidth(DefaultTableColumnModelExt tmCol) 
     { 
      // Need the column's hash code here. 
     } 

     // More code comes here... 
} 
+1

为什么要保存每次更改的状态?通常,在关闭应用程序时完成。无论如何,我的孵化器部分有一些代码可以在appframework的上下文中存储表状态,这可能会给你一些想法 – kleopatra

+0

另请参见['java.util.prefs.Preferences'](http://docs.oracle.com/javase/ 7 /文档/ API/JAVA/util的/首选项/ Preferences.html)。 – trashgod

回答

0

如何在问题中添加一个PropertyChangeListener列?你想要的财产将是'宽度'。

+0

否:在SwingX中,将TableColumnModelListenerExt添加到模型中以代表包含的列接收属性更改 – kleopatra