Подтвердить что ты не робот

Что будет getDesktopProperty() для Linux?

Мне нужно прочитать режим высокой контрастности родных os и применить параметры к моему продукту. Теперь для окон я сделал что-то вроде этого:

 try {
       Toolkit toolkit = Toolkit.getDefaultToolkit();
       boolean highContrast = (Boolean)toolkit.getDesktopProperty("win.highContrast.on" );
 }catch(Exception e) {
 }

Это отлично работает для Windows, но мне нужно свойство desktop для чтения настроек высокой контрастности Linux. Может кто-нибудь, пожалуйста, скажите мне, что будет для десктопа для linux?

4b9b3361

Ответ 1

Я думаю, что нет хорошего метода проверки высококонтрастного режима в Linux при использовании Java или нет (у X11 нет высококонтрастной функции, а у Linux есть огромное разнообразие интерфейсов пользовательского интерфейса, и каждый из них может реализовать высокий контраст в это собственный путь).

Строго говоря, у вас тоже будет проблема с этим в Windows (см. здесь или здесь).

Существует два возможных варианта решения проблемы: просто используйте цвета системы в своем пользовательском интерфейсе, используя класс SystemColor (если это только то, что вы необходимо) или использовать один и тот же класс для анализа контраста между текущими цветами переднего плана и фоном (если вам нужно знать, являются ли цвета системы контрастными). Вы также можете проверить имя системной темы, но это довольно ненадежный метод.