在下面的此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;
}
}
您正在更改框架的大小。您应该使用类似以下的内容:g.drawImage(image, 0, 0, 400, 400, null);
如果有帮助,请投票给我。我是新来的,希望有一些基本的声誉。谢谢! 😀