如何将背景添加到jpanel

时间:2016-04-13 16:59:13

标签: java swing user-interface background jpanel

我想在jpanel中添加一个jlabel我已经使用过此代码

JLabel background=new JLabel(new ImageIcon("Myimage.jpg"));
panel.add(background);
frame.setContentPane(panel);

图像的大小是最小化的窗口,而不是最大化的窗口,所以当我最大化窗口时,它会显示一个我不想要的空白区域。我想为我添加的jpanel添加背景

1 个答案:

答案 0 :(得分:0)

只需覆盖JPanel的paintComponent(Graphics g) : void即可。以下解决方案将始终将图像缩放到面板大小。

import java.awt.Graphics;
import java.awt.Image;
import javax.swing.JPanel;

public class ImagePanel extends JPanel {

    private Image image;

    public void setBackgroundImage(Image image) {
        this.image = image;
    }

    @Override
    public void paintComponent(Graphics g) {
        super.paintComponent(g);
        g.drawImage(this.image, 0, 0, this.getWidth(), this.getHeight(), this);
    }
}

对于效果和质量方面,设置一些RenderingHints也很有用。有关详细信息,请参阅Controlling Rendering Quality

请在考虑之前先考虑先搜索。也许这个答案也解决了你的问题How to fit Image size to JFrame Size?