在对JTable的各个列的顺序调整后,会触发什么事件?如何捕获这个事件?

解决方案 »

  1.   

    触发了ListSelectionEvent事件
    由于JTable已经实现了TableColumnModelListener接口,所以只需重写columnMoved方法就可以对事件进行处理了
      

  2.   

    同意LS,实现TableColumnModelListener接口,我给个例子table.getColumnModel().addColumnModelListener(
            new MyTableColumnModelListener(table));
        
        public class MyTableColumnModelListener implements TableColumnModelListener {
            JTable table;
        
            // It is necessary to keep the table since it is not possible
            // to determine the table from the event's source
            public MyTableColumnModelListener(JTable table) {
                this.table = table;
            }
        
            public void columnAdded(TableColumnModelEvent e) {
            }
        
            public void columnRemoved(TableColumnModelEvent e) {
            }
        
            public void columnMoved(TableColumnModelEvent e) {
                System.out.println("column moved");
            }
        
            public void columnMarginChanged(ChangeEvent e) {
            }
        
            public void columnSelectionChanged(ListSelectionEvent e) {
            }
        }
      

  3.   

    我不同意1楼,这个不是选择事件,而是table的结构发生了变化,应该监听结构变化事件,具体名字我记不清楚了,好象有个什么tablestruc...的...