当前位置: 首页 > 面试题库 >

SWT表:自动调整所有列的大小

裴凯定
2023-03-14
问题内容

Qt解决方案是对 resizeColumnsToContent() 的单个调用,在.NET中,可以使用
TextRenderer.MeasureText() ,而JTable可以使用 AUTO_RESIZE_ALL_COLUMNS

在SWT中,是否有一种方法可以在填充列之后以编程方式调整列的大小?

调用computeSize(SWT.DEFAULT, SWT.DEFAULT)返回相同的值,因此将忽略列中剩余的字符。
TableColumn具有setWidth(),但是如何考虑字体等如何获取当前内容的大小提示?


问题答案:

在许多情况下,表条目在运行时发生更改以反映数据模型中的更改。向数据模型添加条目也需要调整列的大小,但是在我的情况下,在修改模型后调用.pack()并不能完全解决问题。尤其是带有装饰物的最后入口永远不会调整大小。这似乎是由于异步表查看器更新所致。这个片段解决了我的问题:

public class LabelDecoratorProvider extends DecoratingStyledCellLabelProvider {

    public LabelDecoratorProvider(IStyledLabelProvider labelProvider,  
        ILabelDecorator decorator, IDecorationContext decorationContext) {
        super(labelProvider, decorator, decorationContext);
    }

    @Override
    public void update(ViewerCell cell) {
        super.update(cell);
        if (TableViewer.class.isInstance(getViewer())) {
            TableViewer tableViewer = ((TableViewer)getViewer());
            Table table = tableViewer.getTable();
            for (int i = 0, n = table.getColumnCount(); i < n; i++)
                table.getColumn(i).pack();
        }
    }
}


 类似资料:
  • 我试图创建一个包含两列的gridview。我的意思是每排并排两张照片,就像这张图片一样。 但我的照片之间有空间,因为它的大小不一样。这是我得到的。 正如您所看到的,第一张图片隐藏了显示联系人姓名和电话号码的图例。其他图片未正确拉伸。 这是我的GridView xml文件。如您所见,< code>columnWidth被设置为200dp。我希望它是自动的,所以图片会自动调整每个屏幕的大小。 这里是项

  • Android最近增加了根据视图大小以及最小和最大文本大小调整TextViews文本大小的支持。 https://developer.Android.com/guide/topics/ui/look-and-feel/autosizing-textView.html 不幸的是,他们不支持EditTexts,那么EditText还有其他的替代方案吗?

  • 我尝试过自动调整我使用Jython Apache POI制作的Excel列的大小。我找到了这个线程:Apache POI Excel-如何配置要扩展的列?,但我仍然搞不清楚。 我尝试添加“sheet1.autoSizeColumn(1)”,但它不会改变任何东西。在每个可用列上调用它不是更好吗,因为为什么不希望每个列的格式都很好呢? 也许这在Jython中是不可能的? 恭喜你,克里斯托夫。

  • 我在使用gmap组件时遇到了一个小问题:当我试图使组件可调整大小时(即在CSS的帮助下将地图的高度和宽度都设置为100%),组件会收缩,地图本身也会变得不可见。但如果设置了固定的高度/宽度,则组件工作良好。有没有一种方法可以自动调整GMAP的大小?

  • 所以,我试图在JavaFX中显示一个棋盘。我将不得不执行不同的操作和绘制一些瓷砖,所以我选择使用画布为每个瓷砖和一个网格窗格为我以网格的方式排列它们。 不幸的是,我有一些问题与网格瓷砖的大小;我想让我的整个棋盘自动适应它的大小来适应场景。因此,我在GridPane的height和width属性中添加了一个ChangeListener,它负责调整瓷砖的大小。这只在窗口变大时起作用,当窗口缩小到更小的

  • 我是JavaFX的新手,目前我试图构建一个小型聊天窗口。为此,我为我的Listview获得了以下自定义单元格布局。 网格 我使用外部HBox,所以我可以像whatsapp一样对齐消息。。。(左右对齐)。在我的GridPane中,我得到了两列,消息(标签)在左侧,其他一些随机的东西在右侧(时间戳,一些小图标)。现在我需要的是:GridPane/左列/标签的高度应该根据文本消息的长度动态地增长/收缩。