Вопрос

Я должен прочитать высокий контрастный режим нативной ОС и применить настройки на моем продукте. Теперь для Windows я сделал что -то подобное:

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

Это отлично подходит для Windows, но мне нужно свойство настольного компьютера, чтобы прочитать настройки Linux High Contrast. Кто -нибудь может сказать мне, каким будет свойство рабочего стола для Linux?

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

Решение

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

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

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

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