我正在尝试使用AWT在Java中制作棋盘游戏.我想在全屏独占模式下运行此游戏.但是paint()方法不起作用.
问题是我想在全屏框架上加载并绘制图像,但是传统的paint()方法不允许我这样做.
解决方法:
下面的示例将使用java.awt.Frame在默认屏幕设备上全屏显示.
> Lesson: Full-Screen Exclusive Mode API(链接到oracle).
public static void main(String[] args) throws IOException {
Frame frame = new Frame("Test");
frame.setUndecorated(true);
frame.add(new Component() {
BufferedImage img = ImageIO.read(new URL("http://upload.wikimedia.org/"+
"wikipedia/en/2/24/Lenna.png"));
@Override
public void paint(Graphics g) {
super.paint(g);
g.drawImage(img, 0, 0, getWidth(), getHeight(), this);
}
});
GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
GraphicsDevice gs = ge.getDefaultScreenDevice();
gs.setFullScreenWindow(frame);
frame.validate();
}
您也可以将上面的示例与swing一起使用(只需确保实现paintComponent(Graphics g)方法而不是paint).