我有一个JPanel,网格布局为(5,7),5行,7列。
当我尝试将图像添加到网格面板时
Img = new ImageIcon("ImagePath");
JLabel Label = new JLabel(Img);
add(picLabel);
图像对于我的网格面板来说太大了,只有一小部分图像显示在网格面板上。
如何将图像添加到网格中,以便将图像调整为网格大小。
答案 0 :(得分:3)
不要使用JLabel和ImageIcon。相反,我会
paintComponent(Graphics g)
方法g.drawImage(image,....)
重载,允许重新调整图像大小,使其填充JPanel。链接:
查看此重载:
public abstract boolean drawImage(Image img,
int x,
int y,
int width,
int height,
ImageObserver observer)
或者这个:
public abstract boolean drawImage(Image img,
int dx1,
int dy1,
int dx2,
int dy2,
int sx1,
int sy1,
int sx2,
int sy2,
ImageObserver observer)
修改强>
例如,
// big warning: code not compiled nor tested
public class ImagePanel extends JPanel {
private BufferedImage image;
public ImagePanel(BufferedImage image) {
this.image = image;
}
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
if (image != null) {
g.drawImage(image, 0, 0, getWidth(), getHeight(), this);
}
}
}
答案 1 :(得分:2)