G
Guest
Gast
Hallo!
Ich habe folgendes Problem mit dem Eventhandling bei Swing:
Für einen Scrollbar nutze ich einen JScrollbar, sowie für einen Zoomregler einen JSlider.
Der Scrollbar verschiebt den Inhalt eines Canvas-Objektes, indem ich mit einem AdjustmentListener an ihm lausche und das AdjustmentEvent abfange.
Am Zoomregler lauscht ein ChangeListener und fängt das ChangeEvent ab.
Wenn am Zoomregler nun das ChangeEvent auftaucht, da der Anwender am Zoom gedreht hat, soll entsprechend auch der JScrollbar-Value geändert werden. Dies tue ich durch den Aufruf "scrollbar.setValue(neuerWert)".
Dieser Aufruf löst jedoch ein AdjustmentEvent am Scrollbar aus, welches für mich absolut nicht zu unterscheiden ist, von einem solchen, das direkt durch Bewegen des Scrollbars entsteht.
Dort liegt jedoch für mich das Problem, da ich in diesem Fall im AdjustmentListener ein anderes Verhalten (insbesondere kein erneutes 'Verschieben') veranlassen möchte.
Daher meine Frage:
Kann man von einem Event herausfinden, wer es geschickt hat ? Hier also, ob es von JSlider's ChangeEventListener heraus erzeugt wurde, oder direkt vom JScrollbar ?
Alternativ: Gibt es anstelle von "scrollbar.setValue(wert)" auch sowas wie "scrollbar.setValue(wert, custumParameters)", so dass die customParameters den Listenern des Scrollbars zugänglich werden können ?
Oder weiss jemand eine andere Lösung ?
Danke!
kopfsalat
Ich habe folgendes Problem mit dem Eventhandling bei Swing:
Für einen Scrollbar nutze ich einen JScrollbar, sowie für einen Zoomregler einen JSlider.
Der Scrollbar verschiebt den Inhalt eines Canvas-Objektes, indem ich mit einem AdjustmentListener an ihm lausche und das AdjustmentEvent abfange.
Am Zoomregler lauscht ein ChangeListener und fängt das ChangeEvent ab.
Wenn am Zoomregler nun das ChangeEvent auftaucht, da der Anwender am Zoom gedreht hat, soll entsprechend auch der JScrollbar-Value geändert werden. Dies tue ich durch den Aufruf "scrollbar.setValue(neuerWert)".
Dieser Aufruf löst jedoch ein AdjustmentEvent am Scrollbar aus, welches für mich absolut nicht zu unterscheiden ist, von einem solchen, das direkt durch Bewegen des Scrollbars entsteht.
Dort liegt jedoch für mich das Problem, da ich in diesem Fall im AdjustmentListener ein anderes Verhalten (insbesondere kein erneutes 'Verschieben') veranlassen möchte.
Daher meine Frage:
Kann man von einem Event herausfinden, wer es geschickt hat ? Hier also, ob es von JSlider's ChangeEventListener heraus erzeugt wurde, oder direkt vom JScrollbar ?
Alternativ: Gibt es anstelle von "scrollbar.setValue(wert)" auch sowas wie "scrollbar.setValue(wert, custumParameters)", so dass die customParameters den Listenern des Scrollbars zugänglich werden können ?
Oder weiss jemand eine andere Lösung ?
Danke!
kopfsalat