Java 在AddListener中添加新的侦听器
我正在使用可视化工具包Zest创建一个图形。我首先创建一个图,然后添加一个节点。我想向该节点添加鼠标双击事件。我尝试了下面的代码,但不起作用。是因为验证e.button==3吗Java 在AddListener中添加新的侦听器,java,swt,listener,zest,Java,Swt,Listener,Zest,我正在使用可视化工具包Zest创建一个图形。我首先创建一个图,然后添加一个节点。我想向该节点添加鼠标双击事件。我尝试了下面的代码,但不起作用。是因为验证e.button==3吗 [...] Graph graph = new Graph(parent, SWT.BORDER); graph.addListener(SWT.MouseDown, new Listener() { public void handleEvent(Event e) { if (e.button
[...]
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) {}
}
}
});
谢谢尝试使用MouseAdapter而不是非类型化的侦听器。并重写其mouseDoubleClickMouseEvent e方法
upd。怎么样
graph.addMouseListener(new MouseListener(){
@Override
public void mouseDoubleClick(MouseEvent arg0)
{
// TODO Auto-generated method stub
}
...
}
我尝试使用它,我得到了这样一条消息:类型小部件中的addListenerint,Listener方法不适用于参数int,new MouseAdapter{}包中的参数:org.eclipse.draw2d.MouseListener?它让我把我的GraphNode投给一个Ifigure!!我以前试过,但是我不能再拖动我的节点了!因为我必须重写以下方法:-public void mouseDoubleClickedorg.eclipse.draw2d.MouseEvent arg0{}-public void mousePressedorg.eclipse.draw2d.MouseEvent arg0{}-public void mouseereleasedorg.eclipse.draw2d.MouseEvent arg0{}我想Alex指的是swt MouseAdapter类。