java - 这个线程/绘制异常是关于什么的?

标签 java user-interface jframe

我正在玩一些我目前不太理解的东西,用于一个机器人上的 JAVA 项目,探索一个未知的领域(有效位置和阻塞位置的网格)。无论如何,我尝试改进基本的 GUI,我们给出了如何继续的示例,它是通过文本字段和各种 unicode 字符来表示 map 和机器人来完成的。我尝试通过重写绘制方法并在屏幕上绘制彩色矩形来表示 map 来实现此目的。当程序启动时,我会看到下面的运行时异常,但窗口会加载(尽管由于某种原因,顶部的 JButton 都是不可见的,直到我将鼠标悬停在它们上面),并且从那时起功能正常。

到目前为止,我是通过反复试验并使用我在网上找到的示例来实现这一点的,但我想这里有一些基本的东西我还没有掌握。

感谢您在这里给我的任何建议。

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    at Controller.paint(Controller.java:156)
    at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
    at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
    at javax.swing.RepaintManager.seqPaintDirtyRegions(Unknown Source)
    at javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(Unknow
n Source)
    at java.awt.event.InvocationEvent.dispatch(Unknown Source)
    at java.awt.EventQueue.dispatchEvent(Unknown Source)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.run(Unknown Source)
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    at Controller.paint(Controller.java:156)
    at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
    at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
    at javax.swing.RepaintManager.seqPaintDirtyRegions(Unknown Source)
    at javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(Unknow
n Source)
    at java.awt.event.InvocationEvent.dispatch(Unknown Source)
    at java.awt.EventQueue.dispatchEvent(Unknown Source)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.run(Unknown Source)

最佳答案

我建议您首先阅读 Swing tutorial 。它包含一个部分解释绘画是如何完成的。一方面,您应该重写 PaintComponent() 方法。从上面的错误看来,您的代码位于 Paint() 方法中。

要学习一些东西,你应该从小处开始,然后当你遇到问题时,你可以发布SSCCE显示问题。

关于java - 这个线程/绘制异常是关于什么的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1868292/

相关文章:

java - JFrame 组件的大小和位置

java - 在 JPanel 上居中 JButton

macos - 我可以阻止应用程序在 OS X 中获取焦点吗?

user-interface - 命令行SSH远程服务器管理器的UI客户端

java - SQLite 中的时间花在查询上还是 moveToNext 上?

java - JFrame 未全屏显示所有图像

Java - IF 语句仅返回 Else 子句

java - GC 不会从weakhashmap 中删除对象

java - Java 方法中的动态返回类型

java - JDBC MySql where 子句中的绑定(bind)变量语法错误