小编Hel*_* M.的帖子

防止将JFace TableColumn调整为0宽度

我正在使用JFace TableViewer和TableColumnLayout.如何设置列最小宽度,或者至少阻止它调整为0宽度?

TableColumnLayout layout = new TableColumnLayout();
parent.setLayout(layout);
TableViewer viewer = new TableViewer(parent, SWT.FULL_SELECTION | SWT.BORDER);

//adding a few columns like this
TableColumn col = new TableColumn(viewer.getTable(), SWT.LEFT);
int minWidth = 100; 
layout.setColumnData(col, new ColumnWeightData(10, minWidth, true));
col.setMoveable(true);
...
Run Code Online (Sandbox Code Playgroud)

看来ColumnWeightData的minWidth参数不受尊重,我仍然可以将列的大小调整为0宽度.

使用这样的东西:

col.addControlListener(new ControlListener(){
    @Override
    public void controlMoved(ControlEvent e) {
    }

    @Override
    public void controlResized(ControlEvent e) {
        if(col.getWidth()<5)
            col.setWidth(5);

    }});
Run Code Online (Sandbox Code Playgroud)

但这看起来相当难看,是否有更清洁的方法呢?

java jface eclipse-rcp

4
推荐指数
1
解决办法
1363
查看次数

标签 统计

eclipse-rcp ×1

java ×1

jface ×1