Сделайте JDialog-флешку или привязайте его к другому, когда подносите близко - PullRequest
3 голосов
/ 26 июля 2011

Я пытаюсь воспроизвести функцию, которую я видел в нескольких приложениях: у меня есть приложение с графическим интерфейсом и несколькими JDialogs.Я хотел бы легко упорядочить их на экране: когда я перемещаю один JDialog, и одна из его границ становится «близкой» (например, в пределах 5 пикселей) к другому JDialog, мне бы хотелось, чтобы он автоматически привязывался и держался прямо вдольэто.

есть идеи, как этого добиться?

1 Ответ

3 голосов
/ 26 июля 2011

Добавьте ComponentListener в диалоговое окно и прослушайте событие comopnentMoved ().

Вы можете использовать метод Window.getWindows (), чтобы получить все окна.Затем вы перебираете окна и получаете границы каждого окна.Всякий раз, когда вы находитесь рядом с окном, вы вручную устанавливаете размер перемещаемого окна.

Конечно, вам также потребуется справиться с ситуацией, когда вы хотите отодвинуть окно от другого окна, поэтому, возможно, вам нужнозапускать таймер с каждым событием componentMoved и размещать окно только вручную после того, как события перестали генерироваться.

...