您好,
我目前正在编写一个分形浏览器/生成器,我一直在实施进度条。目前我有一个抽象类Renderer
,它继承了一个渲染方法public abstract long render(int[] pixels, int w, int h);
。此方法返回迭代次数。
Renderer
类的示例为BuddhaRenderer
,此处摘录自render()
的{{1}}方法:
BuddhaRenderer
这将启动多个线程,将其结果写入int[] numHits = new int[w * h];
ArrayList<BuddhaThread> threads = new ArrayList<BuddhaThread>();
for (int i = 0; i < controller.processors; i ++) {
BuddhaThread th = new BuddhaThread(controller, w, h, numHits, anti);
th.start();
threads.add(th);
}
try {
for(Thread th : threads)
th.join();
} catch (InterruptedException e) {
e.printStackTrace();
}
。我正在等待所有线程完成,然后在为所有线程运行numHits
方法时继续绘制图像。
现在,如果没有进度条冻结,我将如何在同一个JFrame内或不同的JFrame内显示所有这些线程的进度条?
可以可靠地读取这些进展,因为它们只是迭代了一定数量的随机点。
这是我第一次使用线程,所以请随时纠正我如果我做的事情非常糟糕。