java - 在 Jbutton 引线上快速按下双键会导致相同的操作两次

标签 java swing jbutton

1> 我在 Jframe 中有一个 JButton

2> 单击JButton 将打开另一个JFrame 的新实例

问题是当在上面的 Jbutton 上快速按下某个键时。会打开同一个 JFrame 的两个实例。

我必须打开这些框架。我知道还有其他选项也不使用 Jframes,正如我所读到的。

我设法通过 setMultiClickThreshHold('time in milliseconds') 解决了鼠标双击的问题。但它仅适用于鼠标

尝试了我在谷歌中找到的其他一些东西,但没有任何效果。 还有其他方法可以解决这个问题吗?

最佳答案

要完全控制操作再次触发的频率/速度,请实现它以在其 actionPerformed 中禁用自身。像这样的东西:

singlePerform = new AbstractAction("DoSomthing") {

    @Override
    public void actionPerformed(ActionEvent e) {
        setEnabled(false);
        doSomething();
    }
};
JButton button = new JButton(singlePerform);

当可以安全地再次触发 doSomething 时,只需重新启用该操作即可:

singlePerform.setEnabled(true);     

关于java - 在 Jbutton 引线上快速按下双键会导致相同的操作两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14456103/

相关文章:

java - 使用selenium java的字体颜色

Java 8 Stream - .max() 重复

java - 如何在 swing 组件(对于组合框)的类中两次使用 toString?

java - 是否可以强制 JButton 始终为正方形?

java - 如何将 JButton 传递给 Action Listener 类

java - 事件处理问题 - Java

java - 在 Java 中检查 ArrayList 中的元素时没有输出

JavaFX:当用户选中复选框时,CheckBoxTableCell 获取 ActionEvent

java - 仿射变换的问题

java - 如何根据按钮操作在框架内切换面板?