0
我有一個程序,有多個層,在底層我有一個JPanel,我已經把背景圖像。最重要的是,我有一個JLayeredPane,它有一些可拖動的組件。我的問題是,當用戶上傳了一個背景圖片時,可拖動的元件真的很滯後,我猜測是因爲這個迴盪是在拖動時重繪背景圖片。我的問題是,無論如何要確保圖像不會一直在重新繪製? 我的代碼,我畫的圖像看起來是這樣的:JPanel中的背景repaint
if (this.getLoadedBackgroundImage() != null) {
try {
BufferedImage bufferedImage = ImageIO.read(this.getLoadedBackgroundImage());
Image bImage = bufferedImage.getScaledInstance(this.getWidth() - 5 - jPanel6.getWidth() -5, this.getHeight() - jPanel2.getHeight() - jPanel3.getHeight() - tabPanel.getHeight(), Image.SCALE_FAST);
graphics2d.drawImage(bImage, 5, jPanel2.getHeight() + tabPanel.getHeight()+5, null);
} catch (IOException ex) {
Logger.getLogger(MainViewLayeredPane.class.getName()).log(Level.SEVERE, null, ex);
}
}
但是,如果窗口的大小發生變化,我需要爲圖像計算一個新的大小吧?或者我應該在windowChangeEvent之類的地方做那個呢? –
那麼?當窗口的大小發生變化時,計算新的大小,調整圖像的大小並重新繪製 - [例如](https://stackoverflow.com/questions/24318051/width-and-height-of-a-jpanel -are-O-特定情況/ 24318121#24318121) – MadProgrammer