Как изменить автоматически сгенерированное меню и поле «О программе» в Mac LAF на Java?

1

Изображение 174551

Снимок экрана показывает в строке меню яблоко (которое является системным меню) в меню приложения "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);
}

}

  • 3
    Java является кроссплатформенной, меню, которые вы создаете для Windows и Mac, совпадают. Если это вообще то, что вы имеете в виду.
  • 0
    Спасибо, я сделал много приложений для Android, так что Java, я могу заставить вещи работать, но я начинаю проект, я хочу выглядеть профессионально на Mac и Windows, я только что получил MacBook, и я заметил, что есть меню Apple с "about" и "quit", то в моем запрограммированном меню я хотел бы изменить окно about, чтобы оно выглядело лучше, но я не могу найти гораздо больше информации, чем включение внешнего вида или изменение названия, поэтому я вроде как понимаю некоторые вещи, но другие, кажется, специфичны для используемых систем ... Надеюсь, я имею смысл, я из низкоуровневого фона, поэтому не имею "язык" вокруг "субъекта"
Показать ещё 7 комментариев
Теги:
macos
menubar

1 ответ

0

Что касается информации о значке и версии, она исходит из файла свойств пакета приложения (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();
    }
}
  • 0
    Большое спасибо за это, я получил его в затмении, но не сразу. Это дало мне ограничения доступа к библиотекам, но я бездельничал, пока это не сработало. (Не могу вспомнить, что я сделал! Я случайно нажимал кнопки!) Все это кажется очень сложным из-за того, что я считал, было написать для чего-нибудь в одном месте, но я буду продолжать учиться ... Еще раз спасибо всем

Ещё вопросы

Сообщество Overcoder
Наверх
Меню