Tôi đang cố tải hình ảnh để sử dụng làm biểu tượng trong ứng dụng của mình. Phương pháp thích hợp theo số tutorial này là:Tải tài nguyên bằng cách sử dụng getClass(). GetResource()
protected ImageIcon createImageIcon(String path, String description)
{
java.net.URL imgURL = getClass().getResource(path);
if (imgURL != null) {
return new ImageIcon(imgURL, description);
} else {
System.err.println("Couldn't find file: " + path);
return null;
}
}
Vì vậy, tôi đã đặt vị trí của tệp và chuyển nó làm tham số cho hàm này. Điều này không hiệu quả, tức là imgURL không có giá trị. Khi tôi cố gắng tạo ImageIcon bằng cách đi qua đường dẫn rõ ràng:
ImageIcon icon = new ImageIcon(path,"My Icon Image");
Nó hoạt động rất tốt! Vì vậy, ứng dụng có thể lấy hình ảnh từ một đường dẫn được xác định rõ ràng, nhưng không nhận được hình ảnh bằng cách sử dụng getResources(). Trong cả hai trường hợp, giá trị của biến đường dẫn là như nhau. Tại sao nó không hoạt động? Tài nguyên được tìm thấy như thế nào bởi trình nạp lớp?
Cảm ơn.
Bạn đang sử dụng IDE? IDE có được thiết lập để sao chép tài nguyên vào bất cứ nơi nào các lớp được biên dịch không? – z5h
Hình ảnh nằm ở đâu so với lớp và đến gốc của dự án? – willcodejavaforfood
Có, tôi đang sử dụng Eclipse và không được thiết lập để sao chép tài nguyên. Đã khắc phục điều đó. Lớp học nằm ở thư mục gốc/bin//MyClass và hình ảnh được đặt trong thư mục gốc/resources/images/myImage.gif Cảm ơn câu trả lời của bạn. –
Luhar