2011-07-26 20 views
3

我試圖重現我在幾個應用中看到的一個功能: 我有一個GUI應用程序和幾個JDialogs。 我想在屏幕上輕鬆地組織它們: 當我移動一個JDialog,並且它的一個邊框在另一個JDialog中「關閉」(例如5像素以內)時,我希望它自動捕捉並粘貼正確的沿着它。製作一個JDialog棒,或者在靠近它時對齊另一個棒

任何想法如何實現?

回答

3

將ComponentListener添加到對話框並偵聽comopnentMoved()事件。

您可以使用Window.getWindows()方法獲取所有Windows。然後你循環瀏覽Windows並獲取每個窗口的界限。無論何時您靠近窗戶,都可以手動設置您正在移動的窗戶的大小。

當然,如果您希望將窗口從另一個窗口移開,所以您可能需要使用每個componentMoved事件啓動Timer,並且只有在停止生成事件後手動定位窗口,您才需要處理這種情況。

+0

這是主意。有幾件事我必須解決:當心窗口設置爲不可見,如果你有很多小窗口要小心,以確定兩個應該「互動」的窗口...... – Bastien