今天心血来潮写个Java swing 的程序,没想到编译通过后无法运行,显示:
///
Exception in thread "main" java.lang.ExceptionInInitializerError
at javax.swing.JPanel.updateUI(JPanel.java:109)
at javax.swing.JPanel.<init>(JPanel.java:69)
at javax.swing.JPanel.<init>(JPanel.java:92)
at javax.swing.JPanel.<init>(JPanel.java:100)
at javax.swing.JRootPane.createGlassPane(JRootPane.java:527)
at javax.swing.JRootPane.<init>(JRootPane.java:347)
at javax.swing.JFrame.createRootPane(JFrame.java:260)
at javax.swing.JFrame.frameInit(JFrame.java:241)
at javax.swing.JFrame.<init>(JFrame.java:208)
at Form.<init>(Calculator.java:13)
at Calculator.main(Calculator.java:33)
Caused by: java.lang.IllegalArgumentException: 90 incompatible with Text-specific LCD contrast key
at java.awt.RenderingHints.put(RenderingHints.java:1057)
at sun.awt.windows.WDesktopProperties.getDesktopAAHints(WDesktopProperties.java:338)
at sun.awt.windows.WToolkit.getDesktopAAHints(WToolkit.java:960)
at sun.awt.SunToolkit.getDesktopFontHints(SunToolkit.java:1849)
at sun.awt.windows.WDesktopProperties.setDesktopAAHints(WDesktopProperties.java:281)
at sun.awt.windows.WToolkit.initializeDesktopProperties(WToolkit.java:948)
at java.awt.Toolkit.getDesktopProperty(Toolkit.java:1734)
at javax.swing.UIManager.<clinit>(UIManager.java:384)
... 11 more
///
我的乖乖,这么多错误,而且开头一句是初始化错误,俺反复检查了程序,没有错啊!!!
到网上找了很长时间才发现一篇文章:
///
http://www.intellij.org.cn/bbs/viewtopic.php?p=208
我查找了一下,上面链接里的问题和你的问题极其相似,但是解决方法是设置电脑显示里的ClearType(说明你的程序应该是没问题的),估计你用的是液晶显示器,而且你显示器的ClearType设置有问题,他里面的解决方法原话是:
--实在是不知道怎么解决,就在idea的官方论坛上发帖求助。
IDEA的开发人员果然牛,一看就知道问题在哪里。
原来是我屏幕ClearType的设置值太低,从控制面板里重新运行一次ClearType Tuning,把字体明暗设置调高些(我原来设的是最暗)就可以了。---
后面还有一个关于此问题的回答链接(里面是全英文的):
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6503988
最后你查看一下关于ClearType的论述:
http://baike.baidu.com/view/755822.htm
忙了半天,希望能够帮到你,一块学习.
///
难 道真的是与ClearType冲突或者是不兼容了?我用的是XP,所以默认没有MS的ClearType的设置程序,不过我一直用windows优化大师 设置ClearType来着,可是我反复调整ClearType的参数,唯有把ClearType关闭或者是置为标准才可以运行swing程序,可是没有 ClearType,系统字体太"不堪入目"了.于是俺上网拖了个MS的ClearType设置工具下来,用其中的默认向导随便设置了一下, 嘿!swing程序真的可以使用了.
在这里真的不得不鄙视一下sun公司,既然你是为windows设计软件,怎么连windows里的 ClearType功能都不能很好的支持,至少也是兼容吧,哎sun公司在俺心中的形象大跌!还有那个windows优化大师里对ClearType的设 置功能也需要改进一下下,怎么人家MS的ClearType设置程序兼容性那么好,你优化大师的ClearType已设置就让swing程序挂掉了呢?真 是不敢用你了,哪天把什么别的程序再给俺搞挂了怎么办?
总之一句话,开发软件一定要注意兼容性、容错性、易用性,多为用户着想,别整天光想赚钱的说!!
文章来源:http://hi.baidu.com/suwnay/blog/item/0ace9b8b10e4e67a9f2fb46c.html