ユーザーがリスト内のアイテムにカーソルを合わせたときに、情報を含むボックスを表示したい。次のようなもの:
これどうやってするの?これは、pidgin や spark などのチャット アプリで確認できます。
これが私がそれを実装しようとする方法です:
MouseListener と MouseMotionListener を JList に追加します。マウサーがリストに入ると、特定の遅延 (0.5 秒) 待機するスレッドを開始します。マウスが移動またはドラッグされると、遅延を待って再起動します。マウスが JList を終了したら、スレッドをキャンセルします。これらのリスナーを使用して、マウスの位置も追跡します。
遅延が満たされると (つまり、遅延全体にわたってマウスが移動せずにリストに留まることを意味するはずです)、SwingUtilities.invokeLater を使用して情報ボックスを表示します。JList の locationToIndex を使用して、マウスが置かれている行を特定できます。