[英]Java SwingWorker with JDialog showing JProgressBar during JDBC network operation
[英]java jprogressbar hangs during heavy operation
我正在编写一个Java程序,并且在调用大量使用CPU的方法之前,我先显示一个带有JProgressBar的框架。 尽管我在调用方法之前就显示了它,但直到方法结束才显示JProgressBar。 进度条尚未以任何方式与方法交互(至今),这就是为什么我感到困惑。 就像这样:
progressbarframe.setVisible(true); // it is a indeterminate progress bar
heavyLoadMethod();
progressbarframe.dispose();
将显示该框架,但是进度条在方法期间未初始化。 有没有不用线程就可以解决这个问题的方法? 最简单的方法是什么?
感谢您的时间
您应该在单独的线程中调用heavyLoadMethod
。 您可以为其使用java.util.concurrent.Executor
:
Executor executor = java.util.concurrent.Executors.newSingleThreadExecutor();
executor.submit(new Runnable() { public void run() { heavyLoadMethod();}});
现在,将在单独的线程中调用该方法,并且进度条将正确显示。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.