グラフに頂点とエッジを追加しながら、デフォルトのマウスメニューをオーバーライドしようとしています。私はこの例に従っていましたが、うまくいきましたが、マウスカーソルを変更するために何を(インターフェイスを実装する必要があるのか)知りたいのですが、また、マウスカーソルを変更して頂点を追加する必要がありますJUNG 2.0のEditingModalGraphMouseプラグインを使用したカスタムMouseMenu Java Framework
public class PopupVertexEdgeMenuMousePlugin<V, E> extends AbstractPopupGraphMousePlugin {
private JPopupMenu edgePopup, vertexPopup;
public PopupVertexEdgeMenuMousePlugin() {
this(MouseEvent.BUTTON3);
}
public PopupVertexEdgeMenuMousePlugin(int modifiers) {
super(modifiers);
}
protected void handlePopup(MouseEvent e) {
final VisualizationViewer<V,E> vv =
(VisualizationViewer<V,E>)e.getSource();
Point2D p = e.getPoint();
GraphElementAccessor<V,E> pickSupport = vv.getPickSupport();
if(pickSupport != null) {
final V v = pickSupport.getVertex(vv.getGraphLayout(), p.getX(), p.getY());
if(v != null) {
System.out.println("Vertex " + v + " was right clicked");
updateVertexMenu(v, vv, p);
vertexPopup.show(vv, e.getX(), e.getY());
} else {
final E edge = pickSupport.getEdge(vv.getGraphLayout(), p.getX(), p.getY());
if(edge != null) {
System.out.println("Edge " + edge + " was right clicked");
updateEdgeMenu(edge, vv, p);
edgePopup.show(vv, e.getX(), e.getY());
}
}
}
}
private void updateVertexMenu(V v, VisualizationViewer vv, Point2D point) {
if (vertexPopup == null) return;
Component[] menuComps = vertexPopup.getComponents();
for (Component comp: menuComps) {
if (comp instanceof VertexMenuListener) {
((VertexMenuListener)comp).setVertexAndView(v, vv);
}
if (comp instanceof MenuPointListener) {
((MenuPointListener)comp).setPoint(point);
}
}
}
}
ここで、グラフに頂点を追加するには、左クリックを使用します。右クリックするとこのオプションを追加します。また、編集モードでのみvertext/edgeを追加します。ピッキングモードでも同じようにするにはどうしたらいいですか?またはピッキングモードに見えるように編集モードを維持しながらカーソルを変更するかもしれませんか?
のお手伝いをすることができ、あなたは[JUNGとJavaとのMouseEvents]を参照してもよいです(http://stackoverflow.com/questions/5958622/mouseevents- with-jung-and-java)を使ってマウス修飾子を変更する方法 –