В Swing есть ли свойство, чтобы установить JList отключенный цвет переднего плана?

StackOverflow https://stackoverflow.com/questions/2276691

  •  21-09-2019
  •  | 
  •  

Вопрос

В Swing есть ли свойство, чтобы установить JList отключенный цвет переднего плана?

Я использую строитель GUI NetBeans и хочу добавить свойство в файл свойств ресурса, который устанавливает цвет текста в JLIST другому дефолту при отключении JLIST. Используя Nimbus LAF, для этого существует другой цвет, потому что текст серого, когда отключен, но черный при включении. Я просто не хочу, чтобы он был серым при отключении.

Стандартный цвет переднего плана просто.

Спасибо.

Это было полезно?

Решение

А DefaultListCellRenderer расширяется JLabel. Анкет В его getListRendererComponent метод, он устанавливает свое включенное состояние на основе состояния JList это передается.

Код для рисования отключен JLabel текст в BasicLabelUI Некоторые работают, чтобы нарисовать текст с эффектом тени. Во многих подклассах вы найдете код, который ищет "Label.disabledForeground" Собственность пользовательского интерфейса. Нимбус по умолчанию кажется, ищет "Label.disabledText".

У вас есть пара вариантов:

  1. Вы можете установить "Label.disabledText" собственность в UIManager, что сделает все JLabel экземпляры и подклассы которые отключены, чтобы взять на себя эту окраску.
  2. Вы можете создать пользовательский рендерер для вашего JList который проверяет включенное состояние JList А затем выполняет любой пользовательский код, который вы хотели бы, - или полностью опустите тест с включенным состоянием, если вы хотите, чтобы он выглядел одинаково независимо от его включенного состояния.

Я бы посоветовал вам использовать подход на заказ, так как трудно сказать, где изменение JLabel Собственность будет отображаться, так как этот класс используется в качестве сборочного блока во многих различных компонентах.

Другие советы

Если есть свойство для установки, то Uimanager по умолчанию Программа должна показать вам собственность, чтобы измениться. Я не вижу свойства для металла или Windows LAF, так что это может указывать на то, что это контролируется непосредственно в коде пользовательского интерфейса.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top