Java 线程NullPointerException

Java 线程NullPointerException,java,swing,nullpointerexception,render,Java,Swing,Nullpointerexception,Render,嘿,每当我运行这个错误输出时 Exception in thread "Thread-2" java.lang.NullPointerException at GraphicsTest.render(GraphicsTest.java:50) at GraphicsTest.run(GraphicsTest.java:58) at java.lang.Thread.run(Unknown Source) 这是代码,我不明白为什么它不能工作。我在网上搜索过,似乎找不到任何

嘿,每当我运行这个错误输出时

Exception in thread "Thread-2" java.lang.NullPointerException
    at GraphicsTest.render(GraphicsTest.java:50)
    at GraphicsTest.run(GraphicsTest.java:58)
    at java.lang.Thread.run(Unknown Source)
这是代码,我不明白为什么它不能工作。我在网上搜索过,似乎找不到任何答案。我是新来的,只想在屏幕上画一个图像。然后,也许稍后尝试创建一个BuffereImage数组,但这看起来还需要一段时间,哈哈。提前感谢您的帮助:)

}

只想在屏幕上画一个图像

尝试使用类似于

GraphicsTest gt = new GraphicsTest();

try {
    image = ImageIO.read(new File("Grap/roby.png"));
    I.add(new JLabel(new ImageIcon(image));
} catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}

JFrame window = new JFrame("Test Rendering");
window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
window.add(gt);
window.setLocationRelativeTo(null);
window.setPreferredSize(new Dimension(600, 400));
window.pack();
window.setVisible(true);
请查看以了解更多详细信息

永远不要使用
getGraphics
尝试进行自定义绘制,这不是Swing中绘制的工作方式

如果你真的有兴趣知道绘画是如何工作的,看看和了解更多细节


您可能希望通读,这将使人们更容易阅读您的代码,您也更容易阅读其他人的代码

请详细说明第50行是什么。阅读NulpPoExtExcExts这里:一个想法:考虑阅读教程或两个摆动图形之前猜测如何做到这一点。代码中存在的问题表明您尚未完成这一重要步骤。这个链接会让你开始。看看和Swing使用的是被动渲染引擎,虽然你可以向渲染引擎提出“建议”,但最终你对渲染过程不负责任
getGraphics
不是Swing中绘画的工作方式,它可以返回
null
。您可能还想看看
GraphicsTest gt = new GraphicsTest();

try {
    image = ImageIO.read(new File("Grap/roby.png"));
    I.add(new JLabel(new ImageIcon(image));
} catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}

JFrame window = new JFrame("Test Rendering");
window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
window.add(gt);
window.setLocationRelativeTo(null);
window.setPreferredSize(new Dimension(600, 400));
window.pack();
window.setVisible(true);