过氏分享 http://blog.sciencenet.cn/u/xirongguo

博文

Jtable表头添加组件

已有 8442 次阅读 2010-8-12 18:54 |个人分类:系统工程|系统分类:科研笔记| JTable, 表头, CheckBox

对于表格中需要对某列进行全选时,往往需要在对应列的表头添加一个checkBox控件方便用户操作,在Java中的具体操作如下:

1.首先构建一个继承于DefaultTableCellRenderer或实现了TableCellRenderer的类,类中主要包含一个getTableCellRendererComponent方法

public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) 
 {
              if (value instanceof Boolean)   
             {
               Boolean b = (Boolean) value;
               setSelected(b.booleanValue()); //显示值
             }
              return this;
  }

2.获得表头操作类并在需要的列调用setHeaderRenderer方法

table.getColumnModel().getColumn(6).setHeaderRenderer(new CheckBoxAllSelect());

3.如想响应鼠标事件可以调用表头类的消息侦听方法

header.setUpdateTableInRealTime(true);
  header.addMouseListener(new MouseAdapter(){
   public void mouseClicked(MouseEvent e) {
    int colIndex = table.getColumnModel().getColumnIndexAtX(e.getX());
    if( colIndex==6 )
    {
     flag = !flag;
     table.getColumnModel().getColumn(6).setHeaderValue(flag);
//     header.repaint();
    }
   }
  });
  header.setReorderingAllowed(true);

注:添加控件的值是由getTableCellRendererComponent方法中的value参数传递的,相对应的设置值的方法就是setHeaderValue;

 

 



https://blog.sciencenet.cn/blog-427394-352385.html

上一篇:Java布局
下一篇:Netbeans的GridBigLayout
收藏 IP: .*| 热度|

1 唐常杰

发表评论 评论 (0 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-5-20 12:28

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部