java - 如何检测显示器是否处于高对比度模式?

标签 java swing accessibility high-contrast

我正在测试我公司已建立的 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/

相关文章:

java - 数字格式异常 :Invalid lng

java - 以动态方式在 JScrollPane 上插入面板

javascript - 标题必须有内容,并且内容必须可由屏幕阅读器访问

ios - 如何使任意 UIAccessibilityElement 的行为类似于 VoiceOver 的 UISwitch?

java - 使用 KeyEvent(KeyPressed、KeyTyped 等)将字符附加到 JTextArea

ios - iOS 上的可访问时间标签

java - 在 JPanel 与 JComponent 中绘图

java - 如何在使用 Glide 加载之前解密图像

java - 如何创建一个 java.sql.Array 字符串?

java - 在 Clojure 中扩展 Java Swing 类