我必须阅读本地操作系统的高对比度模式,并且必须将设置应用于我的产品。 现在的窗户我做了这样的事情:
try { Toolkit toolkit = Toolkit.getDefaultToolkit(); boolean highContrast = (Boolean)toolkit.getDesktopProperty("win.highContrast.on" ); }catch(Exception e) { }
这适用于Windows,但我需要桌面属性来读取Linux高对比度设置。 任何人都可以告诉我什么是Linux的桌面属性?
我认为,无论何时使用Java,在Linux中检查高对比度模式都没有什么好方法(X11本身没有高对比度功能,而Linux有各种各样的UI框架,并且每个都可以以自己的方式实现高对比度)。
严格来说,在Windows中也会遇到一些问题(请参见这里或这里 )。
有两种可能的选择来解决这种情况:只需使用系统颜色在您的用户界面使用SystemColor类(如果这正是您所需要的)或使用相同的类来分析当前的前景和背景颜色之间的对比(如果您需要知道是否系统颜色高对比度)。 您也可以检查系统主题名称,但这是相当不可靠的方法。