У меня есть JPopUpMenu, который я добавил в несколько JTables, и я хотел бы получить конкретную таблицу, которая была нажата правой кнопкой мыши, чтобы я мог внести в нее изменения. Как я могу получить компонент, который запускает JPopupMenu в Слушателе Action?Как получить компонент, который вызвал JPopupMenu?
JPopupMenu popupMenu = new JPopupMenu();
JMenuItem menuItemRename = new JMenuItem("Rename");
popupMenu.add(menuItemRename);
table.getTableHeader().setComponentPopupMenu(popupMenu);
ActionListener menuListener = new ActionListener() {
public void actionPerformed(ActionEvent event) {
String newTitle = JOptionPane.showInputDialog(null, "Enter new title");
//Get the table and rename it here
}
};
menuItemRename.addActionListener(menuListener);
+1 для использования componentPopupMenu. Теперь используйте Action вместо ActionListener, и это будет идеально :-) – kleopatra
@ kleopatra, что вы имеете в виду? как я могу использовать Action? – Igor
Самый быстрый способ узнать, что нужно прочитать в учебнике (см. В вики-тегах wiki) главы о том, как использовать Actions/Menus :-) – kleopatra