我正在测试我公司已建立的 Swing 应用程序的可访问性问题。在我的电脑上启用高对比度模式后,该应用程序的某些部分可以正确渲染(黑底白字),而某些部分则渲染错误(白底黑字)。
正确的部分是 native 组件(JButton、JLabel 等)和来自 JIDE 等的第三方组件。不正确的位是内部开发的自定义组件和渲染器,没有考虑高对比度模式。
显然,可以检测何时启用高对比度模式。我该怎么做?
最佳答案
事实证明,Java 1.4.1 中为此添加了 win.highContrast.on 属性。
public static void main(String[] args) {
Toolkit toolkit = Toolkit.getDefaultToolkit();
Boolean highContrast = (Boolean)toolkit.getDesktopProperty( "win.highContrast.on" );
}
这只适用于 Windows(因此有 win.
前缀)。在 Linux 和 Mac 上,highContrast
将为 null。首先进行平台检查或对 highContrast
进行空检查是最安全的。
关于java - 如何检测显示器是否处于高对比度模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1062711/