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
Примерно на следующей неделе я опубликую свой первый дистрибутив, который будет включать это исправление.