如何在Java中编写全屏模式?

时间:2008-09-26 12:10:47

标签: java graphics fullscreen

我希望我的应用程序具有全屏模式。最简单的方法是,我需要第三方库吗?或者JDK中是否有提供此功能的内容?

5 个答案:

答案 0 :(得分:23)

试试Full-Screen Exclusive Mode API。它是在1.4版的JDK中引入的。一些功能包括:

  
      
  • 全屏独占模式 - 允许您暂停窗口系统,以便可以直接在屏幕上完成绘图。
  •   
  • 显示模式 - 由大小(显示器的宽度和高度,以像素为单位),位深度(每像素的位数)和刷新率(监视器更新自身的频率)组成
  •   
  • 被动与主动渲染 - 使用paint方法在主事件循环上绘制是被动的,而在自己的线程中渲染是活动的。
  •   
  • 双缓冲和页面翻转 - 更流畅的绘图意味着更好的感知性能和更好的用户体验。
  •   
  • BufferStrategy和BufferCapabilities - 允许您绘制到曲面和组件的类,而无需知道所使用的缓冲区数量或用于显示它们的技术,并帮助您确定图形的功能设备
  •   

链接教程中有几个全屏独占模式示例。

答案 1 :(得分:3)

JFrame setUndecorated(true)方法

答案 2 :(得分:2)

当我为游戏提供全屏OpenGL用户界面时,我已经使用JOGL完成了这项工作。这很容易。我相信这个功能也被添加到了版本5的Java中,但是很久以前我忘记了怎么做(编辑:请参阅上面的答案)。

答案 3 :(得分:2)

使用此代码:

JFrame frame = new JFrame();
// set properties
frame.setSize(Toolkit.getDefaultToolkit().getScreenSize());
frame.setUndecorated(true);
frame.setVisible(true);

确保setUndecorated()出现在setVisible()之前,否则它无法正常工作。

答案 4 :(得分:1)

这实际上取决于您用来显示界面的内容,即AWT / Spring或OpenGL等。

Java有一个全屏独占模式API - see this tutorial from Sun