繁体   English   中英

jButton具有非常奇怪的行为

[英]jButton with a very strange behaviour

我已经开发了一些基于netbeans GUI创建者的桌面应用程序,我面临着jButton行为的奇怪问题,每次单击它,它都会执行7次:

jButton7.addActionListener(new ButtonListener());
class ButtonListener implements ActionListener {
ButtonListener() {
}
    public void actionPerformed(ActionEvent e) {
        if (e.getActionCommand().equals("pushToTest")) {
            System.out.println("Button1 has been clicked");
            }
      }
}

输出看起来像:

Button1 has been clicked
Button1 has been clicked
Button1 has been clicked
Button1 has been clicked
Button1 has been clicked
Button1 has been clicked
Button1 has been clicked

一键之后。 它发生在我所有的按钮上,我无法发布gui的代码,就像1700行,没有人会打扰它。

实际上,我将在评论中给出答案:

我的猜测-您的问题出在未显示的代码中,您很可能向每个JButton添加了7次ActionListener。 您是否正在使用for循环来执行此操作? 您需要仔细检查代码,现在,由于有问题的代码尚未显示,因此我们再也无法为您提供帮助。

编辑:您的pastebin帖子表明您实际上在for循环内做了很多GUi初始化工作,该循环为: for (int ii = 0; ii < holder2.size() / 3; ii++) { 查看右花括号在哪里:

         setComponent(mainPanel);
     setMenuBar(menuBar);
     setStatusBar(statusPanel);
  }// </editor-fold>  // *** here ***

还有就是这些括号之间一的代码,包括最重要的是你的GUI初始化代码。 这可能是导致您将ActionListener添加7次到按钮的原因。 我的猜测是您真的不希望for循环调用所有这些代码,您的错误是没有在正确的位置添加循环的尾括号。

另外,考虑重构该怪物程序并使用具有逻辑意义的变量名,您会发现调试程序会容易得多。 对我们一样。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM