java - 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());
解决方案
正如@greg-449 提到的,您可以使用CTabFolder
. 默认情况下,压缩时CTabFolder
将显示不少于20 个字符,因此如果选项卡标题不够长,您可能不会注意到此默认行为。
CTabFolder.setMinimumCharacters(int)
如果你想改变这个值,你可以打电话。
默认行为:
使用新的最小集:
推荐阅读
- javascript - 在 react Native 中使用外部 API 呈现 Flatlist 的正确方法
- python - 熊猫在列表中正确的值
- java - 为 netbeans 8.2 运行 SQL 时出现词法错误
- regex - 通过在现有列上执行正则表达式来创建新列
- python - 如何将可变长度参数传递给另一个函数的参数?
- ada - Ada 202x 提案@限制理由?
- python - Python:无法在excel中格式化输出数据透视表的行
- java - Spring MVC - 尽管用户名和密码正确,但仍将我重定向到我的登录失败映射
- php - 由于连字符,pq_query 语法错误。我怎么写这个?
- sparql - 在参与者的 wikidata 查询中应用 group_concat