屏幕设备更改的Java通知

时间:2012-03-05 00:30:08

标签: java events notifications

以下简单代码段抓取Java中所有可用的屏幕设备没问题:

GraphicsDevice[] gds = ge.getScreenDevices();

这很简单。但是,我希望在此更改时收到通知(现有屏幕更改,删除一个,添加新屏幕等)

我可以在上面的方法调用中进行轮询,这是可行的,但理想情况下,当某些内容发生变化时,我会想要一个通知(观察者模式样式)。我无法在API中看到一种方法来挂钩这样的事件。

这可能是通过普通的JDK或附加库实现的,还是我应该每隔一秒左右进行一次轮询?

1 个答案:

答案 0 :(得分:2)

从我看过的所有内容来看,目前的答案(查看Java 7和目前提出的Java 8 API)根本就没有 - 你只需要进行轮询即可。

虽然从表现的角度来看,从OO的角度来看这是令人讨厌的,但只要你对间隔敏感,它就不会产生任何影响 - 这似乎是一种非常便宜的操作。我的方法是在一个单独的类中进行轮询,并提供一个观察者模式,其他人可以注册。工作是否顺利,所有轮询都集中在一个地方,如果以后出现更好的API,那么用新界面换掉它是微不足道的。