繁体   English   中英

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

[英]Getting java.lang.ClassCastException: javax.swing.KeyStroke when creating a 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 错误。 任何已知的解决方法? 错误条目页面上未列出任何内容。

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

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

当我升级 java verion 和 db Visualizer dint support 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

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

如果在 dbviz 中安装 java 7 后遇到上述错误,请添加环境变量,例如:“DBVIS_JAVA_HOME”作为“变量名”和 java 路径,例如例如。 “C:\\SWDTOOLS\\IBM\\RAD85\\runtimes\\base_v7\\java”

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM