什么是Linux的getDesktopProperty()?

时间:2011-07-25 11:36:42

标签: java linux high-contrast

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

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

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

1 个答案:

答案 0 :(得分:1)

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

严格来说,您在Windows中也会遇到一些问题(请参阅herehere)。

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