gpt4 book ai didi

Java AWT/Swing Graphics - 为什么 getGraphics() 不能作为字段(实例变量)?

转载 作者:行者123 更新时间:2023-12-02 05:55:08 25 4
gpt4 key购买 nike

为什么在将 getGraphics() 设为不同 MouseListener 方法(mousedragged、mousereleased 等)使用的实例变量时会出现 NullPointerException,但当您将 getGraphics() 保存为这些方法中的局部变量时它却可以正常工作?

最佳答案

Why do you get a NullPointerException when making getGraphics() an instance variable

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

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

自定义绘制应该在 JPanel(或 JComponent)的 paintComponent() 方法中完成。阅读 Swing 教程中关于 Custom Painting 的部分了解更多信息和示例。

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

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com