Maus horizontal scrollen

Hallo.

Wie kann man in Java mit der Maus horizontal scrollen?
Laptops haben ja MousePads die solche Events unterstützen, doch wie spreche ich sowas mit Java an?

mouseWheelMoved(MouseWheelEvent e) unterstützt ja z.B. nur verticales Scrollen.

Java - zumindest die JScrollPane - unterstützt sowohl vertikales als auch horizontales Scrollen mit dem Mausrad. Nur liegt die Priorität auf dem vertikalen Scrollen. Wird nur die horizontale Scrollbar angezeigt, wird das MouseWheelEvent auf diese angewendet.

Ich würde mal schauen, ob man diese Priorität ändern kann oder falls es keine sinnvolle Möglichkeit gibt einen eigenen Listener schreiben.

Meinst du jetzt die Funktion von zB mac mäusen, das man da “horizontal scrollen kann” ?

Ja genau das meine ich das man also von dieser Maus einmal horizontal und vertical scrollen unterscheiden kann. Nur wie kann man solche „speziellen“ Mäuse mit Java ansprechen?

Hm, da Java plattform unabhängig ist, dürfte das schwierig werden. Aber:
Was passiert, wenn du dann das MouseWheelEvent mal ausgibst? Wird das horizontal
überhaupt als solches erkannt? (Also das event überhaupt aufgerufen?)

*** Edit ***

Schau mal: Wenn ich das Event sysoute, bekomm ich folgendes:

java.awt.event.MouseWheelEvent[MOUSE_WHEEL,(705,233),absolute(0,0),button=0,clickCount=0,scrollType=WHEEL_UNIT_SCROLL,scrollAmount=3,wheelRotation=1,preciseWheelRotation=1.0] on frame0

ändert sich da vielleicht etwas, wenn man horizontal scrollt? Vielleicht scrollType oder sowas?

Was meinst du denn genau mit “ansprechen”? Erkläre das doch vielleicht mal etwas genauer. Willst du bei einem JScrollPane abfragen ob Horizontal gescrollt wurde?

Nein da wird nichts aufgerufen, wenn ich horizontal scrolle.

Eike… kennst du die mac mäuse?
Da kann man die ganze oberfläche als scroll pane benutzen.
Die Maus (Ein Mac) unterscheidet dann zwischen horizontalem und vertikalem scrollen.
Das will er hier unterscheiden.

http://images.apple.com/euro/magicmouse/images/lasertracking.jpg

Nein es gibt z.B. beim Laptop diese Mauspads die scrollen in 2 Richtungen unterstützen: Horizontal und Vertical scrollen.
Während normale Mäuse ja nur verticales Scrollen unterstützen. Nun möchte ich aber für die Laptops das horizontale Scrollen unterstützen… Nur weiß ich leider nicht wie das geht.

Z.B. Bei Windows 8 wird das horizontale Scrollen in vielen Anwendungen unterstützt: Sogar der „Start-Bildschirm“ unterstützt dieses. Also muss es ja auch irgendwie möglich sein das auch mit Java hinzubekommen…

die methode wird erst gar nicht aufgerufen???

Die Methode wird nur aufgerufen wenn ich vertikal scrolle, horizontal passiert da gar nichts :confused:

Das ist alles zu ungenau… Ein JScrollPane kann bspw. horizontal gescrollt werden. Was genau willst du machen?

Mensch @EikeB -.- das hab ich dir jetzt schon 2 mal erklärt. genau genug.

Sieht nicht gut aus:
http://bugs.java.com/bugdatabase/view_bug.do?bug_id=6440198

Wäre es nicht möglich mithilfe von JNI diese Funktion zu unterstützen?(Also das es wenigstens für die Windows-User funktioniert)
Weiß jemand ob C++ das unterstützt?

Am Ende steht da:

"CUSTOMER SUBMITTED WORKAROUND :
Native code and our own subclasses. A lot of hard work.

Altering AWT and Swing. Much less work, but not legal to redistribute, which defeats the purpose."

aaalso… müsste es wohl irgendwie gehen, an dieser stelle steige ich aber aus ^^

Ok anscheinend geht das über C++ http://msdn.microsoft.com/en-us/library/ms645614(VS.85).aspx.
Hat jemand Erfahrung damit wie man so ein Ereignis zu Java übertragen kann(JNI)? Habe leider keine Erfahrung mit JNI.

du hast das problem nicht verstanden, glaube ich.

so? SWT unterscheidet zwischen horizontalem und vertikalem Scrollen, swing (noch) nicht
das scrollpane aber scrollt jenachdem was da ist… wenn darin nur ein horizontaler Balken ist, scrollt das vertikale Rad einer regulären Maus halt das
mit einem eigenen Scrollpane kann man das Verhalten soweit ändern, dass entweder die eine oder die andere Scrollbar reagiert, man kann z.B. beim Mouseover auf dem Horizontalen Balken eben dieses Scrollen, oder beim Drücken eines entsprechenden Keys.
Ich habe jetzt keine Maus mit nem horizontalem Rad, aber technisch hat es andere Kontakte als das vertikale Rad, die angesprochen werden können, wie eben z.b. ein Modifikatorkey.
Schön und elegant, würde es überhaupt gehen? Nein und KA, aber besser als gar nichts.