PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : DoppelKlick statt Klick-Event



Jor
31-12-2005, 15:13
Hallo zusammen,

so kurz vor Jahresschluss hab eich noch eine Frage:
In meiner Anwendung werte ich per MouseListener das Klick-Event aus, möchte aber, dass nur auf ein DoppelKlick reagiert wird.
Hat jemand von euch eine Lösungsansatz für mich?
Hier mein Quälcode (auszugsweise):
Liste = new JList(new DefaultListModel());
Liste.addListSelectionListener(this);
Liste.addMouseListener((MouseListener) this);
... bla bla ...

public void mouseClicked(MouseEvent arg0) {
// TODO Auto-generated method stub
System.out.print("Geklickt");
}

Ich wünsche allen ein guten Rutsch ins neu Jahr!!!!

McFraggle
02-01-2006, 10:11
Frohes Neues!
Also, nach meinem Wissenstand:

Der MouseListener besitzt kein Event für den Doppel-Klick. Du kannst im übergeben MouseEvent-Objekt jedoch die Anzahl der Klicks auslesen. (http://java.sun.com/j2se/1.5.0/docs/api/java/awt/event/MouseEvent.html)

Unter Umständen wäre es auch eine Lösung, noch in der Komponente einen "Einfach-Klick" abzufangen und das Klick-Event gar nicht auszulösen. Überschreibe dazu die processMouseEvent.
Man könnte zudem einen weiteren Listener schreiben und eine Methode dessen für den Doppelklick vorsehen. In der processMouseEvent könnte man dann den Doppel-Klick abfangen und die Listener für Doppel-Klicks aufrufen. Das erscheint mir aber gerade als Hick-Hack-Programmierung.

Erste Lösung ist die konventionelle.

Grüße,
Daniel

Jor
02-01-2006, 12:47
Hallo McFraggle,
ein Frohes Neues und vielen Dnak für deine Hilfe!
Schade das nicht von Hause aus ein DoppelKlick-Event vorhanden ist.:mad:
Ich werde mir den Link anschauen, und hoffe ich komme weiter dadurch, deine weiteren Tipps kann ich im Moment nur theoretisch verstehen, aber nicht praktisch umsetzen, dazu fehlt mir noch einwenig Java-Erfahrung.

Danke...

Caveman
02-01-2006, 13:38
Schau auch mal ins www.javabuch.de (http://www.javabuch.de) ! Dort ist im Kapitel 29.3 Mouse-Events ein sehr schönes Beispiel.

Jor
02-01-2006, 17:27
Danke! :) :)