SWT TabFolder:太多时如何自动压缩TabItem

时间:2018-10-10 17:43:21

标签: java swt eclipse-rcp

我有一个TabFolder,可以在其中动态创建TabItem。我期望这些选项卡像在浏览器中那样压缩时,它们会在屏幕上容纳得更多,但是除非我添加水平滚动,否则它们只会一直向右扩展到屏幕外。有没有办法让它们像这样自动压缩?

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());

1 个答案:

答案 0 :(得分:1)

如@ greg-449所述,您可以使用CTabFolder完成此操作。默认情况下,CTabFolder在压缩时将显示不少于20 characters,因此,如果标签标题不够长,您可能不会注意到此默认行为。

如果要更改此值,可以致电CTabFolder.setMinimumCharacters(int)

默认行为:

enter image description here

使用新的最低设置:

enter image description here