【发布时间】:2014-05-09 13:46:07
【问题描述】:
我有一个使用 SWT 构建的应用程序。在 Mac 上测试时,除非应用程序已全屏显示,否则选项卡文件夹中的选项卡项目会超出显示屏幕的边缘。有没有办法阻止这种情况发生?我从谷歌搜索中找不到任何东西。
如果是 SWT 错误,解决此问题的最佳方法是什么?我正在考虑将选项卡文件夹放在可滚动的组合中,以便仍然可以在较小的显示器中查看选项卡项。
谢谢
public FeedMonitorComposite(Composite parent, int style) {
super(parent, style);
setLayout(new FillLayout(SWT.HORIZONTAL));
Composite cmpMain = new Composite(this, SWT.NONE);
GridLayout gl_cmpMain = new GridLayout(1, false);
gl_cmpMain.marginHeight = 0;
gl_cmpMain.marginWidth = 0;
cmpMain.setLayout(gl_cmpMain);
cmpSummaries = new Composite(cmpMain, SWT.NONE);
cmpSummaries.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false, 1, 1));
cmpSummaries.setLayout(new FillLayout(SWT.VERTICAL));
Composite cmpTabs = new Composite(cmpMain, SWT.NONE);
cmpTabs.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1));
cmpTabs.setLayout(new FillLayout(SWT.HORIZONTAL));
queueTabFolder = new TabFolder(cmpTabs, SWT.NONE);
}
private void makeTab(String description, FeedEventsFilter filter) {
TabItem tabItem = new TabItem(view.getTabFolder(), SWT.NONE);
tabItem.setText(description);
Composite composite = new Composite(view.getTabFolder(), SWT.NONE);
composite.setLayout(new FillLayout());
tabItem.setControl(composite);
FeedEventsTabComposite tabView = new FeedEventsTabComposite(composite, SWT.NONE);
FeedEventsTabController controller = new FeedEventsTabController(context, filter, this, tabItem, tabView);
tabControllers.add(controller);
【问题讨论】:
-
请张贴截图。您是使用
Layout还是致电setBounds()? -
很遗憾,我不能发布截图,我的老板不会高兴的。选项卡文件夹和选项卡项是从外部提要填充的,这会导致形成 10 个选项卡项。我可以显示复合代码。
-
截图不必显示您的任何绝密忍者数据。这只是为了理解你在说什么。您可以使用 Gimp 或类似工具删除您不希望我们任何人看到的所有内容。
-
我很想从事绝密忍者的工作,这会让我远离调试 SWT。投掷星星和双节棍与 myEclipse 和魔术鼠标。没有比赛。附上一张截图,问题出在应用程序的右上角,标签项无法自动适应屏幕。
-
嘿,是的。这里也一样 :) 好的,你能添加创建标签的代码吗?