Hi!
Ich habe ein kleines Problem:
Ich will einen Countdown in einem Jlabel laufen lassen auf einem JPanel auf das ein Bild gezeichnet wird.
Countdown läuft auch super jedoch wird mir das Bild mit dem Countdown drauf nicht angezeigt während er runter zählt.
Sobald jedoch die Schleife beendet ist und der Countdown runtergezählt wurde zeigt er das Bild mit der letzten zeit an.
Wodran liegt das und wie kann ich den fehler beheben :?: :?: :?:
Vilen Dank schon mal im Vorraus!
Gruß
Micha
Ich habe ein kleines Problem:
Ich will einen Countdown in einem Jlabel laufen lassen auf einem JPanel auf das ein Bild gezeichnet wird.
Countdown läuft auch super jedoch wird mir das Bild mit dem Countdown drauf nicht angezeigt während er runter zählt.
Sobald jedoch die Schleife beendet ist und der Countdown runtergezählt wurde zeigt er das Bild mit der letzten zeit an.
Wodran liegt das und wie kann ich den fehler beheben :?: :?: :?:
Vilen Dank schon mal im Vorraus!
Gruß
Micha
Code:
public class myPanel extends JPanel {
Image img = null;
GUI gui=null;
String min;
String sec;
public myPanel(String imagefile, GUI gui) {
this.setLayout(null);
this.gui=gui;
if (imagefile != null) {
MediaTracker mt = new MediaTracker(this);
img = Toolkit.getDefaultToolkit().getImage(imagefile);
mt.addImage(img, 0);
try {
mt.waitForAll();
} catch (InterruptedException e) { e.printStackTrace(); }
}
min="01";
sec="00";
repaint();
count();
}
private void count(){
repaint();
boolean fertig=false;
while(!fertig){
if(min.equals("00")&&sec.equals("11")){
fertig=true;
System.out.println("Jop");
}else{ System.out.println(min+":"+sec);
if(sec.equals("00")){
sec="59";
int help=Integer.parseInt(min);
help--;
min=String.valueOf(help);
if(help==0){min=min+"0";}
}else{
int help=Integer.parseInt(sec);
help--;
sec=String.valueOf(help);
if(help==0){sec=sec+"0";}
if(help<10&&help!=0){sec="0"+sec;}
}
}
repaint();
try{
Thread.sleep(1000);
}catch(Exception e){}
}
}
public void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawImage(img,0,0,this.getWidth(),this.getHeight(),this);
gui.getLbl().setText(min+":"+sec);
}
}