Java 更新的gui应用程序
我需要编写一个应用程序,将检查的东西,每X时间,并更新到GUI comtols。 我对java知之甚少,以前编写过一些应用程序,但我从未处理过多线程和更新GUI之类的问题 我认为这将是一项简单的任务,所以我开始写我的软件。其他一切都很正常。我只是不能让应用程序每X次执行一次检查,然后更新GUI 有人能给我一些指导吗?我应该调查什么?通常的做法是什么? 是线吗?递归的?还有别的吗 另外,如果可能的话,给我提供一些代码示例,我可以更好地理解Java 更新的gui应用程序,java,multithreading,swing,user-interface,timer,Java,Multithreading,Swing,User Interface,Timer,我需要编写一个应用程序,将检查的东西,每X时间,并更新到GUI comtols。 我对java知之甚少,以前编写过一些应用程序,但我从未处理过多线程和更新GUI之类的问题 我认为这将是一项简单的任务,所以我开始写我的软件。其他一切都很正常。我只是不能让应用程序每X次执行一次检查,然后更新GUI 有人能给我一些指导吗?我应该调查什么?通常的做法是什么? 是线吗?递归的?还有别的吗 另外,如果可能的话,给我提供一些代码示例,我可以更好地理解 谢谢你的努力 我假设你正在使用Swing。如果是的话,请使
谢谢你的努力 我假设你正在使用Swing。如果是的话,请使用 或者,如果检查本身是一些不能在GUI线程中执行的长时间运行的任务(因为它会冻结它),则使用并将其提交给类创建的。尝试以下操作:
private volatile boolean killCheck;
public void startChecking() {
killCheck = false;
Thread checker = new Thread() {
public void run() {
for (;;) {
try { Thread.sleep( 500 ); }
catch (InterruptedException ie) { break; }
if (killCheck) break;
EventQueue.invokeLater( new Runnable() {
public void run() {
// Update GUI here on EventQueue.
}
} );
}
}
};
checker.start();
}
public void stopChecking() { killCheck = true; }
计时器(至少有两个,在swing和util中)非常有趣和优雅,但有时你只需要完成工作。用你的“X时间”替换我的500。确保在EventQueue上进行Swing调用!如果抛出InterruptedException,可能会添加一条消息
去看看一个荡秋千的工人;它会做同样的事情,更安全,但如果你要做很多这件事,你可能会发现自己做这件事更有力量