2013-03-28 146 views
-1

我想設置的JDesktopPane的背景(我直接添加此JDesktopPane從面板到JFrame如何設置背景圖片的JDesktopPane

我嘗試覆蓋的方法public void paintComponent (Graphics g),但它不工作

下面是代碼:

JDesktop p = new JDesktop(); 
ImageIcon icon = new ImageIcon("images/Nénuphars6892.jpg"); 
final Image img = icon.getImage(); 
img.getScaledInstance(159, 207, Image.SCALE_SMOOTH); 
p.principal = new JDesktopPane() { 
    @Override 
    public void paintComponent(Graphics g) { 
     super.paintComponent(g); 
     Graphics2D g2d = (Graphics2D) g; 
     g2d.drawImage(img, 0, 0, getSize().width, getSize().height, this); 
    } 
}; 
p.setVisible(true); 
+3

你至少可以張貼一些代碼,所以我們沒有了解你的心思找到它...... – Doorknob

+0

別的不說,你把自己的'getScaledInstance返回的結果() '。使用'ImageIO.read()'。編輯您的問題以包含_foramtted_ [sscce](http://sscce.org/)。 – trashgod

回答

5

我通過添加上選擇定製代碼創建的JDesktopPane的解決這個問題(可變首席cipal):

principal = new javax.swing.JDesktopPane() 

{ 
    ImageIcon icon = new ImageIcon("images/blue_digital_waves_abstract.jpg"); 
    Image image = icon.getImage(); 

    Image newimage = image.getScaledInstance(1500, 1000, Image.SCALE_SMOOTH); 

    @Override 
    protected void paintComponent(Graphics g) 
    { 
     super.paintComponent(g); 
     g.drawImage(newimage, 0, 0, this); 
    } 
} 

;