java - 从 Java 中的 JPopupMenu 动作监听器获取目标
问题描述
我目前正在用 Java 制作一个 TODO GUI 应用程序以供练习。我希望添加到列表中的每个项目都有一个删除选项。所以我创建了一个上下文菜单(或摇摆中的 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);
解决方案
我做的。我遵循了 MadProgrammer 的指示:
基本上,您可以将鼠标侦听器附加到每个组件,当它触发弹出窗口时,您可以动态构建菜单,允许您为项目本身播种。
谢谢。
推荐阅读
- javascript - 图表未定义
- java - Dagger 注入片段的对象为空
- verilog - Verilog HDL 错误:非法的左侧分配
- java - 正则表达式双运算符是单计数
- java - Android:使用未经检查或不安全的操作
- flutter - 如何动态地对 PageView.Builder 项目的移除进行动画处理
- google-apps-script - Google 表格:根据单元格值隐藏行 是/否
- api - 如何使用 Foswiki API 从外部系统访问表单元数据(单元格内容)
- asp.net - Elmah 没有看到数据库
- mysql - 用于 nil:NilClass 的 Rails 未定义方法“电子邮件”