[英]Can a JProgressBar show that a thread is alive?
我正在尝试了解线程和JProgressBar。
我有一个实现Runnable
的类。 假设run()
睡眠20秒并显示“ Hello World”。
是否可以创建一个JProgressBar,只要该线程处于活动状态,它就会更新?
如果我有一个int incrementer
,我可以做这样的事情吗(显然,它不起作用,但是是否有类似的东西?):
while (Thread.isAlive()) {
incrementer++;
progress.setValue(incrementer);
Rectangle progressRect = progress.getBounds();
progressRect.x = 0;
progressRect.y = 0;
progress.paintImmediately( progressRect );
}
谢谢你的帮助。
是的,但是您需要从线程的上下文中更新进度条,否则,您将阻止事件调度线程(EDT)。 这意味着您将需要使用SwingUtilities.invokeLater将更新与EDT同步。
您还可以查看进度条的不确定状态,当您不知道需要完成多少工作时,该状态条可用于指示正在进行的工作
您还可以使用SwingWorker
,它通过它的PropertyChange
支持来支持进度
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.