Получите цель от слушателя действия JPopupMenu в Java - PullRequest
0 голосов
/ 23 апреля 2020

В настоящее время я делаю приложение TODO GUI в Java для практики. Я хочу, чтобы каждый элемент, добавленный в список, имел возможность удаления. Поэтому я создал контекстное меню (или JPopupMenu в разгаре). Я также добавил JMenuItem, который удалит элемент из списка. Но есть проблема ... Я добавил кнопку «Слушатель действий» и передал переменную события, во-первых, хотя эта переменная события указывает на ListItem, но на самом деле она указывает на MenuItem.

Итак, как получить целевой объект (ListItem), чтобы окончательно удалить его из списка?

DefaultListModel<String> listModel = new DefaultListModel<>();
private JList<String> List;

List.setModel(listModel);

JPopupMenu listCtxMenu = new JPopupMenu();

JMenuItem deleteItem = new JMenuItem("Remove Item");
deleteItem.addActionListener(e -> {
    // Access the Target...
});

listCtxMenu.add(deleteItem);

List.setComponentPopupMenu(listCtxMenu);

1 Ответ

0 голосов
/ 23 апреля 2020

Я сделал это. Я следовал инструкциям MadProgrammer:

По сути, вы можете подключить слушатель мыши к каждому компоненту, и когда он вызывает всплывающее окно, вы можете динамически создавать меню, позволяя вам заполнить сам элемент.

Спасибо.

...