swing之JTable篇表列更改监听

TableColumnModelListener 定义侦听 TableColumnModel 中更改的对象的接口。

columnAdded(TableColumnModelEvent e)
          告知侦听器有一列被添加到模型中。
void columnMarginChanged(ChangeEvent e)
          告知侦听器因为页边空白更改,有一列被移除。
void columnMoved(TableColumnModelEvent e)
          告知侦听器有一列被重新调整位置。
void columnRemoved(TableColumnModelEvent e)
          告知侦听器有一列从模型中移除。
void columnSelectionChanged(ListSelectionEvent e)
          告知侦听器 TableColumnModel 的选择模型发生更改。

重写TableColumnModelListener实现对表列改变做控制
import java.awt.BorderLayout;   
  
import javax.swing.JFrame;   
import javax.swing.JScrollPane;   
import javax.swing.JTable;   
import javax.swing.event.ChangeEvent;   
import javax.swing.event.ListSelectionEvent;   
import javax.swing.event.TableColumnModelEvent;   
import javax.swing.event.TableColumnModelListener;   
import javax.swing.table.TableColumn;   
import javax.swing.table.TableColumnModel;   
  
public class ColumnModelSample {   
  public static void main(String args[]) {   
    final Object rows[][] = { { "one", "1" }, { "two", "2" }, { "three", "3" } };   
    final Object headers[] = { "English", "#" };   
    JFrame frame = new JFrame("Scrollless Table");   
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);   
    JTable table = new JTable(rows, headers);   
  
    TableColumnModelListener tableColumnModelListener = new TableColumnModelListener() {   
      public void columnAdded(TableColumnModelEvent e) {   
        System.out.println("Added");   
      }   
  
      public void columnMarginChanged(ChangeEvent e) {   
        System.out.println("Margin");   
      }   
  
      public void columnMoved(TableColumnModelEvent e) {   
        System.out.println("Moved");   
      }   
  
      public void columnRemoved(TableColumnModelEvent e) {   
        System.out.println("Removed");   
      }   
  
      public void columnSelectionChanged(ListSelectionEvent e) {   
        System.out.println("Selection Changed");   
      }   
    };   
    TableColumnModel columnModel = table.getColumnModel();   
    columnModel.addColumnModelListener(tableColumnModelListener);   
  
    columnModel.setColumnMargin(12);   
  
    TableColumn column = new TableColumn(1);   
    columnModel.addColumn(column);   
  
    JScrollPane pane = new JScrollPane(table);   
    frame.add(pane, BorderLayout.CENTER);   
    frame.setSize(300, 150);   
    frame.setVisible(true);   
  }   
}  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值