Pregunta

Tengo que leer el modo de alto contraste del sistema operativo nativo y tengo que aplicar la configuración de mi producto. Ahora, para Windows, he hecho algo como esto:

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

Esto funciona bien para Windows, pero necesito la propiedad de escritorio para leer la configuración de Linux High Contrast. ¿Alguien puede decirme cuál sería la propiedad de escritorio para Linux?

¿Fue útil?

Solución

Creo que no hay un buen método para verificar el modo de alto contraste en Linux siempre que use Java o no (X11 en sí no tiene una característica de alto contraste y Linux tiene una gran variedad de marcos de interfaz de usuario y cada uno de ellos puede implementar un alto contraste a su propio camino. ).

Estrictamente hablando, tendrás un montón de problemas con esto en Windows también (ver aquí, o aquí).

Hay dos opciones posibles para resolver el caso: solo use los colores del sistema en su interfaz de usuario usando Systemcolor Clase (si eso es justo lo que necesita) o use la misma clase para analizar un contraste entre los colores actuales de primer plano y fondo (si necesita saber si los colores del sistema son de alto contraste). También puede verificar el nombre del tema del sistema, pero es un método bastante poco confiable.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top