单击两个 jbutton 后的 java swing Action 事件

标签 java swing jbutton mouselistener

我尝试仅在 jButton1 之后单击 jButton2 时打印“Hello”,仅在 jButton1 之后单击任何其他 jButton 时打印“Bye”。目前,以下代码不会打印任何内容。

public void MouseClicked(java.awt.event.MouseEvent e){
   if (e.getSource() == jButton1) {
        if (e.getSource() == jButton2) {
            System.out.println ("Hello");
        } else {
            System.out.println ("Bye");
        }
    }
}

最佳答案

这段代码有两个问题。

  1. 父类的方法未被覆盖。 MouseClicked 应该是 mouseClicked (小写的第一个字母),就像在父( super )类中一样,以便它被覆盖并捕获鼠标事件。
  2. 使用嵌套的 if-else 语句是没有意义的,因为每次单击都会调用此方法,并且不会保存之前单击其他按钮的状态。

此代码适合您。

boolean button1ClickedLast = false;

public void mouseClicked(java.awt.event.MouseEvent e){
    if (e.getSource() == jButton1) {
        button1ClickedLast = true;
        System.out.println ("Bye");
    }
    else  if (e.getSource() == jButton2) {
        if(button1ClickedLast) {   
            System.out.println ("Hello");
        }
        else{
            // do nothing or something if you want
        }

    }
    else {
        button1ClickedLast = false; // to change status to false in case any other button is clicked last
    }

}

关于单击两个 jbutton 后的 java swing Action 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30439372/

相关文章:

java - 如何从java应用程序将非英语字符串存储到mysql数据库

Java AES : No installed provider supports this key: javax. crypto.spec.SecretKeySpec

java - 在android studio 2.0中找不到溢出菜单栏

java - 当我想要颜色的 JButton 名称在字符串中时,如何更改 JButton 的颜色?

java - 如何在 Java 中淡化图像的边缘? (给出的例子)

java - T 具有不同类型的 ArrayList<T>

java - 无法在 JLabel 上显示图像

java - 使用 Jigloo Swing 在同一位置放置 2 个 JPanel

java - 在 java 中向 TableModel 添加 double 值

java - JButton MouseListener 没有响应