samedi 9 mai 2015
JSlider - Wert ändern im Sekundentakt per Thread
Posted on 06:14 by verona
Hallo!
Ich habe hier einen JSlider, sein Knauf steht auf 10. Ich will, dass er im Sekundentakt um einen Wert absteigt. Dabei heißt es ja, dass Swing nicht threadsicher ist, und für GUI-Manipulationen spezielle Methoden vonnöten sind. Ich habe es gerade mit EventQueue.invokeLater versucht, sowas wird auch auf vielen Seiten empfohlen. Dennoch klappt es nicht, es kommt immer eine Fehlermeldung eine NullPointerException. Mein Slider wird in der Thread-Klasse anscheinend nicht erkannt.
Kann sein, dass das Problem auch nicht direkt an dem Thread-Code selbst, sondern an meiner Technik liegt, Sachen aus fremden Klassen anzusteuern. Vermute ich jetzt mal.
Hier ist der Code, die Fehlermeldung richtet sich gegen den Inhalt der invokeLater-run-Methode (Zeile 58). Was mache ich da falsch?
Ich habe hier einen JSlider, sein Knauf steht auf 10. Ich will, dass er im Sekundentakt um einen Wert absteigt. Dabei heißt es ja, dass Swing nicht threadsicher ist, und für GUI-Manipulationen spezielle Methoden vonnöten sind. Ich habe es gerade mit EventQueue.invokeLater versucht, sowas wird auch auf vielen Seiten empfohlen. Dennoch klappt es nicht, es kommt immer eine Fehlermeldung eine NullPointerException. Mein Slider wird in der Thread-Klasse anscheinend nicht erkannt.
Kann sein, dass das Problem auch nicht direkt an dem Thread-Code selbst, sondern an meiner Technik liegt, Sachen aus fremden Klassen anzusteuern. Vermute ich jetzt mal.
Hier ist der Code, die Fehlermeldung richtet sich gegen den Inhalt der invokeLater-run-Methode (Zeile 58). Was mache ich da falsch?
Java Code:
-
import java.awt.EventQueue;
-
-
import javax.swing.JFrame;
-
import javax.swing.JLabel;
-
import javax.swing.JPanel;
-
import javax.swing.JSlider;
-
import javax.swing.event.ChangeEvent;
-
import javax.swing.event.ChangeListener;
-
-
public class app {
-
-
-
-
public void gui(){
-
-
s.addChangeListener(new anzeigeLListener());
-
bg.add(anzeigeL);
-
-
-
-
-
-
-
Rahmen.setBounds(700,0,1000,1000); Rahmen.setVisible(true);
-
}//gui()
-
-
-
-
anzeigeL.setText(""+s.getValue());
-
-
}}//anzeigeLListener
-
-
-
return s;
-
}//getS()
-
-
-
-
}//class app
-
-
-
-
public void second()
-
{try{
-
-
}});//invokeLater()
-
-
}//second()
-
-
public void run(){
-
-
for(int i=0; i<4; i++){second(); }//FOR
-
-
}//run()
-
-
}//class decreaseT
JSlider - Wert ändern im Sekundentakt per Thread
Categories: JSlider - Wert ändern im Sekundentakt per Thread
Inscription à :
Publier les commentaires (Atom)
0 commentaires:
Enregistrer un commentaire