java - 延迟 ActionListener 中的操作?

标签 java delay actionlistener

我想要做什么:我想在 ActionListener 中的两个操作之间添加延迟,因此我尝试使用以下代码:

button.addActionListener(new ActionListener() {
     public void actionPreformed(ActionEvent arg0) {

              System.out.println("Hello");

              try {
                   Thread.sleep(1000);
              } catch(InterruptedException ex) {
                   Thread.currentThread().interrupt();
              }

              System.out.println("Goodbye");
         }
    };

问题:所发生的一切是 JButton 在我延迟操作的时间内卡住。

我的问题:我需要知道如何延迟,以便它打印“Hello”,然后 1000 毫秒(或 1 秒)后,我希望它打印“Goodbye”。

最佳答案

您可以使用 javax.swing.Timer 直接实现此目的:

button.addActionListener(new ActionListener() {
    public void actionPreformed(ActionEvent arg0) {
          System.out.println("Hello");
          new Timer(1000, new ActionListener() {
            @Override void actionPerformed(ActionEvent e) {
              System.out.println("Goodbye");
            }
          }).start();
     }
};

关于java - 延迟 ActionListener 中的操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31844004/

相关文章:

java - TableView 静态时不显示列

javascript - 页面加载时,如何让6个函数相互执行?

java - 返回调用方法或获取 JCheckBox 的选择结果

java - 如何使按钮在不同的点击量上发生变化java

java - 带有计时器的按键监听器/ Action 监听器无法正常工作

java - Hibernate 自动生成具有初始值的 Id

java - H2(文件)删除性能

java - FindBugs 和静态初始化顺序

iOS延迟更改背景颜色(快速)

java - while 循环内的延迟不起作用