图像没有被限制在直接区域内

问题描述 投票:0回答:1

在下面的此Java代码中,图像不限于直接区域。我希望将Java图像完整显示在400宽度乘400高度的图像中。我试图通过frame.setSize(400,400);而且它不起作用。我的代码包括drawImage,这是我被告知必须输入代码才能起作用的内容。我不知道下一步要去哪里。

import javax.imageio.ImageIO;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.WindowConstants;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;

public class SwingSandbox {

    public static void main(String[] args) throws IOException {
        JFrame frame = buildFrame();

        final BufferedImage image = ImageIO.read(new File("/Users/johnzalubski/Desktop/c.jpg"));

        JPanel pane = new JPanel() {
            @Override
            protected void paintComponent(Graphics g) {
                super.paintComponent(g);
                g.drawImage(image, 0, 0, null);
            }
        };


        frame.add(pane);
    }


    private static JFrame buildFrame() {
        JFrame frame = new JFrame();
        frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        frame.setSize(400, 400);
        frame.setVisible(true);
        return frame;
    }


}
java jframe jpanel drawimage
1个回答
0
投票

您正在更改框架的大小。您应该使用类似以下的内容:g.drawImage(image, 0, 0, 400, 400, null);

如果有帮助,请投票给我。我是新来的,希望有一些基本的声誉。谢谢! 😀

© www.soinside.com 2019 - 2024. All rights reserved.