JUNG2 で頂点にマウスオーバーしたときに、カスタム コンポーネントをポップアップとして表示する「正しい」方法を探しています。
この質問は基本的に次の質問と同じです
Jung2: ノードの上にマウスを置いたときにノードの詳細を表示する方法を実装するには?
しかし、その人は単純なツールチップのポップアップに満足しているようですが、私はそうではありません.
注:私は現在、次のようなことを行うプラグインでPluggableGraphMouseMouseMotionListener
の実装を使用しています(私はNote
オブジェクトを頂点として持っています):
@Override
public void mouseMoved(MouseEvent e) {
Note note = graphVisualiser.getPickSupport().getVertex(getGraphLayout(), e.getX(), e.getY());
if (note != null && note != lastMouseOverNote) {
lastMouseOverNote = note;
// my handling code here
}
}
頂点の上にマウスを置くと機能し、上記を展開してマウスが離れたときにポップアップをオフにすることもできますが、このアプローチは非常に非効率的であることが懸念されます。基本的に、マウスを動かしているかどうかを確認していますマウスが移動するたびに頂点上。
むしろリスナーのアプローチが必要です-頂点に登録mouseEntered
/イベントする方法はありますか? mouseExited
(私が知る限り、これはすべて未加工のペイントによって行われており、登録できるコンポーネントはありません)。