我正在编写一个java程序,在我调用一个大量使用CPU的方法之前,我在其上显示一个带有JProgressBar的框架。虽然我在调用方法之前显示它,但是在方法结束之前不会显示JProgressBar。进度条不会以任何方式与方法交互(还),这就是我感到困惑的原因。它类似于:
progressbarframe.setVisible(true); // it is a indeterminate progress bar
heavyLoadMethod();
progressbarframe.dispose();
框架显示,但进度条在方法期间未初始化。有没有办法可以在不使用线程的情况下解决这个问题?什么是最简单的方法?
感谢您的时间
答案 0 :(得分:3)
您应该在单独的帖子中调用heavyLoadMethod
。您可以使用java.util.concurrent.Executor
:
Executor executor = java.util.concurrent.Executors.newSingleThreadExecutor();
executor.submit(new Runnable() { public void run() { heavyLoadMethod();}});
现在该方法将在一个单独的线程中调用,进度条将正确显示。
答案 1 :(得分:1)