Что будет Getdesktopproperty () для Linux?
-
25-10-2019 - |
Вопрос
Я должен прочитать высокий контрастный режим нативной ОС и применить настройки на моем продукте. Теперь для 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 Класс (если это именно то, что вам нужно) или используйте один и тот же класс для анализа контраста между текущим передним и фоновым цветом (если вам нужно знать, являются ли цвета системы высоким контрастом). Вы также можете проверить имя темы системы, но это довольно ненадежный метод.