我在框架上显示图像时遇到问题。当显示图片时,左上角不会到达指定的 (0,0),窗口的背景也会呈现我第一次运行窗口时窗口后面的任何内容的视觉组件。有人知道出了什么问题吗?预先感谢-
import java.awt.image.ImageObserver;
import java.io.File;
import javax.imageio.*;
import javax.swing.*;
public class Window extends JFrame{
//the pictures
Image testImage = null;
Image backPic = null;
//constructor
Window(){
super("window");
this.startWindow();
}
public void startWindow(){
Image customIcon = Toolkit.getDefaultToolkit().getImage("iconImage.gif");
testImage = Toolkit.getDefaultToolkit().getImage("tester.gif");
backPic = Toolkit.getDefaultToolkit().getImage("black.png");
setSize(700,600);
setIconImage(customIcon);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
setResizable(false);
setLocationRelativeTo(null);
}
public void paint(Graphics g){
g.drawImage(testImage,0,0,null);
}
}
最佳答案
问题是调用 paint()
时您的 testImage 尚未完全加载。要解决此问题,您可以调用它:
g.drawImage(testImage,0,0,this);
但我的首选方法是使用 JLabel 并让它处理图像绘制。我还强烈建议不要重写JFrame.paint()
(如果这样做,至少调用super.paint(g)
)。如果您确实想自己绘制图像,请扩展 JComponent
并重写 paintComponent()
关于java - 在java中显示图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10800065/