【发布时间】:2015-03-31 11:27:10
【问题描述】:
首先我想为任何错误道歉,我的英语说得不好,我是 Java 新手,我是 Stackoverflow 新手。请善待!
我一直无法在屏幕上绘制简单的图像。我尝试了一切,但我一直失败,我越来越困惑。这是我的源代码:
package com.Animation;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.net.URL;
import java.awt.Graphics2D;
import java.awt.Point;
import javax.imageio.ImageIO;
import javax.swing.JFrame;
@SuppressWarnings("serial")
public class Class1 extends JFrame{
private BufferedImage backgroundImg;
public Class1(){
this.setTitle("Animation");
this.setSize(1080, 720);
this.setLocationRelativeTo(null);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
LoadContent();
}
public static void main(String[] args){
new Class1();
}
private void LoadContent()
{
try
{
URL backgroundImgUrl = this.getClass().getResource("Back.jpg");
backgroundImg = ImageIO.read(backgroundImgUrl);
}
catch (IOException ex) {
System.err.println("Fehler!");
}
}
public void Draw(Graphics2D g2d)
{
g2d.drawImage(backgroundImg, 0, 0, null);
}
}
所以发生的情况是,一个 JFrame 窗口打开,上面什么都看不到。我认为这是因为 Draw() 方法没有被调用。但是当我添加像“Draw(g2d);”在某个地方,我不断收到 NullPointerException。图片“Back.jpg”与班级位于同一包中。我正在使用 eClipse 和 JRE JavaSE 1.7。
我真的希望你能帮助我,因为我试图找出问题所在,我已经筋疲力尽了。如果您可以将正确的代码写入答案并解释我做错了什么,那就太酷了。请记住,我对这一切都是陌生的。
非常感谢!
【问题讨论】:
标签: java eclipse image swing jframe