В настоящее время я работаю над набором пользовательских элементов управления для продукта компании, в которой я работаю. Для этого я расширяю множество элементов управления Swing, а также переопределяю множество paint
методов.
Чтобы поддерживать согласованную цветовую схему, я получаю цвета для моих paint
, setBackground
и др. Методов, используя UIManager.getColor
.
Это было прекрасно, пока мы не заметили, что Nimbus LookAndFeel, который поставляется с текущими версиями JRE, использует совершенно разные цветовые клавиши, поэтому многие вещи выглядят совершенно неуместно.
Например, в то время как все остальные стоковые LookAndFeels (Metal, Windows Classic,Windows, CDE / Motif, GTK) определили ключ «текст» как яркий фон для текстов и «textText» как соответствующий цвет переднего плана, «текст» в Nimbus на самом деле является черным цветом переднего плана, а стандартный цвет фона текста, по-видимому, не существует.
"TextField.background" будет работать, но это для инстаКроме того, не существует для Windows LookAndFeels.
Полагаю, вы уже столкнулись с проблемой.Я не хочу поддерживать набор цветовых клавиш для каждого LAF, который знает, какие LAF будут добавлены в будущем и которые моя компания может решить использовать.
Простым решением было бы избавитьсяNimbus, конечно, но по понятным причинам моему боссу вообще не нравится эта идея, кроме того, Nimbus является частью JRE в наши дни и должна быть поддержана.
Поэтому мне интересно, есть ли какая-либо стандартизированный способ получения LAF-зависимых цветов, например, «текстовый фон / передний план», «выделенный текст bg / fg» и т. Д .?