为什么将getGraphics()用作不同的MouseListener方法(ousedragged,mousereleased等)使用的实例变量时会出现NullPointerException,但是当将getGraphics()保存为这些方法中的局部变量时,它工作得很好吗?

最佳答案

将getGraphics()设置为实例变量时,为什么会收到NullPointerException


可能是因为在调用getGraphics()方法时尚未初始化Graphics对象,因为该框尚不可见。

无论如何,您都不应该使用getGraphics()方法来获取Graphics对象,因为您所做的任何绘画都只是临时的,并且在Swing下次确定需要重新绘画组件时会丢失。

自定义绘画应在JPanel(或JComponent)的paintComponent()方法内完成。阅读有关Custom Painting的Swing教程中的部分,以获取更多信息和示例。

关于java - Java AWT/Swing Graphics-为什么不能将getGraphics()用作字段(实例变量)?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23174461/

10-10 02:36