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/