Java屏幕分辨率变化
问题描述:
我正在Youtube上关注新游戏在Java中游戏开发的一系列教程。我处于可以制作全屏窗口的位置,但分辨率拒绝将其调整为800x600。我已经测试过vc,一个GraphicsEnvironment.getDefaultScreenDevice对象,以及dm,一个DisplayMode,并且它们似乎不是问题。我正在运行雪豹。有任何想法吗?Java屏幕分辨率变化
if(dm != null && vc.isDisplayChangeSupported()){
try{
vc.setDisplayMode(dm);
System.out.println("Display mode set");
}catch(Exception ex){System.out.println("Despite the vc saying it is display change supported and the DM is not null, something went wrong");}
}
}
答
将此代码添加到您的Core.java(或GameClient.java)类中。问题可能是您没有将所需的DM []参数传递给ScreenManager.java类。
private static final DisplayMode modes[] = { //common monitor DMs
new DisplayMode(1366,768,32, DisplayMode.REFRESH_RATE_UNKNOWN), //1366x768px w/32-bit depth
new DisplayMode(1366,768,24, DisplayMode.REFRESH_RATE_UNKNOWN), // ' w/24-bit depth
new DisplayMode(1366,768,16, DisplayMode.REFRESH_RATE_UNKNOWN), // ' w/16-bit depth
new DisplayMode(800,600,32, DisplayMode.REFRESH_RATE_UNKNOWN), //800x600px w/32-bit depth
new DisplayMode(800,600,24, DisplayMode.REFRESH_RATE_UNKNOWN), // ' w/24-bit depth
new DisplayMode(800,600,16, DisplayMode.REFRESH_RATE_UNKNOWN), // ' w/16-bit depth
new DisplayMode(640,480,32, DisplayMode.REFRESH_RATE_UNKNOWN), //640x480px w/32-bit depth
new DisplayMode(640,480,24, DisplayMode.REFRESH_RATE_UNKNOWN), // ' w/24-bit depth
new DisplayMode(640,480,16, DisplayMode.REFRESH_RATE_UNKNOWN), // ' w/16-bit depth
};
我假设的错误是你的公共无效setFullScreen(DISPLAYMODE DM)方法。在这种情况下,该方法的完整语法是:
注意到这是张贴后有轻度坏死员额。 Aaahh ...
当这段代码执行时你会得到一个异常吗?如果是这样,请尝试使用'ex.getMessage()'或'ex.printStackTrace()'打印错误消息' – 2012-02-13 04:26:07
类似的代码适用于Leopard。这可能有助于编辑您的问题,以包含显示您描述的问题的[sscce](http://sscce.org/)。 – trashgod 2012-02-13 04:56:02
@Hunter McMillen:不,我没有收到任何错误消息。抱歉。 – 2012-02-13 05:11:49