我想在jpanel中添加一个jlabel我已经使用过此代码
JLabel background=new JLabel(new ImageIcon("Myimage.jpg"));
panel.add(background);
frame.setContentPane(panel);
图像的大小是最小化的窗口,而不是最大化的窗口,所以当我最大化窗口时,它会显示一个我不想要的空白区域。我想为我添加的jpanel添加背景
答案 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??