0
我得到了在JPanel組件中加載圖像的要求。 考慮JPanel有10個組件,並且需要使用背景圖像設置所有這些組件。 因此,在繪製方法中,我實現了背景圖像設置邏輯,但這非常緩慢。以有效的方式在文件系統的JPanel的子組件中加載圖像
我想通過有效的方法來完成同樣的任務。
我得到了在JPanel組件中加載圖像的要求。 考慮JPanel有10個組件,並且需要使用背景圖像設置所有這些組件。 因此,在繪製方法中,我實現了背景圖像設置邏輯,但這非常緩慢。以有效的方式在文件系統的JPanel的子組件中加載圖像
我想通過有效的方法來完成同樣的任務。
每次移動,拖動,調整窗口大小......窗口以及其他幾種情況時,都會調用組件的繪畫方法。因此,只能使用paint方法(重新)繪製組件並僅調用一次加載過程。
創建圖像的小縮略圖,並在某種類的緩存它們,例如:
class Thumbnail extends Component {
...
BufferedImage cachedThumbnail;
public Thumbnail(File thumbnailFile) {
//read image
//(scale image)
this.cachedThumbnail = ...;
}
...
public static void paint(Graphics2D g) {
//only paint the cached image ...
g.drawImage(cachedThumbnail,..,..,..,..);
}
}