按下一个按钮我有一点应用计数时间,
我只需要使用thread.sleep()来计算.
按下按钮时,它会触发ActionListener,它是一个执行thread.run()的类.该Thread.sleep()方法,然后从run()函数中开始.
//The Thread
class twentyMins implements Runnable
@Override
public void run() {
try {
Thread.sleep(1000*60*20);
} catch (InterruptedException e1) {
e1.printStackTrace();
}
}
}
//The ActionListener
class Reset implements ActionListener {
public static twentyMins count = new twentyMins();
@Override
public void actionPerformed(ActionEvent event) {
count.run();
}
}
Run Code Online (Sandbox Code Playgroud)
问题是,按钮不会反弹并且可以再次按下.
按下JFrame上的EXIT按钮甚至无法停止应用程序.
直截了当地,我认为我的应用程序在thread.sleep()运行时被冻结.
还有比Thread.sleep()更好的东西吗?
你实际上并没有在这里启动后台线程.任何对象都可以实现Runnable
(和run
方法)但不会使它成为一个线程.因此,当单击"重置"按钮时,它会锁定负责UI的单个线程.
您需要将Runnable
对象传递给Thread
类的构造函数(java.lang.Thread),如官方文档中所述.
归档时间: |
|
查看次数: |
51 次 |
最近记录: |