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

问题描述 投票:0回答:3

使用 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参见https://bugs.java.com/bugdatabase/view_bug?bug_id=6434148 - 似乎是一个JDK错误。有什么已知的解决方法吗?错误输入页面上没有列出任何内容。

java swing jsplitpane
3个回答
2
投票

Java Bug Database 中进行一些搜索后,这看起来可能是一个仅在 JDK 6 中修复的 JDK bug。

参见 JDK-6434148:运行 SwingSet2 演示时抛出 ClassCastException


1
投票

当我升级 java 版本和 db Visualizer 并支持 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


-1
投票
java.lang.ClassCastException: javax.swing.KeyStroke cannot be cast to java.lang.Comparable....

如果在 dbviz 中安装 java 7 后出现上述错误 然后添加环境变量,例如: 'DBVIS_JAVA_HOME' 作为'变量名'和java路径 对于前。 “C:\SWDTOOLS\IBM\RAD85 Untimes ase_v7\java"

© www.soinside.com 2019 - 2024. All rights reserved.