Java`DisplayMode在Linux上的位深度是`-1`

时间:2013-06-04 07:09:24

标签: java linux graphics

我有一段时间遇到问题,我想出了如何解决它,但现在我想知道为什么我的解决方案有效。 GraphicsDevice.setDisplayMode()方法总是在我的Linux系统上抛出IllegalArgumentException,因此为了解决这个问题,我使用DisplayMode方法检查了每个GraphicsDevice.getDisplayModes()。我注意到位深度(由.getBitDepth()方法返回)始终等于-1。当我将位深度参数更改为-1时,IllegalArgumentException已解决。但是-1意味着什么,肯定在任何系统上都不会有-1的深度。这是否意味着我的系统不允许(Java)应用程序更改应用程序内的颜色位深度?

PS。 我运行Ubuntu 12.04 LTS

1 个答案:

答案 0 :(得分:3)

getBitDepth()的文档说:

  

以像素为单位返回显示的位深度。这可能是   BIT_DEPTH_MULTI,如果此显示中支持多个位深度   模式。

如果您查看constant field valuesjava.awt.DisplayMode,那么您会找到

Modifier and Type          Constant Field          Value
public static final int    BIT_DEPTH_MULTI         -1 

所以-1意味着支持多个位深度......