gpt4 book ai didi

Java setFullScreenWindow() 保持在最前面

转载 作者:搜寻专家 更新时间:2023-10-30 21:07:02 27 4
gpt4 key购买 nike

我正在编写一个旨在在双显示器设置上运行的应用程序,“显示”JFrame 在一个显示器上全屏显示,“控制”JFrame 在另一台显示器上全屏显示,向显示器发送指令。我尝试了两种不同的方法来设置全屏显示;每一个的成功似乎都取决于操作系统。

display.setUndecorated(true);
display.setExtendedState(JFrame.MAXIMIZED_BOTH);

在 Windows 中工作,但 JFrame 在 OS X 和 Linux 中隐藏在停靠栏/面板下。

我的另一种方法,利用

GraphicsDevice.setFullScreenWindow(display);

在我尝试过的所有三个操作系统中都可以工作,但在 Windows 中,将控制窗口聚焦在另一台显示器上会使显示窗口隐藏,并调用

display.setAlwaysOnTop(true);

没有解决问题。我有点偏爱 GraphicsDevice 方法,因为我不必处理 OS X 或 Linux 中的问题,而且我希望 Windows 问题是一个简单的修复程序。是吗?

最佳答案

试试这个...

多屏

GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
GraphicsDevice[] gs = ge.getScreenDevices();


// Get size of each screen

for (int i=0; i<gs.length; i++) {
DisplayMode dm = gs[i].getDisplayMode();
int screenWidth = dm.getWidth();
int screenHeight = dm.getHeight();
}

使用 public final void setAlwaysOnTop(boolean alwaysOnTop) 将窗口置于顶部,如果窗口可见,这包括将窗口置于 Front,然后“粘贴”它到最顶层的位置。

关于Java setFullScreenWindow() 保持在最前面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11497910/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com