Hallo!
Nach langer Suche und meheren Experimenten im Punkto Thread Programmierung, muss ich wohl wieder hier einige Herrschaften mit meinen Problemen belästigen.
Folgendes: Es soll auf einem JApplet mithilfe eines Thread das JLabelicon ín bestimmten zeitabständen verändern werden. Es ist bestimmt nicht die Beste Methode eine Diashow zu realisieren, für neue Ideen bin ich Offen.
Ich erzeuge das Thread in einem JButton-Listener.
Hier eine kurze Beschreibung der Klasse:
Im Applet wird ein Thread erzeugt der 4 Sekunden anhält. Während diesen 4 Sekunden ist noch ein Thread vorhanden der in Einsekundentakt die Bilder ändern soll, was halt noch nicht funktioniert. Die Konsolenausgabe zeigt mir jedoch, dass dieser durchläuft.
Es soll, wie ich gelesen habe, ein Hauptthread existieren. In diesen 4 Sekunden werden auch andere anzeigen(Berechnungen) unterbrochen.
Ich möchte halt ein "Babythread" haben der diese Diashow steuert
Danke für Annregungen.
LG
Nach langer Suche und meheren Experimenten im Punkto Thread Programmierung, muss ich wohl wieder hier einige Herrschaften mit meinen Problemen belästigen.
Folgendes: Es soll auf einem JApplet mithilfe eines Thread das JLabelicon ín bestimmten zeitabständen verändern werden. Es ist bestimmt nicht die Beste Methode eine Diashow zu realisieren, für neue Ideen bin ich Offen.
Ich erzeuge das Thread in einem JButton-Listener.
Java:
jButtonEinloggen.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
.
.
.
DiashowThread thDia = new DiashowThread(jLabelInfo,station);
thDia.start();
try {
Thread.sleep(4000);#
//thDia.sleep(4000) So tritt dasselbe problem auf
}
Hier eine kurze Beschreibung der Klasse:
Im Applet wird ein Thread erzeugt der 4 Sekunden anhält. Während diesen 4 Sekunden ist noch ein Thread vorhanden der in Einsekundentakt die Bilder ändern soll, was halt noch nicht funktioniert. Die Konsolenausgabe zeigt mir jedoch, dass dieser durchläuft.
Es soll, wie ich gelesen habe, ein Hauptthread existieren. In diesen 4 Sekunden werden auch andere anzeigen(Berechnungen) unterbrochen.
Ich möchte halt ein "Babythread" haben der diese Diashow steuert
Java:
public class DiashowThread extends Thread{
public JLabel objJLabelInfoBild;
int station;
public DiashowThread(JLabel objJLabelInfo, int round) {
objJLabelInfoBild = objJLabelInfo;
station = round;
}
public void run(){
int tmpStation;
tmpStation = station +1;
while(true){
if (isInterrupted()){
break;
}
Integer istr = new Integer(tmpStation);
objJLabelInfoBild.setIcon(new ImageIcon(getClass().getResource("/images/bild"+istr.toString()+".jpg")));
showImages(tmpStation);
tmpStation++;
}
}
public void showImages(int i) {
Integer istr = new Integer(i);
System.out.println(istr.toString());
objJLabelInfoBild.setIcon(new ImageIcon(getClass().getResource("/images/bild"+istr.toString()+".jpg")));
System.out.println(new ImageIcon(getClass().getResource("/images/bild"+istr.toString()+".jpg")).toString());
objJLabelInfoBild.setText("Hallo"+i);
try{
Thread.sleep(1000);
}catch(InterruptedException e) {
interrupt();
}
}
}
Danke für Annregungen.
LG
Zuletzt bearbeitet von einem Moderator: