检测用户进行的屏幕分辨率更改(Java Listener?)

Ric*_*gin 9 java swing listener screen-resolution

我有一个Java应用程序启动,创建一个GUI,并且工作得很好.如果用户更改屏幕分辨率(从1440x900切换到1280x768),我希望能够收听该事件.

有任何想法吗?

PS - 我想在事件/侦听器模式下执行此操作,而不是在轮询模式下执行此操作,这样就不会浪费额外的CPU周期,例如定时器每隔N秒不断轮询屏幕大小以查看它是否已更改.

Hov*_*els 2

我认为 Java 本身无法做到这一点。您必须在操作系统中建立一个“挂钩”来检测此更改,并且可能希望考虑使用JNAJNI或单独的实用程序(例如向 Java 程序报告的 Sigar)。出于好奇,你为什么要这样做?是为了您正在制作的游戏还是为了您可以调整 GUI 应用程序的大小?