在代码库中,我们继承了
MediaTracker的用法总是在每个代码块中本地完成.
new MediaTracker(new Canvas());
mediatracker.addImage(i, 1);
try {
mediatracker.waitForAll();
} catch (InterruptedException e) { }
mediatracker.removeImage(i);
决定这是低效的,我最终用静态实例和方法替换它:
final static protected MediaTracker mediatracker = new MediaTracker(new Canvas());
static protected void checkImageIsReady(Image i) {
mediatracker.addImage(i, 1);
try {
mediatracker.waitForAll();
} catch (InterruptedException e) { }
mediatracker.removeImage(i);
}
到目前为止,没有任何不良影响.
还有另一种可能的方法 – 将MediaTracker附加到每个组件(通常是Frame或JFrame),这是constructor documentation采用的方法.
所以我有两个问题:
>如何以及为何使用MediaTracker?
>替代方案是什么?