JColorChooser с внешним видом вещества, Java 7

Я пишу приложение, которое использует внешний вид вещества вместе с JColorChooser. Это прекрасно работает с Java 6, но при тестировании с Java 7 это на самом деле не так, как у JColorChooser:

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

Я предполагаю, что это связано с новым JColorChooser, который представлен в Java 7, и что Вещество каким-то образом связано с текущим. Однако, кроме написания моего собственного средства выбора цвета, есть ли хороший способ обойти эту проблему, о которой кто-нибудь знает? Я подозреваю (надеюсь), что вещество будет обновлено в свое время, чтобы решить эту проблему, но я хотел бы поиграть с некоторыми новыми функциями в ранних сборках Java 7, прежде чем он будет выпущен.

Я почему-то подозреваю, что ответ на этот вопрос - нет, но если где-то есть быстрое исправление / патч (я не смог его найти), это было бы полезно!

1 ответ

Решение

Это интересное исследование в разделе "Совместимость ошибок". Если для цвета установлено значение null и вы пытаетесь получить цвет из средства выбора цвета, возникает исключение NullPointerException. Кирилл ожидал этого и поймал в ловушку в блоке try / catch. Однако в Java 7 они вместо этого возвращают нуль из этого метода, а не бросают NPE.

Существует около трех фрагментов кода, которые необходимо изменить:

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

Примерно на следующей неделе я опубликую свой первый дистрибутив, который будет включать это исправление.

Другие вопросы по тегам