java - jButton 仅响应第二次单击

标签 java swing netbeans jbutton

这篇文章似乎是重复的,但我不明白其中的解决方案。我不明白为什么 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");
        }      
    }
}); 
} 

最佳答案

jButton1MouseClicked 会建议 MouseListener 已通过 Netbeans 注册到该按钮。

jButton1MouseClicked 处理程序中删除 ActionListener 的注册...

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 处理程序,然后手动添加 ActionListener(在调用 initComponents)或通过 Netbeans 表单编辑器的“action”处理程序

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

关于java - jButton 仅响应第二次单击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48673497/

相关文章:

Java JOptionPane 输出

java - 我想将我的实体类添加到 Netbeans 上的可用实体类

用于运行当前正在编辑的文件的 NetBeans 键盘快捷键

java - 如何在我的 swing 应用程序中使用 Java 类调用并向 Servlet 传递参数?

java - jPOS 字段 64 错误 iso 打包

java - 无法使用 Maven 依赖项运行 Htmlunit 应用程序

java - 如何使用 javax.sound.sampled 包同时播放一组频率(和弦)

java - 可编辑的 JTableHeader

java - 如何在 NetBeans 中设置 Inno Setup 插件

java.lang.ClassNotFoundException : org. glassfish.jersey.client.JerseyClientBuilder 错误?