События для перетаскивания окон в Java - PullRequest
5 голосов
/ 16 апреля 2009

Я пытаюсь реализовать функцию ящика OS X, подобную Java, и поэтому у меня будет одно окно, скрытое под другим. Однако, когда я перетаскиваю главное окно (JFrame), мне нужно отправлять обновления, когда оно перемещается во вспомогательное окно (JWindow) ниже.

Так было бы что-то вроде этого ...

---------------
|             |----------
|   JFrame    |          |
|             |  JWidow  |
|             |          |
|             |          |
|             |          |
|             |-----------
---------------

Тем не менее, ComponentListener в OS X не отправляет постоянные обновления для componentMoved, только когда вы останавливаетесь на секунду или выключаете мышь. Похоже, это отличается от Win / Linux, поэтому мне было интересно, есть ли у кого-нибудь другое решение.

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

Любая помощь приветствуется!

Ответы [ 2 ]

1 голос
/ 27 апреля 2009

Не могли бы вы использовать mouseMotionListener, чтобы увидеть, движется ли мышь, и, если это так, обновить позицию второго окна, используя getLocation (). Вы также можете проверить, что текущая позиция равна предыдущей позиции, чтобы предотвратить трату ресурсов. Я не уверен, что getLocation () будет работать должным образом, хотя это действительно зависит от того, как операционная система справится с этим.

1 голос
/ 16 апреля 2009

Предполагая, что у вас есть доверенный код, вы можете использовать MouseInfo.getPointerInfo(), чтобы получить местоположение указателя. Эта информация может быть опрошена, чтобы вы могли определить, где должно быть окно. В любом случае, вы можете просто опросить, где находится окно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...