[英]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.