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

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

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

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

1 Ответ

4 голосов
/ 22 января 2012

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

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

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

...