当应用程序在mac上打开时,SWT选项卡项目在页面上运行

时间:2014-05-09 13:46:08

标签: java tabs swt

我有一个使用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);
}

enter image description here

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

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题。

我找到的唯一解决方案是CTabFolder(org.eclipse.swt.custom.CTabFolder)使用TabFolder。{/ p>