我正在尝试在 JFrame swing java 中实现外观,它抛出以下异常
"java.lang.ClassCastException:javax.swing.DebugGraphics cannot be cast to java.awt.Graphics2D "
它适用于某些形式。上述错误的原因是什么
我正在尝试在 JFrame swing java 中实现外观,它抛出以下异常
"java.lang.ClassCastException:javax.swing.DebugGraphics cannot be cast to java.awt.Graphics2D "
它适用于某些形式。上述错误的原因是什么
尽管几乎没有整个上下文,我还是要指出一些事情。
从 Java 1.4 左右开始,所有在, ,之间Graphics
传递的对象实际上都变成了对象。这被广泛认为是事实(== )。paint
paintComponent
paintBackground
paintChildren
Graphics2D
Graphics
Graphics2D
但是,您的某些组件似乎正在使用
setDebugGraphicsOptions(int)。这确实使以前的“事实”不再正确。只要您有一个健壮的实现(例如instanceof Graphics2D
检查),您就会注意到,例如,RenderingHints
(仅在 上可用Graphics2D
)在使用调试图形时不再适用。否则,它将因您得到的确切异常而失败。
看起来您的所有代码都假定Graphics
是Graphics2D
. 所以你要么停止使用图形调试选项,要么手动修复所有被覆盖paintComponent
的方法。