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

标签 java swing jframe taskbar

我有未装饰的 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/

相关文章:

Java 文本字段十进制验证

java - 如何在另一个进程开始之前绘制jrame组件

java - 销毁 Jframe 对象

java jframe和ImagePanel之间的差距

java - 在java中使用带有特殊字符的jText

java - pom.xml 中出现错误。显示连接超时。我的网络代理不允许连接到 Maven

java - 使用 Swing 组件调整处理 Canvas 大小时闪烁

java - 循环停止运行java

java - 在java中从xml字符串创建org.w3c.dom.Document时出现问题

java - 单击另一个 Jframe 中的按钮时弹出现有 Jframe