代码之家  ›  专栏  ›  技术社区  ›  rui

jButton只响应第二次单击

  •  0
  • rui  · 技术社区  · 6 年前

    这篇文章似乎是重复的,但我不理解相同的解决方案。我不明白为什么jbutton只在我点击两次时才起作用。

    private void jButton1MouseClicked(java.awt.event.MouseEvent evt) {                                      
    jButton1.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            String address = jTextField1.getText();  
         Socket sock = null;
            try {
                InetAddress addr;
                sock = new Socket(address, 80);
                addr = sock.getInetAddress();
                sock.close();
                jLabel2.setText("Status: Online"); 
            } catch (IOException ex) {
                 jLabel2.setText("Status: Offline");
            }      
        }
    }); 
    } 
    
    1 回复  |  直到 6 年前
        1
  •  1
  •   MadProgrammer    6 年前

    jButton1MouseClicked 建议 MouseListener 已通过Netbeans针对按钮注册。

    删除的注册 ActionListener 来自 jButton1MouseClicked鼠标 处理程序。。。

    private void jButton1MouseClicked(java.awt.event.MouseEvent evt) {                                      
        String address = jTextField1.getText();  
        Socket sock = null;
        try {
            InetAddress addr;
            sock = new Socket(address, 80);
            addr = sock.getInetAddress();
            sock.close();
            jLabel2.setText("Status: Online"); 
        } catch (IOException ex) {
             jLabel2.setText("Status: Offline");
        }      
    } 
    

    话虽如此,请返回Netbeans表单编辑器并删除 mouseClicked 与按钮关联的处理程序,并添加 监听器 手动(在调用 initComponents )或通过Netbeans表单编辑器的“操作”处理程序

    原因是,按钮可以通过其他方式操作,如键盘