PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Variablenwert von einer Klasse in eine andere Klasse geben



spiderman21
31-12-2006, 12:19
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:



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:



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

Waxolunist
31-12-2006, 19:21
Welchen Wert bekommst du denn?

Du rufst deinen Konstruktor auf. Wenn du in dem Konstruktor keinen anderen Wert vergibst hat value den Wert 0.

Ansonsten ist deine Frage eher unverständlich formuliert.

lg, christian

spiderman21
01-01-2007, 13:32
Hallo,

also ich bekomme immer den Wert zurückgeliefert den der JSlider standartmässig beim Start des Programms hat. Also wenn ich beim Start des Programms den Value Wert auf 25 einstelle bekomme ich immer 25 zurückgeliefert, nie aber den wirklich aktuellen Wert den der JSlider hat wenn er verändert wird.

mamue
01-01-2007, 14:27
Hast Du schon mal versucht, in setValue den Wert des Parameters auszugeben? Ich vermute mal, da kommt nichts an? Was passiert eigentlich, wenn jSliderInt nicht null ist, dann würde auch kein ChangeListener registriert, oder?
Ich kenne den Rest der Klasse nicht, versuch mal ein paar Debug-Anweisungen mit system.out.println( .. ) einzufügen, etwa in stateChanged, setValue, "if (jSliderInt == null)" und vielleicht auch getValue.

HTH,
mamue

spiderman21
01-01-2007, 22:32
Hallo,

ja das hab ich natürlich schon alles probiert. In der Hauptklasse kommt auch noch der richtige Wert an wenn ich ihn mir ausgeben lasse, aber in der Effect Klasse wo ich ihn brauche kommt dann immer nur der Wert an den der JSlider am Start des Programms hatte. Ich hab keine Ahnung warum.