我想做什么:我想在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中延迟 Action ?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31844004/

10-13 04:09