【问题标题】:SWT Tab items run off page when application opened on mac在 Mac 上打开应用程序时,SWT 选项卡项目会在页面外运行
【发布时间】: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 和魔术鼠标。没有比赛。附上一张截图,问题出在应用程序的右上角,标签项无法自动适应屏幕。
  • 嘿,是的。这里也一样 :) 好的,你能添加创建标签的代码吗?

标签: java tabs swt


【解决方案1】:

我遇到了同样的问题。

我找到的唯一解决方案是使用CTabFolder(org.eclipse.swt.custom.CTabFolder) insted of TabFolder

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-09-21
    • 2010-09-30
    • 2017-01-05
    • 2013-10-10
    • 1970-01-01
    • 1970-01-01
    • 2011-04-23
    相关资源
    最近更新 更多