java - 防止将 JFace TableColumn 的大小调整为 0 宽度

标签 java eclipse-rcp jface

我正在使用 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);
...

看来 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);

    }});

但这看起来很丑陋,有没有更简洁的方法呢?

最佳答案

Table 对此没有内置支持。因此,Resize 监听器 - 就像您在问题中显示的那样 - 是唯一的方法。

关于java - 防止将 JFace TableColumn 的大小调整为 0 宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10167845/

相关文章:

java - 在 A[0 ... n - 2] 上重复,将结果添加到 A[n - 1] ,然后返回总和

java - 在 log4j2 配置中使用 BasicContextSelector

java - 我应该如何显示 ICellEditorValidator 检测到的验证错误?

java - 如何重新使用一些 "Eclipse IDE plugins"创建 Eclipse RCP 应用程序?

java - TableViewer 如何使用编辑支持设置单元格的插入符位置并删除 FULL_SELECTION

java - 如何管理Eclipse插件项目中的资源(图片、字体、颜色)?

java - 如何形成从 HashMap 中提取的值的有序列表?

java - 具有混合大小写字符且 DocumentFilter 设置为大写的 FormattedTextField

java - Eclipse RCP : How to increase heap size for my RCP application?

java - 如何使用RCP在eclipse插件开发中获取被点击的对象