私はいくつかのアプリで見た機能を再現しようとしています: 私はいくつかのJDialogを持つGUIアプリケーションを持っています。 私は1つのJDialogを移動し、その境界線の1つが別のJDialogに「閉じる」(例えば5ピクセル以内)になると、それを自動的にスナップして貼り付けることができます。 それに沿って右。JDialogスティックを作成するか、それを近くに移動するときに別のスティックを作成する
これを実現する方法はありますか?
私はいくつかのアプリで見た機能を再現しようとしています: 私はいくつかのJDialogを持つGUIアプリケーションを持っています。 私は1つのJDialogを移動し、その境界線の1つが別のJDialogに「閉じる」(例えば5ピクセル以内)になると、それを自動的にスナップして貼り付けることができます。 それに沿って右。JDialogスティックを作成するか、それを近くに移動するときに別のスティックを作成する
これを実現する方法はありますか?
ComponentListenerをダイアログに追加し、comopnentMoved()イベントを待ち受けます。
Window.getWindows()メソッドを使用すると、すべてのWindowsを取得できます。次に、Windowsをループして、各ウィンドウの境界を取得します。ウィンドウの近くにいるときは、移動するウィンドウのサイズを手動で設定します。
もちろん、別のウィンドウからウィンドウを移動したい場合は、すべてのcomponentMovedイベントでタイマーを開始し、イベントが生成されなくなったら手動でウィンドウを配置する必要があります。
それはアイデアです。私が解決しなければならなかったいくつかの事柄:目に見えないものとして設定されたウィンドウに注意してください。小さなウィンドウがたくさんある場合は、「相互作用する」2つのウィンドウを識別するように注意してください。 – Bastien