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) {}
}
}
});
는
내가 이것을 사용하여 시도, 나는이 메시지했다 방법 : 유형의 위젯에 메소드의 addListener (INT, 리스너) 인수 (INT, 새 MouseAdapter() {}) – user1338839
적용 할 수 없습니다 패키지에있는 것 : 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
알렉스는 swt MouseAdapter 클래스를 의미한다고 생각합니다. –