【发布时间】:2014-05-27 15:31:29
【问题描述】:
我刚开始使用 JMenu。为了更轻松,我决定使用 Netbeans 表单设计工具,该工具对这个应用程序中的所有组件都非常有效。
单击顶级菜单项效果很好。
对于一个菜单项,我制作了一个包含 3 个项的子菜单,每个项都有一个鼠标单击侦听器。
以下是 3 个子菜单之一的相关代码:
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);
没有用。忽略点击次数。
所以我尝试了一个 Action 监听器:
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 表单设计器。)
【问题讨论】:
标签: java actionlistener mouselistener jmenu jmenuitem