0
私は視覚化ツールキットZestを使ってグラフを作成しています。まず、グラフを作成してからノードを追加します。このノードにマウスのダブルクリックイベントを追加したいと思います。私は次のコードを試しましたが、うまくいきません。検証e.button == 3のためですか?AddListener内に新しいリスナーを追加する
[...]
Graph graph = new Graph(parent, SWT.BORDER);
graph.addListener(SWT.MouseDown, new Listener() {
public void handleEvent(Event e) {
if (e.button == 3) {
Menu menu = new Menu(parent);
final MenuItem a1 = new MenuItem(menu, SWT.None);
a1.setText("New Node");
a1.addSelectionListener(new SelectionListener() {
@Override
public void widgetSelected(SelectionEvent e) {
GraphNode graphNode = new GraphNode(graph, SWT.NONE);
graphNode.addListener(SWT.MouseDoubleClick, new Listener
(
@Override
public void handleEvent(Event event) {
System.out.println("node created");});
@Override
public void widgetDefaultSelected(SelectionEvent e) {}
}
}
});
私はこれを使用して試みたが、私はこのメッセージを持っていた:ウィジェットを引数に適用されないタイプ(INT、新しいMouseAdapterの(){}) – user1338839
で 方法のaddListener(INT、リスナー)パッケージ内のもの:org.eclipse.draw2d.MouseListener?私のGraphNodeをIfigureにキャストするように頼んでいます!! 私はそれを前に試しましたが、私はもうノードをドラッグできません!私は、次のメソッドをオーバーライドする必要があるため: - 公共ボイドmouseDoubleClicked(org.eclipse.draw2d.MouseEventのarg0に){} - 公共ボイドのmousePressed(org.eclipse.draw2d.MouseEvent arg0に){} - 公共void mouseReleased(org.eclipse.draw2d.MouseEvent arg0){} – user1338839
私はAlexがswt MouseAdapterクラスを意味すると思います。 –