Hallo zusammen,
ich habe hier eine Klasse, die von JPanel erbt und einiges an Funktionalität über Mausaktionen (Drag und click) für den Benutzer zur Verfügung stellt.
Jetzt fällt mir beim Testen eine Sache immer wieder negativ auf: Swing ist *extrem* empfindlich, wenn es um den Unterschied zwischen "Click" und "Drag" geht. Wenn ich auf die linke Maustaste klicke, und dabei die Maus in der kurzen Zeit zwischen "Taste drücken" und "Taste loslassen" nur *minimal* bewege (und sei es nur 1 Pixel am Bildschirm), dann ist es für Swing schon keine "Click"-Action mehr sondern ein (kurzes) Drag-Movement. Dadurch wird der Click-Handler gar nicht erst ausgelöst, sondern nur der Drag-Handler.
Meine Frage: kann man irgendwo festlegen (zum Beispiel über einen numerischen Schwellenwert) ab wie vielen Pixeln Mausbewegung während eines Clicks es als "drag" gewertet wird? Ich möchte, dass zum Beispiel wenn man eine Maustaste drückt, die Maus dabei um 1 oder 2 Pixel verschiebt und dann die Maustaste wieder loslässt, trotzdem die Click-Aktion und nicht die Drag-Aktion ausgelöst wird. Ich hoffe, es ist klar geworden, was ich meine - ich hatte schon Probleme, in Ermangelung eines Schlagwortes danach auf Google oder hier im Forum zu suchen, eventuell gibt es einen Fachbegriff hierfür, den ich noch nicht kenne...
Gruß,
Alan
ich habe hier eine Klasse, die von JPanel erbt und einiges an Funktionalität über Mausaktionen (Drag und click) für den Benutzer zur Verfügung stellt.
Jetzt fällt mir beim Testen eine Sache immer wieder negativ auf: Swing ist *extrem* empfindlich, wenn es um den Unterschied zwischen "Click" und "Drag" geht. Wenn ich auf die linke Maustaste klicke, und dabei die Maus in der kurzen Zeit zwischen "Taste drücken" und "Taste loslassen" nur *minimal* bewege (und sei es nur 1 Pixel am Bildschirm), dann ist es für Swing schon keine "Click"-Action mehr sondern ein (kurzes) Drag-Movement. Dadurch wird der Click-Handler gar nicht erst ausgelöst, sondern nur der Drag-Handler.
Meine Frage: kann man irgendwo festlegen (zum Beispiel über einen numerischen Schwellenwert) ab wie vielen Pixeln Mausbewegung während eines Clicks es als "drag" gewertet wird? Ich möchte, dass zum Beispiel wenn man eine Maustaste drückt, die Maus dabei um 1 oder 2 Pixel verschiebt und dann die Maustaste wieder loslässt, trotzdem die Click-Aktion und nicht die Drag-Aktion ausgelöst wird. Ich hoffe, es ist klar geworden, was ich meine - ich hatte schon Probleme, in Ermangelung eines Schlagwortes danach auf Google oder hier im Forum zu suchen, eventuell gibt es einen Fachbegriff hierfür, den ich noch nicht kenne...
Gruß,
Alan