Swing编程JTable组件表头添加控件

2011-04-19 14:10:19|?次阅读|上传:wustguangh【已有?条评论】发表评论

关键词:Java, 界面设计, Swing|来源:唯设编程网

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

第一步:
首先构建一个继承于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;
    }

第二步:
获得表头操作类并在需要的列调用setHeaderRenderer方法

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

第三步:
如想响应鼠标事件可以调用表头类的消息侦听方法

	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;

发表评论0条 】
网友评论(共?条评论)..
Swing编程JTable组件表头添加控件