1

我正在尝试在 JFrame swing java 中实现外观,它抛出以下异常

"java.lang.ClassCastException:javax.swing.DebugGraphics cannot be cast to java.awt.Graphics2D "

它适用于某些形式。上述错误的原因是什么

4

1 回答 1

2

尽管几乎没有整个上下文,我还是要指出一些事情。

从 Java 1.4 左右开始,所有在, ,之间Graphics传递的对象实际上都变成了对象。这被广泛认为是事实(== )。paintpaintComponentpaintBackgroundpaintChildrenGraphics2DGraphicsGraphics2D

但是,您的某些组件似乎正在使用 setDebugGraphicsOptions(int)。这确实使以前的“事实”不再正确。只要您有一个健壮的实现(例如instanceof Graphics2D检查),您就会注意到,例如,RenderingHints(仅在 上可用Graphics2D)在使用调试图形时不再适用。否则,它将因您得到的确切异常而失败。

看起来您的所有代码都假定GraphicsGraphics2D. 所以你要么停止使用图形调试选项,要么手动修复所有被覆盖paintComponent的方法。

于 2013-09-10T06:21:38.150 回答