[英]Resize image so that it fits JPanel grid
我有一个JPanel具有(5,7),5行,7列的网格布局。
当我尝试将图像添加到网格面板时
Img = new ImageIcon("ImagePath");
JLabel Label = new JLabel(Img);
add(picLabel);
对于我的网格面板来说,图像似乎太大了,而网格面板上只显示了一小部分图像。
如何将图像添加到网格,以便图像调整为网格大小。
不要使用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);
}
}
}
如何将图像添加到网格,以便图像调整为网格大小。
看看Darryl的Stretch Icon 。
它将动态调整自身大小以填充标签可用的空间。
然后,可以将Icon用作启用Icon的on组件,而无需自定义绘画。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.