【发布时间】:2015-05-07 13:04:39
【问题描述】:
我正在开发应用程序,并且正在使用 Swing 制作 GUI。我希望我的应用程序是全屏的。我可以轻松设置窗口的大小,但是我无法使应用程序真正全屏(IE 带有苹果菜单栏和停靠栏隐藏)。我在网上找到的所有答案似乎都不适合我。我是 Java 新手,因此不胜感激。
frame = new JFrame("Test");
frame.setTitle("Test");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JLabel emptyLabel = new JLabel("");
Dimension dimension = Toolkit.getDefaultToolkit().getScreenSize();
frame.getContentPane().add(emptyLabel, BorderLayout.CENTER);
frame.setSize((int)dimension.getWidth(), (int)dimension.getHeight());
int x = (int) ((dimension.getWidth() - frame.getWidth()) / 2); // X center
int y = (int) ((dimension.getHeight() - frame.getHeight()) / 2); //Y center
frame.setLocation(x, y); //Set Frame Location
frame.setResizable(false); //Frame is not resizable
frame.setUndecorated(true); //No decoration for the frame
frame.setAlwaysOnTop(true);
frame.setVisible(true); //Make visible
【问题讨论】:
-
Mac OS 的全屏支持可以(或至少可以)使用this 和this 之类的东西来实现,这将为用户提供他们通常期望的体验。否则需要使用 Java API 提供的Full screen exclusive mode
-
“我在网上找到的所有答案似乎都不适合我” - 也许您想提供一个对您不起作用的例子为什么
-
@MadProgrammer 我实际上尝试了您链接我的第一个答案,但它引发了一些错误。我刚试了第二个。我添加了这段代码:
GraphicsEnvironment ge = GraphicsEnvironment .getLocalGraphicsEnvironment(); GraphicsDevice myDevice = ge.getDefaultScreenDevice(); myDevice.setFullScreenWindow(frame);,它起作用了 -
请记住,第一个示例仅适用于 MacOS ;)
标签: java macos swing jframe fullscreen