Variablenwert von einer Klasse in eine andere Klasse geben

spiderman21

Grünschnabel
Hallo,

ich habe einen MediaPlayer der Videos abspielen kann programmiert, weiters ist in dem Player auch ein Effekt implementiert.
Ein Parameter dieses Effekts wird durch einen JSlider in der Hauptklasse eingestellt:

Code:
int value;
...
public JSlider getJSliderInt() {
                        if (jSliderInt == null) {
                                jSliderInt = new JSlider();
                                jSliderInt.setBounds(new Rectangle(414, 415, 272, 17));
                                jSliderInt.setValue(25);
                                jSliderInt.addChangeListener(new javax.swing.event.ChangeListener() {
                                   public void stateChanged(javax.swing.event.ChangeEvent e) {
                                      setValue(jSliderInt.getValue());     
                                      
                                   }
                                });
                        }
                        return jSliderInt;
                }
               
                public void setValue(int v)
                {
                value = v;
                }
               
                public int getValueJS()
                {
                return value;   
               
                }

In der Effektklasse möchte ich mir dann den value Wert mit der getValueJS Methode holen:
Code:
           MediaPlayerHSE testm = new MediaPlayerHSE();
           int value = testm.getValueJS();

Da bekomme ich nur den Wert den der JSlider am Start des programms hatte. Ich brauche aber den aktuellen value Wert, also wenn man den JSlider verschiebt. Wie kann ich das lösen?

Danke schon mal
lg Stefan
 
Entweder baust du dir ein eigenes Event welches ausgelöst wird bei setValue. Auf die Klasse mit dem Slider könnte sich dann der MediaPlayer als Listener anmelden und bekommt dann mit wenn sich der Wert geändert hat. Ein andere Möglichkeit wäre das Observer-Pattern einzusetzen.
 
Ich denke das mit dem Listener ist sinniger, da es sich hier wenn ich mich nicht täusche um eine Swing-Komponente (JSlider) handelt.
Schaue einfach mal nach welche Listern diese Komponente hat und implementiere sie in Deiner MediaPlayer-Klasse, oder welche auch immer für den Efekt bzw seiner Darstellung zuständig ist.
 
Zurück