首页 > 解决方案 > SWT TabFolder:TabItems太多时如何自动压缩

问题描述

我有一个 TabFolder,可以在其中动态创建 TabItems。当您在屏幕上容纳的内容超出范围时,我希望这些选项卡会像在浏览器中一样压缩,但除非我添加水平滚动,否则它们只会继续向屏幕右侧扩展。有没有办法让它们像那样自动压缩?

TabFolder tabsComposite = new TabFolder(builder, SWT.NONE);
tabsComposite.setLayout(new GridLayout(1, false));
GridData tabsLayoutData = new GridData(SWT.FILL, SWT.FILL, true, true);
tabsComposite.setLayoutData(tabsLayoutData);

这些是通过在另一种方法中单击按钮创建的,并且可以创建任意数量的

TabItem item = new TabItem(tabsComposite, SWT.NONE);
tableComposite = new Composite(parent, SWT.BORDER);
GridData tableLayoutData = new GridData(SWT.FILL, SWT.FILL, true, true);
tableComposite.setLayoutData(tableLayoutData);
GridLayout tableLayout = new GridLayout(1, false);
tableComposite.setLayout(tableLayout);
item.setText(nameText.getText());

标签: javaswteclipse-rcp

解决方案


正如@greg-449 提到的,您可以使用CTabFolder. 默认情况下,压缩时CTabFolder将显示不少于20 个字符,因此如果选项卡标题不够长,您可能不会注意到此默认行为。

CTabFolder.setMinimumCharacters(int)如果你想改变这个值,你可以打电话。

默认行为:

在此处输入图像描述

使用新的最小集:

在此处输入图像描述


推荐阅读