Как построить меню динамически?

Я делаю программу на Java, и мне необходимо сделать выпадающее из MenuBar меню из пунктов (MenuItem) c подпунктами. Заполняется оно из БД, и статический метод извлечения уже есть (read_from_database, принимает строку и возвращает связанный лист из строк(LinkedList), которые должны стать названиями пунктов и подпунктов) - однако сколько этих строк окажется в меню/подменю, заранее неизвестно.
Самое пакостное, что объявление пункта следующим образом в цикле с while-hasNext:

(имя_объекта_Menu).add(new MenuItem("название"));

здесь не прокатит, поскольку:

  1. для каждого пункта надо добавить подпункт, а для этого (насколько я понимаю) надо знать имя объявленной MenuItem - а все MenuItem я заранее объявить не могу;
  2. для каждого подпункта нужно оставить задел на однотипное действие, которое необходимо привязать к нему.

Обычное добавление ActionListener к меню

(имя_объекта_Menu).addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent ev) {
                //некое действие
            }
        });

тоже не проходит - нужно автоматическое действие, которое выполняется однократно при создании меню (в идеале - с обновлением, если другой метод выполнил операцию с БД), а прослушиватель (по дефолту)

  1. срабатывает каждый раз и
  2. выполняется только после щелчка на меню.

Можете ли Вы мне помочь разобраться с проблемой и подсказать, как все-таки выполнить поставленную задачу с минимальным количеством наиболее правильного кода?
Заранее благодарен.


Ответы (0 шт):