Java JMenu子菜单鼠标侦听器未侦听;听众的行动——为什么?
我刚开始使用JMenu。为了便于使用,我决定使用Netbeans表单设计工具,该工具对该应用程序中的所有组件都非常有效 单击顶级菜单项效果很好 对于一个菜单项,我制作了一个包含3个项的子菜单,每个项都有一个鼠标单击侦听器 以下是3个子菜单之一的相关代码:Java JMenu子菜单鼠标侦听器未侦听;听众的行动——为什么?,java,actionlistener,mouselistener,jmenu,jmenuitem,Java,Actionlistener,Mouselistener,Jmenu,Jmenuitem,我刚开始使用JMenu。为了便于使用,我决定使用Netbeans表单设计工具,该工具对该应用程序中的所有组件都非常有效 单击顶级菜单项效果很好 对于一个菜单项,我制作了一个包含3个项的子菜单,每个项都有一个鼠标单击侦听器 以下是3个子菜单之一的相关代码: private JMenuItem mnuEditDicAddAllScratch; mnuEditDicAddAllScratch = new JMenuItem(); private void mnuEditDicAddA
private JMenuItem mnuEditDicAddAllScratch;
mnuEditDicAddAllScratch = new JMenuItem();
private void mnuEditDicAddAllScratchMouseClicked(MouseEvent evt) {
new WordsToAdd(); // never happened
}
mnuEditDicAddAllScratch.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent evt) {
mnuEditDicAddAllScratchMouseClicked(evt);
}
});
mnuEdit.add(mnuEditDicAddAllScratch);
它不起作用。点击被忽略
所以我尝试了一个动作监听器:
private void mnuEditDicAddAllScratchActionPerformed(ActionEvent evt) {
new WordsToAdd(); // WORKED
}
mnuEditDicAddAllScratch.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
mnuEditDicAddAllScratchActionPerformed(evt);
}
});
它成功了
所以有一个问题是,为什么鼠标单击侦听器不听呢
另外,如果我应该远离鼠标点击事件,为什么或者在什么情况下
而且,先发制人:我应该远离Netbeans表单设计器。您应该为手头的工作使用最好的工具。这意味着对于JMenuItems和jbutton,您应该使用ActionListeners,而不是MouseListeners。例如,如果你禁用一个按钮,你希望按钮不工作,对吗?这适用于ActionListener,但不适用于MouseListener
有关这类材料的最佳信息,请访问来源:。谢谢你,Eels,特别是关于解释、附加信息和链接。你还记得我以为你的把手是飞机上的蛇吗?[不是一个巨大的飞跃]而不是Python引用?我想知道我是否没有注意到你的头像,或者我只是没有建立连接。好时光。。。好时光…@DSlomer64:是的,我记得。那是在白天。
mnuEditDicAddAllScratch.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent actionEvent) {
mnuEditDicAddAllScratchActionPerformed();
}
});