延迟ActionListener中的操作?

时间:2015-08-05 22:39:40

标签: 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会冻结我延迟行动的时间。

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

1 个答案:

答案 0 :(得分:2)

您可以使用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();
     }
};