我有一段时间遇到问题,我想出了如何解决它,但现在我想知道为什么我的解决方案有效。 GraphicsDevice.setDisplayMode()
方法总是在我的Linux系统上抛出IllegalArgumentException
,因此为了解决这个问题,我使用DisplayMode
方法检查了每个GraphicsDevice.getDisplayModes()
。我注意到位深度(由.getBitDepth()
方法返回)始终等于-1
。当我将位深度参数更改为-1
时,IllegalArgumentException
已解决。但是-1
意味着什么,肯定在任何系统上都不会有-1
的深度。这是否意味着我的系统不允许(Java)应用程序更改应用程序内的颜色位深度?
PS。 我运行Ubuntu 12.04 LTS
答案 0 :(得分:3)
getBitDepth()
的文档说:
以像素为单位返回显示的位深度。这可能是 BIT_DEPTH_MULTI,如果此显示中支持多个位深度 模式。
如果您查看constant field values的java.awt.DisplayMode,那么您会找到
Modifier and Type Constant Field Value
public static final int BIT_DEPTH_MULTI -1
所以-1
意味着支持多个位深度......