Как бы я запрограммировать динамический menubar в Swing? - PullRequest
3 голосов
/ 23 апреля 2009

По сути, я хочу иметь возможность разрешить пользователю сохранять закладки, которые затем помещаются в список в подменю меню. Как бы я занялся программированием общей функции для любого количества закладок, которые могут быть добавлены, я в основном хочу, чтобы элементы помещали URL в текстовое поле при нажатии. Мне нужно создать новый класс для этого, или есть встроенная функция?

Моя программа представляет собой простое приложение для чтения RSS, написанное на Java с использованием Swing.

1 Ответ

5 голосов
/ 23 апреля 2009

Вам необходимо добавить MenuListener в пункт меню, который вы хотите быть динамическим. В методе void menuSelected (MenuEvent e) выполните построение подменю. В первой реализации вы можете сначала сбросить содержимое вашего меню, а затем обновить его с нуля вместо его обновления:

JMenu menu = new JMenu("Bookmarks");
menu.addMenuListener(new MyMenuListener());

private class MyMenuListener implements MenuListener {

    public void menuCanceled(MenuEvent e) { }

    public void menuDeselected(MenuEvent e) { }

    public void menuSelected(MenuEvent e) {
        JMenu menu = (JMenu) e.getSource();
        populateWindowMenu(menu);
    }
}

void populateWindowMenu(JMenu windowMenu) {
    windowMenu.removeAll();
    // Populate the menu here
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...