Hallo zusammen,
folgendes Problem macht mir gerade etwas zu schaffen:
Meine Anwendung basiert auf dem MVC-Pattern. Nun habe ich eine GUI gebastelt, die unter anderem ein Textfeld und daneben zwei Buttons und einen JSlider enthält. Das Textfeld zeigt den Wert einer Variablen an, die vom Model stammt.
Der Wert dieser Variablen soll sich durch folgende drei Möglichkeiten ändern lassen:
Der Slider soll den entsprechenden Wert natürlich auch dann korrekt anzeigen, wenn er über Möglichkeit 1 oder 2 geändert wurde. Deshalb aktualisiert die GUI den Wert des Sliders mit setValue(), sobald sie vom Model über eine Änderung benachrichtigt wurde.
Dies löst allerdings immer ein ChangeEvent aus, das ich gerne verhindern möchte. Denn der Slider soll nur dann ein Event auslösen, wenn der Benutzer die Änderung auch über diesen vornimmt und nicht über das Textfeld oder die Buttons.
Als Hotfix meldet sich der Controller zur Zeit vor dem Aufruf von setValue() ab, nur um sich danach wieder anzumelden. Das ist ziemlich unschön
Habt ihr Vorschläge, wie man das eleganter lösen könnte?
folgendes Problem macht mir gerade etwas zu schaffen:
Meine Anwendung basiert auf dem MVC-Pattern. Nun habe ich eine GUI gebastelt, die unter anderem ein Textfeld und daneben zwei Buttons und einen JSlider enthält. Das Textfeld zeigt den Wert einer Variablen an, die vom Model stammt.
Der Wert dieser Variablen soll sich durch folgende drei Möglichkeiten ändern lassen:
- über das Textfeld selbst (ActionEvent)
- über einen der beiden Buttons (ActionEvent)
- über den JSlider (ChangeEvent)
Der Slider soll den entsprechenden Wert natürlich auch dann korrekt anzeigen, wenn er über Möglichkeit 1 oder 2 geändert wurde. Deshalb aktualisiert die GUI den Wert des Sliders mit setValue(), sobald sie vom Model über eine Änderung benachrichtigt wurde.
Dies löst allerdings immer ein ChangeEvent aus, das ich gerne verhindern möchte. Denn der Slider soll nur dann ein Event auslösen, wenn der Benutzer die Änderung auch über diesen vornimmt und nicht über das Textfeld oder die Buttons.
Als Hotfix meldet sich der Controller zur Zeit vor dem Aufruf von setValue() ab, nur um sich danach wieder anzumelden. Das ist ziemlich unschön
Habt ihr Vorschläge, wie man das eleganter lösen könnte?