我正在开发一个在全屏独占模式下使用 awt 框架的应用程序。 一切正常,直到弹出窗口可见。 这会抢走焦点,我的应用程序将被最小化。
这是我的框架的初始化代码:
if (ApplicationConfig.getInstance().useFullscreenMode()) {
frame.setUndecorated(true);
frame.setResizable(false);
if (monitor.isFullScreenSupported()) {
monitor.setFullScreenWindow(frame);
if (monitor.isDisplayChangeSupported()) {
DisplayMode defaultMode = new DisplayMode(
(int) appDimension.getWidth(),
(int) appDimension.getHeight(),
32,
DisplayMode.REFRESH_RATE_UNKNOWN);
monitor.setDisplayMode(defaultMode);
frame.setFulscreenDisplayMode(defaultMode);
DisplayMode selectedMode = monitor.getDisplayMode();
log.debug("Setting fullscreen display mode to " + selectedMode.getWidth() + "x" + selectedMode.getHeight() +
" color depth: " + selectedMode.getBitDepth() + " refresh rate: " + selectedMode.getRefreshRate());
} else {
log.error("Change display mode not supported");
}
} else {
log.error("Full screen not supported");
}
}
是否有解决方法或设置可以避免这种情况?
最佳答案
窗口管理器通常不会强制应用程序窗口模式,对于自定义显示模式应用程序,wm 被迫退出全屏或最小化,因为它无法尊重其他窗口的 dpi 设置,从而维护您自己的窗口分辨率.
你是一个原因,解释说 here在 Window 操作系统的上下文中
这是用于某种信息亭系统吗?然后将整个应用程序设置为 shell,如下所述:Keeping a Windows application on top of other windows and in focus - always
任务管理器仍会在其前面弹出,并且 alt tab 键应该照常工作。
在 Linux 中进行单个应用程序登录的类似步骤: http://www.instructables.com/id/Setting-Up-Ubuntu-as-a-Kiosk-Web-Appliance/?ALLSTEPS
要禁用 USB 修复,请参阅此问题的答案:https://superuser.com/questions/33986/is-it-possible-to-disable-the-scan-and-fix-message-when-inserting-an-sd-card
请注意,第一个答案需要修复磁盘,如果您滚动到下面,则会出现禁用该特定对话框的步骤。
关于java - 全屏独占模式下的 AWT 框架在窗口弹出对话框中最小化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24041094/