Trong codebase, chúng tôi thừa kế việc sử dụng MediaTracker luôn được thực hiện cục bộ trong mỗi khối mã.MediaTracker - cách sử dụng, lợi ích là gì, hoặc có thay đổi không?
new MediaTracker(new Canvas());
mediatracker.addImage(i, 1);
try {
mediatracker.waitForAll();
} catch (InterruptedException e) { }
mediatracker.removeImage(i);
Quyết định này là không hiệu quả, tôi cuối cùng đã thay thế nó bằng một trường hợp tĩnh và phương pháp:
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);
}
Như vậy đến nay chưa có tác động xấu.
Có một cách tiếp cận khác có thể - để đính kèm MediaTracker vào từng thành phần (thường là Khung hoặc JFrame) được ngụ ý mạnh mẽ như cách tiếp cận để thực hiện bởi constructor documentation.
Vì vậy, tôi có 2 câu hỏi:
Làm thế nào và tại sao sử dụng MediaTracker?
Phương án thay thế là gì?
miễn là [các đoạn mã đó] (http://www.java2s.com/Code/Java/2D-Graphics-GUI/ConvertjavaawtimageBufferedImagetojavaawtImage.htm) đang trực tuyến, MediaTracker sẽ không chết. – oliholz
Đây là [một bài viết] (http://weblogs.java.net/blog/chet/archive/2004/07/imageio_just_an.html) mở rộng các đặc tính của ImageIO trên MediaTracker. –
Điều này không cung cấp câu trả lời cho câu hỏi. Để phê bình hoặc yêu cầu làm rõ từ tác giả, hãy để lại nhận xét bên dưới bài đăng của họ. –