gpt4 book ai didi

java - JMenu子菜单鼠标监听没有监听; Action 监听器做了——为什么?

转载 作者:太空宇宙 更新时间:2023-11-04 14:57:18 27 4
gpt4 key购买 nike

我刚刚开始使用 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 表单设计器。)

最佳答案

您应该使用最适合手头工作的工具。这意味着对于 JMenuItems 和 JButtons,您应该使用 ActionListeners,而不是 MouseListeners(尽管有异常(exception))。例如,如果您禁用一个按钮,您希望该按钮不起作用,对吧?这适用于 ActionListener,但不适用于 MouseListener。

有关此类内容的最佳信息,请访问来源:Swing Tutorials .

关于java - JMenu子菜单鼠标监听没有监听; Action 监听器做了——为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23047114/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com