如何在任务栏位置或大小发生变化时移动JFrame?

时间:2017-03-08 17:15:33

标签: java swing jframe taskbar

我有未修饰的JFrame,没有可调整大小并放置在屏幕的底部/中心。 JFrame具有100像素高度和1000像素宽度。 如果任务栏改变了他的位置,我想根据任务栏的新位置和大小放置JFrame。

我已经知道如何将JFrame放在任务栏的上方,只需要知道是否有任何方法可以" listen"对于此更改并自动设置JFrame的新位置。我正在使用Eclipse和jdk 1.8

编辑:我不是在询问有关收听屏幕的更改。关于任务栏的变化。我可以处理屏幕更改。

1 个答案:

答案 0 :(得分:0)

Detect screen resolution change made by user (Java Listener?)的答案似乎表明没有内置支持来检测对本机窗口系统的更改类型。

其中一个答案表明,使用JNAJNI之类的东西会挂钩原生事件。不幸的是,他们没有提供任何有关底层Windows事件的信息。

另一种选择是运行后台线程,定期检查插图是否已更改,然后相应地调整JFrame的位置。您需要使用轮询速率,但我怀疑您每秒可以执行此操作几次而不会损害系统性能。