我有未装饰的 JFrame,无法调整大小并放置在屏幕的底部/中心。 JFrame 的高度为 100 像素,宽度为 1000 像素。 如果任务栏改变了他的位置,我想根据任务栏的新位置和大小来放置JFrame。
我已经知道如何将 JFrame 放置在任务栏上方,只需要知道是否有任何方法可以“监听”此更改并自动设置 JFrame 的新位置。我正在使用 Eclipse 和 jdk 1.8
编辑:我不是在询问监听屏幕的变化。关于任务栏的更改。我可以处理屏幕变化。
最佳答案
Detect screen resolution change made by user (Java Listener?) 的答案似乎表明没有内置支持来检测对 native 窗口系统的这种类型的更改。
答案之一建议使用类似 JNA 的内容来 Hook native 事件。或JNI 。不幸的是,他们没有提供任何有关要 Hook 的底层 Windows 事件的信息。
另一种选择是运行一个后台线程,该线程定期检查插图是否已更改,然后相应地调整 JFrame
的位置。您需要调整轮询率,但我怀疑您可以每秒执行几次此操作,而不会损害系统性能。
关于java - 当任务栏位置或大小发生变化时如何移动 JFrame?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42677699/