我想做什么:我想在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/