在创建JSplitPane时获取java.lang.ClassCastException:javax.swing.KeyStroke

时间:2008-09-22 09:06:08

标签: java swing jsplitpane

在使用JDK 1.5.0_08初始化JSplitPane时,我得到一个随机不可重现的错误。请注意,每次都不会发生这种情况,但大约80%的时间都会发生:

Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: javax.swing.KeyStroke
at java.util.TreeMap.compare(TreeMap.java:1093)
at java.util.TreeMap.put(TreeMap.java:465)
at java.util.TreeSet.add(TreeSet.java:210)
at javax.swing.plaf.basic.BasicSplitPaneUI.installDefaults(BasicSplitPaneUI.java:364)
at javax.swing.plaf.basic.BasicSplitPaneUI.installUI(BasicSplitPaneUI.java:300)
at javax.swing.JComponent.setUI(JComponent.java:652)
at javax.swing.JSplitPane.setUI(JSplitPane.java:350)
at javax.swing.JSplitPane.updateUI(JSplitPane.java:378)
at javax.swing.JSplitPane.<init>(JSplitPane.java:332)
at javax.swing.JSplitPane.<init>(JSplitPane.java:287)
    ...

思考?我已经尝试清理和重建我的项目,以尽量减少类文件损坏的可能性。

编辑#1 请参阅http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6434148 - 似乎是一个JDK错误。任何已知的解决方法?没有列在错误输入页面上。

3 个答案:

答案 0 :(得分:2)

在bugs.sun.com上进行一些Google搜索后,看起来这可能是一个只在JDK 6中修复的JDK错误。

请参阅http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6434148

答案 1 :(得分:1)

当我升级了java版本和db visualizer dint支持jre7时,抛出了同样的异常。从那以后 在适用于Windows和Linux / UNIX的DbVisualizer 8.0中引入了对Java 7的支持。

在DbVisualizer 9.1中引入了对Mac OS X上的Java 7的支持。

所以对我有用的解决方案: 的在Windows / Unix / Linux中:     在DbVisualizer安装目录中有一个.install4j目录,     在此目录中创建名为pref_jre.cfg的文件(如果它尚未存在),     在文本编辑器中打开文件,     将完整路径添加到要使用的Java安装的根目录。     示例:C:\ Program Files \ Java \ jre7

答案 2 :(得分:-1)

java.lang.ClassCastException: javax.swing.KeyStroke cannot be cast to java.lang.Comparable....

如果在dbviz中安装java 7后出现上述错误 然后添加环境变量,如: &#39; DBVIS_JAVA_HOME&#39;作为变量名称&#39;和java路径一样 对于前&#34; C:\ SWDTOOLS \ IBM \ RAD85 \运行时\ base_v7 \的java&#34;