当前位置: 首页 > 知识库问答 >
问题:

如何让图像大小适合JFrame大小?

胡劲
2023-03-14

我有一个< code>JPanel到< code>JFrame中。我在< code>JPanel上加载了一张图片,但它只显示了图片的一部分:这是我所做的代码部分:

JPanel panelImg = new JPanel()
{
    public void paintComponent(Graphics g)
    {
        Image img = new ImageIcon("Welcome.png").getImage();
        Dimension size = new Dimension(img.getWidth(null), img.getHeight(null));
        setPreferredSize(size);
        setMinimumSize(size);
        setMaximumSize(size);
        setSize(size);
        setLayout(null);
        g.drawImage(img, 0, 0, null);
    }
};
mainFrame.add(panelImg);

这就是它的样子:

完整的图片看起来像这样:

有没有办法将图片缩放到< code>JFrame的大小?预先感谢

共有3个答案

羿博延
2023-03-14
import java.awt.Graphics;
import java.awt.Image;
import javax.swing.JPanel;

public class ImagePanel extends JPanel {

    Image image;

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

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

}

然后使用ImagePanel对象方法< code>SetBackground,如

imagePanel1.SetBackGround(ImageIO.read(new File("extensions/images/background.jpg")));
满和安
2023-03-14

首先,我不会在paintComponent方法中加载图像,此方法是重复调用的(有时是快速连续调用的),您不想做任何需要时间执行或不必要地消耗资源的事情

查看Java:维护JPanel背景图像的长宽比,获得填充/调整图像到给定区域的建议

秦钟展
2023-03-14

你想要缩放到目标容器的 drawImage()。有关替代方案,请参阅此处引用的文章。例如

g.drawImage(img, 0, 0, getWidth(), getHeight(), this);
 类似资料:
  • 对不起,我不能上传图片

  • 问题内容: 我正在尝试从目录加载图像并将其作为图标放置在中。但是,当图像尺寸很大时,就不能完全放入标签中。我尝试调整图像的大小以适合标签,但无法正常工作。我可以知道我要去哪里了吗? 问题答案: BufferedImage img = ImageIO.read(…); Image scaled = img.getScaledInstance(500, 500, Image.SCALE_SMOOTH)

  • 我制作了一个包含三个jpanel的jframe,这三个panel将jframe分成三个相等的部分。每一个面板都包含一个图像。我想调整图像和面板的大小,当帧的大小从高到低的时候。有人能告诉我如何做吗。

  • 问题内容: 我有一个包含了一组在。每个都有不同的大小,我希望适应当前显示的大小(而不是适应的大小)。 我该如何实现? 问题答案: 通常是:如果您遇到布局问题,请 始终 使用适当的LayoutManager解决它。 切勿 调整组件的大小提示以达到您的目标。 在这种情况下,调整CardLayout特别容易。默认情况下,它将其prefSize计算为所有卡的prefSizes的最大值。只需子类化并实现以返

  • 问题内容: 这看似微不足道,但是经过所有的研究和编码,我无法使其正常工作。条件是: 浏览器窗口大小未知。因此,请不要提出涉及绝对像素大小的解决方案。 图片的原始尺寸未知,可能适合浏览器窗口,也可能不适合浏览器窗口。 图像垂直和水平居中。 图像比例必须守恒。 图像必须在窗口中完整显示(不裁剪)。 我不希望滚动条出现(如果图像合适,它们也不应该出现。) 窗口尺寸更改时,图像会自动调整大小,以占据所有可

  • 问题内容: 您如何自动调整大图像的大小,以使其适合较小的div容器,同时保持其宽高比? 示例:当图像插入到编辑器面板上并且图像太大而无法容纳在页面上时,图像将自动调整大小。 问题答案: 请勿对图片标签应用明确的宽度或高度。相反,给它: 另外,如果只想指定宽度。