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

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

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

有帮助吗?

解决方案

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

严格来说,您在窗口中也有很多问题(请参阅 这里, , 或者 这里).

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top