Как установить фоновое изображение в 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);

2 ответа

Я решил эту проблему, добавив, что при создании 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);
    }
}

;
JDesktopPane desktopPane = new JDesktopPane() {

    private final ImageIcon image = new ImageIcon("sample.jpg");;

    @Override
    protected void paintComponent(Graphics g) {
        super.paintComponent(g);
        int x = (desktopPane.getWidth() - image.getIconWidth()) / 2;
        int y = (desktopPane.getHeight() - image.getIconHeight()) / 2;
        g.drawImage(image.getImage(), x, y, this);
    }
};
Другие вопросы по тегам