1

我是 Apache Pivot 的新手。

我正在尝试用菜单栏制作一个简单的窗口。

我用来加载主框架的代码是:

public class MyApp implements Application {
    private Frame frame;

    @Override
    public void startup(Display display, Map<String, String> strings) throws Exception {
        BXMLSerializer bxmlSerializer = new BXMLSerializer();
        frame = (Frame)bxmlSerializer.readObject(MyApp.class, "/gui/MainFrame.bxml");
        frame.open(display);
    }

    @Override
    public boolean shutdown(boolean b) throws Exception {
        if(frame != null) {
            frame.close();
        }

        return false;
    }

    @Override
    public void suspend() throws Exception {

    }

    @Override
    public void resume() throws Exception {

    }

    public static void main(String[] args) {
        DesktopApplicationContext.main(MyApp.class, args);
    }
}

主框架 BXML 如下:

<root:MainFrame title="MyApp" maximized="true"
        xmlns:bxml="http://pivot.apache.org/bxml"
        xmlns="org.apache.pivot.wtk"
        xmlns:root="com.myproject.client">

    <menuBar>
        <bxml:include src="wtk/menubar.bxml"/>
    </menuBar>
</root:MainFrame>

MainFrame.java 就像:

public class MainFrame extends Frame implements Bindable {
    public MainFrame() {
        Action.getNamedActions().put("myaction1", new Action() {
            @Override
            public void perform(Component source) {
                 ......
            }
        });
    }
}

这段代码的结果如下图:

在此处输入图像描述

如您所见,外部有一个 Mac 窗口,内部有一个框架窗口。

我的问题是,我怎样才能摆脱系统窗口或摆脱框架窗口,以便只显示一个窗口?

非常感谢。

4

1 回答 1

0

我发现2012 年的邮件列表帖子暗示 Pivot 不支持本机菜单,因此您的应用程序将始终存在于系统窗口中。

但是,该邮件列表帖子确实建议使用 Java AWT Frame 来获取系统菜单。

于 2014-08-13T00:52:06.193 回答