我想绘制多个图像取决于是否Boolean
是true
或不。但是,当boolean
变成true
或不是,我得到一个NullPointerException
涉及任何与我的方法。 (在代码中注释特别指向哪里),我99%肯定它是因为图形,它的null
。NullpointerException当我使用我自己的多种方法来绘制图像
基本上我也问如何解决这个问题,以及如何在一个类中使用我自己的方法正确地绘制图像。我知道如何在一个班级中的每个图片上做到这一点,但我的方式不仅仅是2张图片,我想我差不多有100张,所以我不想制作100个类(:|)。这里是我的代码:图片类的
列表:
public class Images{
public static Toolkit tk = Toolkit.getDefaultToolkit();
public static final Image Image1 = tk.getImage("src/images/image1.png"), Image2 = tk.getImage("src/images/image2.png");
public ImageObserver observer = null; //i just did this for no reason
public static Graphics g = Main.graphics;
public void paintImage1(Graphics g){
Images.g = g;
g.drawImage(Image1, 10, 10, observer); //NullPointerException points here, even if I replace 'pbserver' with null
}
public void paintImage2(Graphics g){
Images.g = g;
g.drawImage(Image2, 10, 10, observer); //strangely, it doesn't point here
}
}
然后,我举在我的课堂上使用它与我的布尔绘制的图像,像这样:
public class PaintHandler{
public static Graphics graphics = Images.g;
public void PaintImages(boolean upheld){
if (upheld){
Images.paintImage1(graphics);//NullPionterException points here
}
else if (!upheld){
Images.paintImage2(graphics);//doesn't point here for some reason
}
}
}
异常也指向我用来制作upheld
true
的键盘绑定方法,另一件奇怪的事情。
和以前一样,我不想为每一张照片做一个班级,我更喜欢他们是否都在一个班级。另外,当我尝试在我使用的JFrame
上使用getGraphics()
时,我通过这个GIGANTIC循环来做静态事物和不能将静态条件应用于非静态上下文之间,比如使静态变量变为静态,但之后它说不能用在静态的上下文中,但是当你不把它变成静态的时候,一个不同的变量表示把它改回静态,你不会使它成为静态的,并且你会经历这个巨大的循环,改为不是静态的(对于长时间的解释抱歉,试图具体说明)。
不要'src'载入图像,当应用程序构建的部署,他们将不存在... – MadProgrammer 2014-10-29 05:22:23
1)更快地提供帮助,发布[MCVE](http://stackoverflow.com/help/mcve)(最小完整可验证示例)。 2)请参阅[什么是堆栈跟踪,以及如何使用它来调试我的应用程序错误?](http://stackoverflow.com/q/3988788/418556)&[什么是空指针异常,以及如何我修复它?](http://stackoverflow.com/q/218384/418556)3)总是复制/粘贴错误和异常输出! – 2014-10-29 06:32:14