簡體   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