Уведомление Java о смене устройства на экране - PullRequest
1 голос
/ 05 марта 2012

Следующий простой фрагмент кода захватывает все доступные экранные устройства на Java без проблем:

GraphicsDevice[] gds = ge.getScreenDevices();

Это очень просто. Тем не менее, я хотел бы получать уведомления, когда это изменится (существующий экран изменяется, один удаляется, добавляется новый и т. Д.)

Я мог бы просто опросить приведенный выше вызов метода, который выполним, но в идеале я хотел бы получить уведомление (стиль шаблона наблюдателя), когда что-то изменится. Я не вижу способа в API подключиться к такому событию.

Возможно ли это либо с помощью простого JDK, либо с помощью дополнительной библиотеки, или я должен просто прибегать к опросу каждую секунду или около того?

1 Ответ

2 голосов
/ 21 марта 2012

Судя по всему, что я сделал, ответ на данный момент (глядя на Java 7 и предлагаемые в настоящее время API-интерфейсы Java 8) просто нет - кажется, вам просто нужно опросить.

Хотя с точки зрения производительности это неприятно с точки зрения производительности, на самом деле это не имеет значения, если вы разумны с интервалами - это, кажется, очень дешевая операция. Мой подход состоял в том, чтобы провести опрос в отдельном классе и предоставить образец наблюдателя, в котором другие могли бы зарегистрироваться. Хорошо выполняет свою работу, все опросы находятся в одном месте, и если позже появится более подходящий API, заменить новый интерфейс будет тривиально.

...