java - 如何等待鼠标点击

标签 java swing actionlistener mouseclick-event

class GameFrameClass extends javax.swing.JFrame  {

    public void MyFunc()
    {
        UserButton.setText(Str);
        UserButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                UserButtonActionPerformed(evt);
            }
        });
        getContentPane().add(UserButton);
    }

    private void UserButtonActionPerformed(java.awt.event.ActionEvent evt) {

        //print some stuff after mouse click
    }
}

在其他类中我定义了这个函数

void functionAdd()
{
    GameFrameClass gfc = new GameFrameClass()
    gfc.MyFunc()
    System.out.println("PRINT THIS AFTER MOUSE CLICK")  
}

如果有人可以查看这段代码。我想等待鼠标点击。有没有办法可以在单击鼠标后打印 System.out.println("PRINT THIS AFTER MOUSE CLICK") 行。现在这会立即发生,我无法等待鼠标单击。有办法做到吗?除了在函数 UserButtonActionPerformed() 内执行此操作之外。请告诉我。

最佳答案

这是一个非常“糟糕”的方法......

private void UserButtonActionPerformed(java.awt.event.ActionEvent evt) {
    addMouseListener(new MouseAdapter() {
        public void mouseClicked(MouseEvent evt) {
            System.out.println("PRINT THIS AFTER MOUSE CLICK");
            removeMouseListener(this);
        }
    });
}

更好的方法是在 actionPerformed 方法中添加一个标志来“启用”鼠标监听器(您之前添加的)。此监听器将在每次点击时检查标志,当设置为 true 时,它将翻转标志(为 false)并处理事件...

关于java - 如何等待鼠标点击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12667074/

相关文章:

java - LWJGL 和 Ogg/Mp3

java - 在 Weblogic 中配置 session cookie

java - Swing/SwingWorker 初学者的问题

java - Swing 日志附加程序

Java ActionListener 未按预期工作

java - JButton 和 ActionListener 在 java.awt、安全性和事件中产生多个异常?

java - 迭代文件中的行并在每行末尾添加空值

java - 覆盖等于 : Telling IDE its okay to have different values?

java - 图像未显示在可执行 jar 中

java - 在按钮单击 Java 上添加新标签和文本字段