1

我正在编写一个使用 Substance 外观和感觉以及 JColorChooser 的应用程序。这适用于 Java 6,但在尝试使用 Java 7 时,它确实不是 JColorChooser 的:

java.lang.NullPointerException
at org.pushingpixels.substance.internal.ui.SubstanceListUI$SubstanceListSelectionListener$1.run(SubstanceListUI.java:135)

我猜这与 Java 7 中引入的新 JColorChooser 有关,并且 Substance 在某种程度上与当前的 JColorChooser 相关联。但是,除了编写我自己的颜色选择器之外,是否有任何人都知道的解决这个问题的好方法?我怀疑(希望)内容会在适当的时候更新以解决这个问题,但我想在 Java 7 发布之前尝试一下 Java 7 早期版本中的一些新特性。

我不知何故怀疑这个问题的答案是否定的,但如果某处有快速修复/补丁(我找不到)它会很有用!

4

1 回答 1

1

这是“Bug 兼容性”中的一项有趣研究。如果颜色设置为 null 并且您尝试从颜色选择器中获取颜色,则会导致 NullPointerException。Kirill 预料到了这一点,并将其困在了 try/catch 块中。但是,在 Java 7 中,它们改为从该方法返回 null 而不是抛出 NPE。

大约有三个代码片段需要更改:

https://github.com/Insubstantial/insubstantial/commit/0f01ae676c6f56d6879862a911ad03caeafabc52

在接下来的一周左右,我将发布我的第一个 insubstantial 发行版,其中将包含此修复。

于 2011-04-01T04:20:40.883 回答