Я создал всплывающее меню с двумя пунктами меню: «Изменить» и «Удалить». А затем я добавил это меню в 2 разных списка JList.
Результат нажатия кнопки «Изменить» или «Удалить» в JList различается, поскольку они относятся к разным объектам (элемент меню «Удалить»: один должен удалить один объект из массива, а другой — другой объект из другого массива).
Мне интересно, как лучше всего это сделать, с точки зрения производительности или «хорошего кодирования». Создать отдельное всплывающее меню для каждого компонента или использовать одно и то же всплывающее меню?
Я использую следующий код, чтобы узнать, какой это JList:
JPopupMenu popupMenu = new JPopupMenu("Menu");
addPopup(listShowSources, popupMenu);
addPopup(listShowESS, popupMenu);
JMenuItem menuItemEdit = new JMenuItem("Edit");
popupMenu.add(menuItemEdit);
JMenuItem menuItemRemove = new JMenuItem("Remove");
popupMenu.add(menuItemRemove);
menuItemRemove.addMouseListener(new MouseAdapter() {
@Override
public void mouseReleased(MouseEvent arg0) {
Component c = (Component)arg0.getSource();
JPopupMenu popup = (JPopupMenu)c.getParent();
JList<String> list = (JList <String> )popup.getInvoker();
System.out.println(list.getName());
}
});
С помощью этого кода я буду создавать экземпляры всплывающих меню и списков каждый раз, когда я нажимаю кнопку. Это «лучший» способ сделать это или мне просто сделать 2 разных всплывающих меню?
Спасибо за помощь, Некас