Die Unterscheidung zwischen einem Klick und einem Doppelklick in Java
Ich die Suche im forum und sehe diese codes:
public void mouseClicked(MouseEvent e) {
if (e.getClickCount() == 2) {
System.out.println(" and it's a double click!");
wasDoubleClick = true;
} else {
Integer timerinterval = (Integer) Toolkit.getDefaultToolkit().getDesktopProperty(
"awt.multiClickInterval");
timer = new Timer(timerinterval.intValue(), new ActionListener() {
public void actionPerformed(ActionEvent evt) {
if (wasDoubleClick) {
wasDoubleClick = false; //reset flag
} else {
System.out.println(" and it's a simple click!");
}
}
});
timer.setRepeats(false);
timer.start();
}
}
aber der code läuft nicht richtig(Irgendwann wird es druckt ", und es ist nur einem einzigen Klick!" 2 mal . Es sollte ausdrucken " und es ist eine Doppel-klicken Sie!"). Kann jemand mir zeigen warum? oder können Sie mir einige bessere Möglichkeiten, dies zu tun?
Danke!
kann ich Fragen - was genau ist der obige code versuchen zu erreichen? also, was ist diese Anwendung für? will man eine bessere Vorstellung von dem, was Sie versuchen zu erreichen..
Bezug (Referenz): stackoverflow.com/questions/548180/...
Bezug (Referenz): stackoverflow.com/questions/548180/...
InformationsquelleAutor Xitrum | 2011-01-02
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dass ist normal. Ein Doppelklick passiert nur, wenn Sie zweimal klicken, die im angegebenen Zeitintervall. Also manchmal, wenn Sie klicken Sie nicht schnell genug: Sie erhalten zwei einzelne Klicks in einer Reihe.
Den oben genannten Zeile code bestimmt, wie schnell der Doppelklick muss.
Für das, was seinen Wert hier ist etwas code, den ich verwendet habe, das gleiche zu tun. Weiß nicht, ob es besser oder schlechter als der code, den Sie haben:
Guter Punkt, um die Maus zu bewegen ein oder zwei pixel, die bewirkt, dass die auf-Zählung zurückgesetzt wird. Im Allgemeinen bin ich auch nicht empfehlen, diesen Ansatz als sollten Sie nie wirklich ignorieren einem einzigen Klick. Der Klick sollte verwendet werden, um "wählen" etwas, und der Doppelklick wird dann verwendet, um durchzuführen und "Aktion" auf das ausgewählte Element. Die Klasse, die ich gepostet hat können Sie die Doppelklick-Geschwindigkeit, um es nutzbar, wenn Sie wollen.
(wohl, natürlich 🙂 Sie sollten nicht mit OS erzeugt Verhalten: zu unterscheiden double vs. single ist die Aufgabe des zugrunde liegenden Systems. Wenn dieser entscheidet, es ist kein Doppel-Klick, dann sei es so. Andernfalls können Benutzer anpassen, um Ihre Klick-Geschwindigkeit-Verhalten pro Anwendung
Vielen Dank für diesen tollen code.
Thompson: über Linux-Doppelklick-Intervall:
#fix java mouse double-click speed touch /home/$USERNAME/.Xresources echo "*multiClickTime: 500" >> /home/$USERNAME/.Xresources xrdb ~/.Xresources
InformationsquelleAutor camickr
klar, dass dieser thread fast ein Jahr alt, so dass ich vielleicht gar nicht Fragen... aber nicht Ihren code drucken "doppelklicken." zweimal, wenn der Benutzer doppelt klickt? Ich weiß nicht, ob das war Ihre Absicht oder die Auswirkungen der situation. Es scheint einfach nicht effizient, aber ich sicher sein kann, fehlt der Punkt.
Vielen Dank für Ihren Kommentar. Das ist möglicherweise mein Fehler. Ich Teste die Maus klicken Sie auf Veranstaltungen für mein Projekt, die Notwendigkeit zu erfassen, wenn Klick-Ereignis occour oder Doppel-klicken Sie auf occour. System.aus.print-Tests für das click-Ereignis. sb.append("") ist den Anforderungen meines Projektes. Was auch immer vielen, vielen Dank.
InformationsquelleAutor Anonymous