什么是Linux的getDesktopProperty()?

Reu*_*ben 17 java linux high-contrast

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

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

这适用于Windows,但我需要桌面属性来读取Linux高对比度设置.任何人都可以告诉我什么是Linux的桌面属性?

Kon*_*hov 2

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

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

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