Получение меню имени приложения OS X в Java

Я успешно освоил способность двигать JMenuBars в строке меню системы OS X. Однако, когда я делаю это, мне преподносят JMenuBar предшествует логотип Apple и название моего приложения (скажем, MyApp). Я хочу иметь возможность прямого доступа к меню MyApp, чтобы я мог добавить JMenuItemтакие как Настройки и Перезагрузка. Как я могу получить доступ к этому меню MyApp?

Вот мой код до сих пор:

import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;

public class Clazz extends JFrame
{
    public Clazz()
    {
        setUpGUI();
    }

    private JMenuBar menuBar;
    private JMenu appMenu;
    private void setUpGUI()
    {
        setUsesSystemMenuBar(true, "MyApp");
        if ((menuBar = getJMenuBar()) == null)
        {
            menuBar = new JMenuBar();
            setJMenuBar(menuBar);
        }
        if ((appMenu = getSystemAppMenu()) == null)
            appMenu = new JMenu();
        appMenu.add(new JMenuItem("My Menu Item");
    }

    private void setUsesSystemMenuBar(boolean uses, String appName)
    {
        System.setProperty("apple.laf.useScreenMenuBar", Boolean.toString(uses));
        if (name != null)
            System.setProperty("com.apple.mrj.application.apple.menu.about.name", appName.toString());
    //Will put code in for Ubuntu Unity, too, once I figure that out
    }

    private JMenu getSystemAppMenu()
    {
        //I don't know what to put here! D:
    }
}

1 ответ

Некоторые из них могут быть немного устаревшими, но могут привести к правильному пути

Другие вопросы по тегам