# Bei SWT in einer Tabelle ein Event per Doppelklick auslösen?



## Stulle (15. Mai 2007)

Hallo noch mal!

Ich möchte, wie im Titel schon gesagt, in einer Tabelle ein Event für das entsprechende Item per Doppelklick auslösen. Bisher habe ich das Event auslösen so gemacht:


```
table = new Table(shell, SWT.MouseDoubleClick| SWT.FULL_SELECTION | SWT.BORDER);
table.setHeaderVisible(true);
table.addSelectionListener(new SelectionAdapter() {
	public void widgetSelected(SelectionEvent e) {
		int i=0;
		while (!table.isSelected(i)){
			i++;
		}
		new BeabeitenGUI(display,Main.getInstance(),table.getItem(i).getText(0),
                                            table.getItem(i).getText(1),table.getItem(i).getText(2));
	}
});
```

Das Problem dabei ist natürlich, dass das Event bei jeder makierung der Zeilen ausgelöst wird. Also dachte ich, mach ich es doch so:


```
table = new Table(shell, SWT.MouseDoubleClick| SWT.FULL_SELECTION | SWT.BORDER);
table.setHeaderVisible(true);
table.addMouseListener(new MouseAdapter() {
	public void widgetSelected(SelectionEvent e) {
		int i=0;
		while (!table.isSelected(i)){
			i++;
		}
		new BeabeitenGUI(display,Main.getInstance(),table.getItem(i).getText(0),
                                            table.getItem(i).getText(1),table.getItem(i).getText(2));
	}
});
```

Dann wird jedoch kein Event ausgelöst.

Kann mir jemand sagen, was ich falsch mache und wie ich es besser machen kann?

Danke im vorraus
Gruß Stulle


----------



## byte (15. Mai 2007)

Also erstmal ist der Style SWT.MouseDoubleClick beim erzeugen des Tables Humbug. Der hat da nichts zu suchen.

Wegen Deines Problemes: Guck Dir MouseAdapter mal an, der hat gar keine Methode widgetSelected(...) definiert. Insofern wird Deine Methode auch nie aufgerufen.

Versuchs mal so:


```
table.addMouseListener(new MouseAdapter() {
  @Override
  public void mouseDoubleClick(MouseEvent e) {
    // do some stuff
  }
});
```


PS: Im übrigen kannst Du Dir die geklickte Zeile auch über die x-Koordinate des MouseEvents holen, was sicherlich performanter sein wird!


----------



## Stulle (15. Mai 2007)

Ah! Wunderbar. Das funktioniert. Vielen Dank! Viel zu lernen ich noch habe.


----------



## byte (15. Mai 2007)

Dann hak den Thread hier mal als erledigt ab.


----------

