从Java中的JPopupMenu操作侦听器获取目标

问题描述 投票:0回答:1

我目前正在用Java制作TODO GUI应用程序以进行练习。我希望添加到列表中的每个项目都有一个要删除的选项。因此,我创建了一个上下文菜单(或swing中的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);
java swing contextmenu actionlistener
1个回答
0
投票

我做到了。我遵循了MadProgrammer的指令:

基本上,您可以将鼠标侦听器附加到每个组件,它会触发一个弹出窗口,您可以动态构建菜单,给项目本身播种。

谢谢。

© www.soinside.com 2019 - 2024. All rights reserved.