使用SWT Java创建NSPopover

问题描述 投票:0回答:1

我正在尝试为Mac上的SWT Cocoa端口创建NSPopover。 Here是在Objective-C中实现它的方法,但我想知道如何使用SWT实现同样的功能。 Popover看起来像这样:

在SWT的可可端口中没有“NSPopover”,因此它不存在于API中。

我该如何创建呢?

java objective-c cocoa swt
1个回答
0
投票

你可以尝试这样的事情:

import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Rectangle;
import org.eclipse.swt.graphics.Region;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;

public class PopOver {

    public static void main(String[] a) {
        Display display = new Display();
        final Shell shell = new Shell(display,SWT.NO_TRIM);

        Region region = new Region();
        region.add(new Rectangle(0,0,200,200));
        region.add(new int[]{200,90,220,100,200,110});
        shell.setRegion(region);

        shell.setSize(region.getBounds().width, region.getBounds().height);
        shell.setBackground(display.getSystemColor(SWT.COLOR_DARK_GRAY));


        shell.open();

        while (!shell.isDisposed()) {
            if (!display.readAndDispatch()) {
                display.sleep();
            }
        }
        display.dispose();
    }

}

这是结果:enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.