如何在java Frames中应用JTatto的LookAndFeel

时间:2013-09-10 06:06:52

标签: java swing themes look-and-feel classcastexception

我试图在JFrame swing java中实现外观,它抛出异常

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

它在某些形式上工作。上述错误的原因是什么

1 个答案:

答案 0 :(得分:2)

尽管缺少整个背景,但我有必要指出。

从Java 1.4开始,所有Graphics个对象都在paintpaintComponentpaintBackgroundpaintChildren之间传递,事实上,{ {1}}个对象。这被广泛认为是事实(Graphics2D == Graphics)。

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

您的所有代码都会假定Graphics2DGraphics。因此,您必须停止使用图形调试选项,或手动修复所有被覆盖的Graphics2D方法。