如何在JDesktopPane中设置背景图像

Maj*_*jda -1 java swing background jdesktoppane

我想设置JDesktopPane的背景(我JDesktopPane直接从调色板中添加它JFrame)

我试图覆盖该方法, 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);
Run Code Online (Sandbox Code Playgroud)

Maj*_*jda 5

我通过添加JDesktopPane创建选择自定义代码(变量主体)来解决此问题:

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);
    }
}

;
Run Code Online (Sandbox Code Playgroud)