Как построить меню динамически?
Я делаю программу на Java, и мне необходимо сделать выпадающее из MenuBar меню из пунктов (MenuItem) c подпунктами. Заполняется оно из БД, и статический метод извлечения уже есть (read_from_database, принимает строку и возвращает связанный лист из строк(LinkedList), которые должны стать названиями пунктов и подпунктов) - однако сколько этих строк окажется в меню/подменю, заранее неизвестно.
Самое пакостное, что объявление пункта следующим образом в цикле с while-hasNext:
(имя_объекта_Menu).add(new MenuItem("название"));
здесь не прокатит, поскольку:
- для каждого пункта надо добавить подпункт, а для этого (насколько я понимаю) надо знать имя объявленной MenuItem - а все MenuItem я заранее объявить не могу;
- для каждого подпункта нужно оставить задел на однотипное действие, которое необходимо привязать к нему.
Обычное добавление ActionListener к меню
(имя_объекта_Menu).addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent ev) {
//некое действие
}
});
тоже не проходит - нужно автоматическое действие, которое выполняется однократно при создании меню (в идеале - с обновлением, если другой метод выполнил операцию с БД), а прослушиватель (по дефолту)
- срабатывает каждый раз и
- выполняется только после щелчка на меню.
Можете ли Вы мне помочь разобраться с проблемой и подсказать, как все-таки выполнить поставленную задачу с минимальным количеством наиболее правильного кода?
Заранее благодарен.