1

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

PS。我运行 Ubuntu 12.04 LTS

4

1 回答 1

3

文档getBitDepth()说:

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

如果您查看 java.awt.DisplayMode 的常量字段,您会发现

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

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

于 2013-06-04T07:26:32.483 回答