SWT Table列自适应大小

要实现列自适应大小首先需要保证Table根据窗口拖动而改变大小。

Window中提供setShellStyle可以设置外壳样式。

构造一个新的自定义器对话框,在构造函数中添加setShellStyle(getShellStyle() | SWT.RESIZE);即可改变自定义对话框大小,如:

 getShellStyle()返回外壳样式位。默认值为SWT.CLOSE|SWT.MIN|SWT.MAX|SWT.RESIZE
子类应该调用setShellStyle来改变这个值,而不是重写此方法。

设置父级容器,包含table

设置table的布局样式,样式位new GridData(int)来调整控制填充单元格水平和垂直和以适应剩余的水平和垂直空间。GridData.FILL_BOTH,表示水平和垂直方向都填充完全。等同new GridData(SWT.FILL, SWT.FILL, true, true)方法。

设置列自适应大小。

//新建一列

TableColumn tcxValue = new TableColumn(table, SWT.None, 1);
tcxValue.setText(Messages.getString("value"));

//初始化列的宽度
 tcxValue.setWidth(200);

//监听事件,改变表格大小时触发改变列的宽度

// 当控件被移动或调整大小时触发
 table.addControlListener(new ControlListener() {
            @Override
            public void controlResized(ControlEvent e) {
                int width = table.getClientArea().width;
                TableColumn column = table.getColumn(1);
                column.setWidth(width - 100);
            }
            
            @Override
            public void controlMoved(ControlEvent e) {
                
            }
        });

也可以使用一下方式:

table.addListener(SWT.Resize, new Listener() {
            
            @Override
            public void handleEvent(Event event) {
                int width = table.getClientArea().width;
                TableColumn column = table.getColumn(1);
                column.setWidth(width - 100);
            }
        });

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值