Снимок экрана показывает в строке меню яблоко (которое является системным меню) в меню приложения "GSPro", в котором есть элементы "about" и "quit", и ss также показывает, как выглядит встроенный в поле, это может быть изменено, чтобы выглядеть более профессионально и есть значки /revs/author и т.д. В битах у меня возникают проблемы с поиском информации и хорошими примерами. Меню файла вперед - это то, что генерирует мое приложение, и будет выглядеть так же в окнах, поэтому я знаю, что мне придется делать окна меню немного иначе, чем в Mac.
На mac это известно как laf (внешний вид).
Мой снимок кода выглядит следующим образом: никаких обработчиков пока нет, а просто проверяет, как он показывает...
public class GSPro {
/**
* @param args
*/
public static void main(String[] args) {
System.setProperty("apple.laf.useScreenMenuBar", "true");
JFrame frame = new JFrame();
frame.setExtendedState(frame.getExtendedState() | JFrame.MAXIMIZED_BOTH);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
frame.setLocationRelativeTo(null);
frame.setTitle("GSPro");
JMenuBar menuBar = new JMenuBar();
JMenu file = new JMenu("File");
menuBar.add(file);
JMenu edit = new JMenu("Edit");
menuBar.add(edit);
JMenuItem exit = new JMenuItem("New");
file.add(exit);
JMenuItem open = new JMenuItem("Open");
file.add(open);
file.addSeparator();
JMenuItem close = new JMenuItem("Close");
file.add(close);
file.addSeparator();
JMenuItem save = new JMenuItem("Save");
file.add(save);
JMenuItem saveas = new JMenuItem("Save As...");
file.add(saveas);
frame.setJMenuBar(menuBar);
}
}
Что касается информации о значке и версии, она исходит из файла свойств пакета приложения (Info.plist). Создайте пакет приложений, содержащий свойства значка и версии, и вы увидите диалоговое окно "О программе", отображающее эту информацию.
Возможно, вам будет лучше создать свой собственный диалог "О себе". Я никогда не видел приложение, которое использовало значение по умолчанию при снятии экрана. Кроме того, это позволит вам использовать один и тот же диалог About на разных платформах. Вот как вы это сделаете на OS X:
public class Test implements com.apple.eawt.AboutHandler {
public Test() {
// comment these two lines to see the default About dialog
com.apple.eawt.Application app = com.apple.eawt.Application.getApplication();
app.setAboutHandler(this);
JFrame myFrame = new JFrame();
myFrame.setSize(200, 200);
myFrame.setVisible(true);
}
@Override
public void handleAbout(com.apple.eawt.AppEvent.AboutEvent ae) {
JFrame aboutFrame = new JFrame();
aboutFrame.setSize(200, 200);
aboutFrame.add(new JLabel("About"));
aboutFrame.pack();
aboutFrame.setVisible(true);
}
public static void main(String[] args) {
new Test();
}
}