У меня есть Java-приложение с пользовательским интерфейсом, в котором пользователь может переключаться между светлым и темным режимом. У нас есть всплывающее меню, вызываемое правой кнопкой мыши, которое наследуется от класса JPopupMenu. Первое, что мы добавим в меню - это JLabel:
add( new JLabel( "<html><i> " + field.desc + "</i><br/>field = " + field.getName() + "</html>" ) );
Теперь мы изменили L & F для JLabels, и они правильно отображаются в нескольких местах в стилях приложения. Мы изменили:
Label.background
Label.foreground
Кроме того, L & F для MenuItems также был изменен с помощью:
PopupMenu.border
PopupMenu.foreground
PopupMenu.background
Для чего бы то ни было, мы также изменили аналогичные свойства в MenuItems.
Проблема в том, что метка, которая появляется во всплывающем меню, кажется, не соответствует цвету фона. Цвет переднего плана изменяется при переключении между светлым и темным режимом, но цвет фона - нет. Я сделал снимок экрана и уронил цвет, заданный для цвета фона, и не смог найти совпадения нигде в наших настройках L & F, что, по-видимому, говорит о том, что он просто использовал L & F по умолчанию (возможно, Windows).
Возможно, это ошибка? Или я не устанавливаю какое-либо свойство L & F, которым я должен быть? Кажется, я не смог найти никого в сфере Google с такой же проблемой, поэтому любая помощь будет признательна.