我想做什么:我想在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"。
答案 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();
}
};