在Java中获取JMenu和JMenuItem的MouseListener事件

时间:2014-10-22 19:51:34

标签: java mouselistener

我在JFrame中放置了一个JMenuBar, 现在JMenuBar里面有15个JMenus,而且还有超过 每个JMenus里面有10个JMenuItems。

现在我第一次写超过150行非常困难 每个JMenuBar组件的AddMouseListener和JMenuItem类似的

当你不得不写作时,更多的头痛会增加 evt.getSource == JMenu1或evt.getSource == JMenuItem1,

所以最后我要求执行MouseListener事件 特别是JMenu或JMenuItem,

请帮助......

1 个答案:

答案 0 :(得分:1)

我没有您的代码示例,但是通过减少和重复使用代码,您可以了解自己可以做些什么:

JPopupMenu popup = new JPopupMenu();
popup.add(makeMenuItem("menuitem1"));

private JMenuItem makeMenuItem(String label) {
    JMenuItem item = new JMenuItem(label);
    item.addActionListener(this);
    return item;
}

在您的情况下,只需将代码修改为JMenuBar和AddMouseListener,如果这些是您的选择。至于evt.getSource比较,您可能希望将MenuItem存储在数组中,然后只执行比较循环。