Как я могу изменить интерфейс всех компонентов определенного типа?

Как я могу установить пользовательский интерфейс для всех компонентов в моем приложении, не ссылаясь на каждый из них, используя component.setUI(...);?

Например, у меня есть несколько пользовательских JScrollbars на протяжении всей моей программы,
и когда вы переключаетесь на другую тему, я должен сбросить все пользовательские интерфейсы следующим образом: scrollPane.getVerticalScrollBar().setUI(new CustomScrollBarUI());

Я бы предпочел, чтобы при смене темы не приходилось искать каждый отдельно. Есть ли способ сделать это?

1 ответ

Решение

Вы можете изменить UIDefaults в начале вашей программы:

UIDefaults uiDefaults = UIManager.getDefaults();
uiDefaults.put("ScrollBarUI", new CustomScrollBarUI());

См. Также Изменение настроек по умолчанию для пользовательского интерфейса в Java: класс UIDefaults.

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