我正在尝试重现在多个应用程序中看到的功能:
我有一个带有几个JDialogs的GUI应用程序.
我想轻松地将它们紧密地组织在屏幕上:
当我移动一个JDialog时,其边框之一“关闭”(例如,在5像素以内)到另一个JDialog,我希望它自动捕捉并沿其正确粘贴.
知道如何实现吗?
解决方法:
将ComponentListener添加到对话框中,并监听comopnentMoved()事件.
您可以使用Window.getWindows()方法获取所有Windows.然后,您遍历Windows并获取每个窗口的边界.每当您靠近窗口时,都可以手动设置要移动的窗口的大小.
当然,当您要将窗口从另一个窗口移开时,您也需要处理这种情况,因此也许您需要为每个componentMoved事件启动一个Timer并仅在事件停止生成后手动定位窗口.