17

我必须阅读本机操作系统的高对比度模式,并且必须在我的产品上应用这些设置。现在对于 Windows,我做了这样的事情:

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

这适用于 Windows,但我需要桌面属性来读取 linux 高对比度设置。谁能告诉我 linux 的桌面属性是什么?

4

1 回答 1

2

我认为无论您是否使用 Java,都没有很好的方法来检查 Linux 中的高对比度模式(X11 本身没有高对比度功能,Linux 有各种各样的 UI 框架,每个框架都可能以自己的方式实现高对比度)。

严格来说,您在 Windows 中也会遇到很多问题(请参见此处此处)。

有两种可能的选择来解决这个问题:在你的 UI 中使用SystemColor类(如果这正是你所需要的)或使用同一个类来分析当前前景色和背景色之间的对比度(如果你需要知道是否系统颜色具有高对比度)。您也可以检查系统主题名称,但这是很不可靠的方法。

于 2012-05-30T08:04:30.507 回答