我想为在多显示器设置和虚拟桌面设置下工作的 Linux 应用程序模拟 Windows-Snap 功能。为什么?我只是这样做,为了踢。如果归根结底,我也可以在 Linux 中使用一些本机 C++ 代码来实现这一点,并使用 JNI 链接到它。
目标:
- 按 Super 键 + 向右箭头,JFrame 现在在右侧最大化。
- 再次按 Super 键 + 向右箭头,JFrame 现在在下一个监视器的左侧最大化。
问题:
- 虚拟桌面是我的问题——我不知道如何在 Java 中检测它们。有谁知道实现这一目标的有用方法?
- 我需要能够在第二次正确捕捉时将 JFrame 移动到下一个虚拟桌面。
代码:
此代码成功检测到窗口在哪个物理监视器上,但它不适用于虚拟桌面。我没有在这里添加任何捕捉代码,这仅用于监视器检测。如果您想看看:(使用空间并输入交换监视器)
更改虚拟桌面时,代码向我显示了相同的 GraphicsDevice。我正在运行 Lubuntu x64 15.10 并运行 Java x64 版本 8u25。