使用SWT Java创建NSPopover

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用SWT Java创建NSPopover相关的知识,希望对你有一定的参考价值。

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

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

我该如何创建呢?

答案

你可以尝试这样的事情:

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

以上是关于使用SWT Java创建NSPopover的主要内容,如果未能解决你的问题,请参考以下文章

如何以编程方式关闭 NSPopover

swt java 内嵌ActiveX控件

NSPopover 和雪豹

在 Java 中嵌入 Office

Java SWT 创建侦听器以更改标签的文本并返回数据

创建片段而不从 java 代码实例化它