java - 在java中显示图像

标签 java swing background window

我在框架上显示图像时遇到问题。当显示图片时,左上角不会到达指定的 (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/

相关文章:

Java如何将非模式对话框中的双击事件结果传递给父框架?

java - 如何添加图像作为 JPanel 背景?

Android:使 Dialog 周围的一切都比默认更暗

iOS:如何判断应用程序何时暂停?

java - Jenkins 可以在 slave 日志上自定义插件到 master 吗?

java - 全局访问变量 (Java)

java - 如何制作一个看起来像Windows侧边栏上当前可用的窗口小部件的java小部件?使用哪个 Java API?

java - 一个按钮不会出现

java - 如何使用 Joox 创建新的 xml 文件

swing:为了更好的可移植性使用哪些字体?