gpt4 book ai didi

java - 调整图像大小使其适合 JPanel 网格

转载 作者:行者123 更新时间:2023-11-29 07:48:41 28 4
gpt4 key购买 nike

我有一个 JPanel,其网格布局为 (5 , 7 ) 、5 行、7 列。

当我尝试将图像添加到网格面板时

    Img = new ImageIcon("ImagePath");
JLabel Label = new JLabel(Img);
add(picLabel);

图像对于我的网格面板来说太大了,网格面板上只显示了一小部分图像。

如何将图像添加到网格,以便图像调整到网格大小。???

最佳答案

不要使用 JLabel 和 ImageIcon。相反,我会

  • 创建一个扩展 JPanel 的类
  • 覆盖其paintComponent(Graphics g)方法
  • 记得在我的override中调用super的方法
  • 给它一个 BufferedImage 字段,比如名为 image
  • 通过构造函数和/或 setter 参数将图像传递到类中。
  • 调用 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);
}
}
}

关于java - 调整图像大小使其适合 JPanel 网格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23183679/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com