【发布时间】:2014-05-15 20:35:02
【问题描述】:
我(仍然)是 Java 的初学者,我创建了一个包含主框架的小软件。
我需要覆盖我的软件后面的所有桌面,例如 Windows 98 安装屏幕:(我需要黑色和蓝色屏幕,覆盖所有任务栏等)。
为了做到这一点,我使用了全屏显示的 GraphicsDevice。这正是我所需要的:
public class Fond_noir extends JFrame { private boolean isFullScreen = false; private GraphicsDevice device; public Fond_noir(int etat) { GraphicsEnvironment env = GraphicsEnvironment .getLocalGraphicsEnvironment(); this.device = env.getDefaultScreenDevice(); initFullScreen(etat); } private void initFullScreen(int etat) { isFullScreen = device.isFullScreenSupported(); if (etat==0) { setDefaultCloseOperation(DO_NOTHING_ON_CLOSE); } if (etat==1) { setDefaultCloseOperation(DISPOSE_ON_CLOSE); } setUndecorated(isFullScreen); setResizable(!isFullScreen); if (isFullScreen) { // Full-screen mode device.setFullScreenWindow(this); validate(); } else { // Windowed mode this.setExtendedState(MAXIMIZED_BOTH); this.setVisible(true); } } }
然后,我在其他地方的 main 中调用这个方法,(这没有问题):
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
new Fond_noir(0);
Choix_Langue inst = new Choix_Langue(); // main frame
inst.setLocationRelativeTo(null);
inst.setVisible(true);
} } ); }
但问题是,我的主框架无法显示,它隐藏在我的全屏后面。我想要相反的! 或者当我单击任务栏中的主框架时(使用键盘的窗口键之后..)我只能看到我的主框架,并且框架没有显示全屏
=> 有没有办法同时显示我的框架和我的 GraphicsDevice ?在它们之间使用“优先级”..?
感谢阅读!
【问题讨论】:
-
嗯......仍然会有alt-tab。我猜你将无法完全屏蔽其他应用程序
-
我同意,但我的问题是和windows 98的安装画面完全一样
-
您可以编写代码来“计算”屏幕的“宽度和高度”,并且可以使用这些代码来创建背景 JFrame。在加载时,您打开第二个 JFrame 或 JDialog。你试过吗?如果它保持隐藏状态,则需要将焦点设置为较小的屏幕
-
再次感谢您的回答!实际上,我试过这个,但我不能用 JFrame 隐藏任务栏,我真的需要覆盖整个屏幕。如果有办法用 JFrame 创建全屏,我会做你的技术
-
这个帖子可能会帮助你:stackoverflow.com/questions/19435048/…
标签: java swing fullscreen