如何用简单Java语句设置AWT Frame为全屏?能否自动实现全屏?
AWT Frame 全屏设置问题解答
1. 用一条简单语句设置AWT Frame为全屏
直接用这条语句就能实现真正的全屏(隐藏标题栏、边框,完全占据整个屏幕):
GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice().setFullScreenWindow(yourFrameInstance);
这里的yourFrameInstance就是你创建的Frame对象,这条语句会直接获取系统默认的屏幕设备,然后将你的Frame设置为该设备的全屏窗口。
2. 让Frame自动设置为全屏(完全可行!)
当然可以让Frame启动后自动进入全屏状态,给你两种常用的实现方式:
方式一:在Frame构造函数中直接触发全屏
把全屏逻辑写在Frame的构造函数里,窗口创建完成后会自动进入全屏:
import java.awt.Frame; import java.awt.GraphicsEnvironment; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; public class AutoFullScreenFrame extends Frame { public AutoFullScreenFrame() { setTitle("自动全屏演示"); // 核心:窗口初始化时直接设置全屏 GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice().setFullScreenWindow(this); // 添加窗口关闭的处理逻辑 addWindowListener(new WindowAdapter() { @Override public void windowClosing(WindowEvent e) { dispose(); System.exit(0); } }); } public static void main(String[] args) { new AutoFullScreenFrame().setVisible(true); } }
方式二:通过窗口打开事件延迟触发全屏
如果你希望窗口先以普通大小显示,等完全初始化后再切换到全屏,可以监听windowOpened事件:
import java.awt.Frame; import java.awt.GraphicsEnvironment; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; public class AutoFullScreenFrame extends Frame { public AutoFullScreenFrame() { setTitle("延迟全屏演示"); setSize(800, 600); setLocationRelativeTo(null); // 让窗口先居中显示 addWindowListener(new WindowAdapter() { @Override public void windowOpened(WindowEvent e) { // 窗口完全打开后自动切换到全屏 GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice().setFullScreenWindow(AutoFullScreenFrame.this); } @Override public void windowClosing(WindowEvent e) { dispose(); System.exit(0); } }); } public static void main(String[] args) { new AutoFullScreenFrame().setVisible(true); } }
额外小技巧:添加退出全屏的快捷键
可以给窗口加个ESC键退出全屏的逻辑,提升用户体验:
import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; // 在Frame构造函数中添加这段代码 addKeyListener(new KeyAdapter() { @Override public void keyPressed(KeyEvent e) { if (e.getKeyCode() == KeyEvent.VK_ESCAPE) { // 退出全屏,恢复普通窗口模式 GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice().setFullScreenWindow(null); setSize(800, 600); setLocationRelativeTo(null); } } });
内容的提问来源于stack exchange,提问作者Jokniserous
相关产品推荐
相关产品推荐

