Eigene JScrollPane, die "Panning" erlaubt (das Scrollen ähnlich wie in Photoshop)

DarthShader

Erfahrenes Mitglied
Hallo,

ich würde gerne eine Klasse erstellen, die von JScrollPane ableitet. Diese neue ScrollPane soll so scrollbar sein, wie man es z.B. von dem Mechanismus des Drehens der Erde in Google Earth kennt - also man fässt die ScrollPane irgendwo an, zieht die Maus, und man kann runter/hoch bzw. seitlich scrollen. Es gibt viele Beispiele dafür, z.b. das Bild-Scrollen in Photoshop (das Panning Tool), oder das Scrollen auf vielen Touch Screens, z.B. dem neuen iPhone.

Ich habe dabei dreierlei Probleme:

1. Wie scrolle ich eine JScrollPane programmatisch? Ich glaube, das funktioniert über die JScrollPane-internen ScrollBars, aber wie kann ich diese dann programmatisch scrollen?

2. Es gibt die Methode "scrollRectToVisible" von JComponent. Aber diese Methode verstehe ich nicht. Ich habe die API Doku dazu gelesen, aber ich verstehe nicht genau, was sie im Detail tut. Wenn mir das jemand mal erklären könne, wäre ich sehr dankbar!

3. Ein weiteres gedankliches Problem ist: wenn ich die Maus-Events anfange, damit ich merke, dass jemand versucht zu scrollen, der jenige dabei aber auf eine Komponente klickt, die innerhalb der ScrollPane ist (z.B. ein JButton), so bekommt ja genau diese Komponente das Event, und nicht die ScrollPane. Gibt es deshalb eine Möglichkeit, solche Events automatisch zum ScrollPane durchzureichen, oder muss ich wirklich jeder Komponente, die sich innerhalb der ScrollPane befindet, manuell sagen, dass Maus-Events zum ScrollPane gelangen sollen?
Anders ausgedrückt, kann ich irgendwie einen globalen Listener registrieren, der auch Events der "Sub-Komponenten" mitbekommt?


Ich würde mich sehr über Hilfe oder ein paar Eurer Gedanken dazu freuen.


Vielen Dank!
 
Zurück