В компании, где я работаю, мы получили класс от sun.awt.WToolkit
, чтобы изменить некоторые цвета, позвонив по номеру setDesktopProperty()
. И это прекрасно работало годами. Но теперь в JDK 8 WToolkit является окончательным и не может быть подклассифицирован. Легкий выход может вызвать неприятное отражение и вызвать защищенный метод, хотя я не уверен, что это не приведет к исключению безопасности или чем-то подобному.Можно ли изменить любой вид рабочего стола Windows Desktop и почувствовать?
Правильный выход - это изменить эти цвета с помощью Look and Feel. Oracle в Windows Desktop Property Support утверждает, что
программам не нужно напрямую обращаться к этим свойствам; внешний вид Windows автоматически считывает и интерпретирует эти свойства, чтобы обеспечить надлежащие визуальные эффекты и поведение компонентов.
Но это ничего не говорит о настройке этих свойств посредством модификаций LaF и, конечно же, делает UIManager.put("win.3d.shadowColor", Color.gray);
, как указано в this doc, недействительно.
Так что мой вопрос: можно ли изменить свойства рабочего стола Windows путем подклассификации существующего Look and Feel, или я должен прибегнуть к какой-то взлому?
Вопрос: Вы, кажется, использует System L & F и исправлен цвет через этот трюк? Нимбус (или любой другой) L & F не должен представлять никаких проблем. Могут ли помочь константы SystemColor? –
@JoopEggen Я использую Windows LaF. Я не вижу никакого использования SystemColor в этой конкретной проблеме. Не могли бы вы рассказать? –
Почему 'UIManager.put' неэффективен? – Holger