我正在尝试重现我在多个应用中看到的功能: 我有一个GUI应用程序与几个JDialogs。 我想在屏幕上轻松整理它们: 当我移动一个JDialog,并且其中一个边框“接近”(例如在5个像素内)到另一个JDialog时,我希望它能够自动捕捉并沿着它直接粘贴。
任何想法如何实现?
答案 0 :(得分:3)
将ComponentListener添加到对话框并侦听comopnentMoved()事件。
您可以使用Window.getWindows()方法获取所有Windows。然后循环遍历Windows并获取每个窗口的边界。每当您靠近窗户时,您都可以手动设置要移动的窗口的大小。
当你想要将窗口从另一个窗口移开时,你还需要处理这种情况,这样你可能需要在每个componentMoved事件中启动一个Timer,并且只在事件停止生成后手动定位窗口。 / p>