我一直在关注由David Brackeen撰写的“开发Java游戏”一书,并在第2章讲授如何使用全屏模式。我遇到的问题是,当我去运行他的源代码时,我得到的只是一个白色屏幕。我花了几个小时,我相信它与Windows 7有关。Java中的FullScreenMode
感谢您的时间!
import java.awt.*;
import javax.swing.JFrame;
/**
The SimpleScreenManager class manages initializing and
displaying full screen graphics modes.
*/
public class SimpleScreenManager {
private GraphicsDevice device;
/**
Creates a new SimpleScreenManager object.
*/
public SimpleScreenManager() {
GraphicsEnvironment environment =
GraphicsEnvironment.getLocalGraphicsEnvironment();
device = environment.getDefaultScreenDevice();
}
/**
Enters full screen mode and changes the display mode.
*/
public void setFullScreen(DisplayMode displayMode,
JFrame window)
{
window.setUndecorated(true);
window.setResizable(false);
device.setFullScreenWindow(window);
if (displayMode != null &&
device.isDisplayChangeSupported())
{
try {
device.setDisplayMode(displayMode);
}
catch (IllegalArgumentException ex) {
// ignore - illegal mode for this device
}
}
}
/**
Returns the window currently used in full screen mode.
*/
public Window getFullScreenWindow() {
return device.getFullScreenWindow();
}
/**
Restores the screen's display mode.
*/
public void restoreScreen() {
Window window = device.getFullScreenWindow();
if (window != null) {
window.dispose();
}
device.setFullScreenWindow(null);
}
public static void main(String args[])
{
SimpleScreenManager t = new SimpleScreenManager();
try {
t.setFullScreen(new DisplayMode(1920, 1080, 64, 0), new JFrame());
Thread.sleep(2000);
}
catch (InterruptedException ex) { }
finally {
t.restoreScreen();
}
}
}
除非你的生活依赖于这一点,你可能希望避免对谁欠你什么人喊“救命ASAP'。 – MByD
请尝试谷歌。你可能会得到其他工作解决方案 –
这段代码已经过时了,请不要在EventDispashThread中使用Thread.sleep(int),有趣的是 – mKorbel