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 (интермедиат, Listener) в тип виджета не применяется для аргументов (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. –