Я новичок в 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 снаружи и окно рамки внутри.
Мой вопрос в том, как я могу избавиться от системного окна или избавиться от окна кадра, чтобы отобразилось только одно окно?
Большое спасибо.
Я нашел почтовую рассылку 2012 года, в которой Pivot не поддерживает собственные меню, поэтому ваше приложение всегда будет жить в системном окне.
Однако в этом списке рассылки было предложено взломать Java AWT Frame для получения системных меню.