Hello, im trying to make this countdown via JFrame.
package yasuharu.takanashi;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.Toolkit;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class TitanBall extends JPanel{
static int FrameHeight = 1320, FrameLength = 700;
static int Tid = 31;
public static void main(String[] args) throws InterruptedException
{
JFrame TitanBall = new JFrame("Yasuharu Takanashi");
TitanBall.pack();
TitanBall.setSize(FrameHeight, FrameLength);
TitanBall.setVisible(true);
TitanBall.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
new MusicIntro();
TitanBall StartScreen = new TitanBall();
TitanBall.add(StartScreen);
while(Tid > 0){
TitanBall.validate();
TitanBall.repaint();
Tid--;
Thread.sleep(1000);
}
TitanBall.add(new Grafik_Bane());
TitanBall.validate();
new MusicIngame();
}
@Override
public void paint(Graphics g)
{
super.paint(g);
if(Tid == 30){
Image StartScreen30 = Toolkit.getDefaultToolkit().getImage("StartScreen30.png");
g.drawImage(StartScreen30, 0, 0, 1320, 700, this);
}
if(Tid == 29){
Image StartScreen29 = Toolkit.getDefaultToolkit().getImage("StartScreen29.png");
g.drawImage(StartScreen29, 0, 0, 1320, 700, this);
}
if(Tid == 28){
Image StartScreen28 = Toolkit.getDefaultToolkit().getImage("StartScreen28.png");
g.drawImage(StartScreen28, 0, 0, 1320, 700, this);
}
if(Tid == 27){
Image StartScreen27 = Toolkit.getDefaultToolkit().getImage("StartScreen27.png");
g.drawImage(StartScreen27, 0, 0, 1320, 700, this);
}
if(Tid == 26){
Image StartScreen26 = Toolkit.getDefaultToolkit().getImage("StartScreen26.png");
g.drawImage(StartScreen26, 0, 0, 1320, 700, this);
}
if(Tid == 25){
Image StartScreen25 = Toolkit.getDefaultToolkit().getImage("StartScreen25.png");
g.drawImage(StartScreen25, 0, 0, 1320, 700, this);
}
if(Tid == 24){
Image StartScreen24 = Toolkit.getDefaultToolkit().getImage("StartScreen24.png");
g.drawImage(StartScreen24, 0, 0, 1320, 700, this);
}
if(Tid == 23){
Image StartScreen23 = Toolkit.getDefaultToolkit().getImage("StartScreen23.png");
g.drawImage(StartScreen23, 0, 0, 1320, 700, this);
}
if(Tid == 22){
Image StartScreen22 = Toolkit.getDefaultToolkit().getImage("StartScreen22.png");
g.drawImage(StartScreen22, 0, 0, 1320, 700, this);
}
if(Tid == 21){
Image StartScreen21 = Toolkit.getDefaultToolkit().getImage("StartScreen21.png");
g.drawImage(StartScreen21, 0, 0, 1320, 700, this);
}
if(Tid == 20){
Image StartScreen20 = Toolkit.getDefaultToolkit().getImage("StartScreen20.png");
g.drawImage(StartScreen20, 0, 0, 1320, 700, this);
}
if(Tid == 19){
Image StartScreen19 = Toolkit.getDefaultToolkit().getImage("StartScreen19.png");
g.drawImage(StartScreen19, 0, 0, 1320, 700, this);
}
if(Tid == 18){
Image StartScreen18 = Toolkit.getDefaultToolkit().getImage("StartScreen18.png");
g.drawImage(StartScreen18, 0, 0, 1320, 700, this);
}
if(Tid == 17){
Image StartScreen17 = Toolkit.getDefaultToolkit().getImage("StartScreen17.png");
g.drawImage(StartScreen17, 0, 0, 1320, 700, this);
}
if(Tid == 16){
Image StartScreen16 = Toolkit.getDefaultToolkit().getImage("StartScreen16.png");
g.drawImage(StartScreen16, 0, 0, 1320, 700, this);
}
if(Tid == 15){
Image StartScreen15 = Toolkit.getDefaultToolkit().getImage("StartScreen15.png");
g.drawImage(StartScreen15, 0, 0, 1320, 700, this);
}
if(Tid == 14){
Image StartScreen14 = Toolkit.getDefaultToolkit().getImage("StartScreen14.png");
g.drawImage(StartScreen14, 0, 0, 1320, 700, this);
}
if(Tid == 13){
Image StartScreen13 = Toolkit.getDefaultToolkit().getImage("StartScreen13.png");
g.drawImage(StartScreen13, 0, 0, 1320, 700, this);
}
if(Tid == 12){
Image StartScreen12 = Toolkit.getDefaultToolkit().getImage("StartScreen12.png");
g.drawImage(StartScreen12, 0, 0, 1320, 700, this);
}
if(Tid == 11){
Image StartScreen11 = Toolkit.getDefaultToolkit().getImage("StartScreen11.png");
g.drawImage(StartScreen11, 0, 0, 1320, 700, this);
}
if(Tid == 10){
Image StartScreen10 = Toolkit.getDefaultToolkit().getImage("StartScreen10.png");
g.drawImage(StartScreen10, 0, 0, 1320, 700, this);
}
if(Tid == 9){
Image StartScreen9 = Toolkit.getDefaultToolkit().getImage("StartScreen9.png");
g.drawImage(StartScreen9, 0, 0, 1320, 700, this);
}
if(Tid == 8){
Image StartScreen8 = Toolkit.getDefaultToolkit().getImage("StartScreen8.png");
g.drawImage(StartScreen8, 0, 0, 1320, 700, this);
}
if(Tid == 7){
Image StartScreen7 = Toolkit.getDefaultToolkit().getImage("StartScreen7.png");
g.drawImage(StartScreen7, 0, 0, 1320, 700, this);
}
if(Tid == 6){
Image StartScreen6 = Toolkit.getDefaultToolkit().getImage("StartScreen6.png");
g.drawImage(StartScreen6, 0, 0, 1320, 700, this);
}
if(Tid == 5){
Image StartScreen5 = Toolkit.getDefaultToolkit().getImage("StartScreen5.png");
g.drawImage(StartScreen5, 0, 0, 1320, 700, this);
}
if(Tid == 4){
Image StartScreen4 = Toolkit.getDefaultToolkit().getImage("StartScreen4.png");
g.drawImage(StartScreen4, 0, 0, 1320, 700, this);
}
if(Tid == 3){
Image StartScreen3 = Toolkit.getDefaultToolkit().getImage("StartScreen3.png");
g.drawImage(StartScreen3, 0, 0, 1320, 700, this);
}
if(Tid == 2){
Image StartScreen2 = Toolkit.getDefaultToolkit().getImage("StartScreen2.png");
g.drawImage(StartScreen2, 0, 0, 1320, 700, this);
}
if(Tid == 1){
Image StartScreen1 = Toolkit.getDefaultToolkit().getImage("StartScreen1.png");
g.drawImage(StartScreen1, 0, 0, 1320, 700, this);
}
if(Tid == 0){
Image StartScreen = Toolkit.getDefaultToolkit().getImage("StartScreenGameStarting.png");
g.drawImage(StartScreen, 0, 0, 1320, 700, this);
}
}
}
So here I try to paint each Image, every second with the help of the
while(Tid > 0){
TitanBall.validate();
TitanBall.repaint();
Tid--;
Thread.sleep(1000);
}
The countdown works. But everytime it switch between the next image, a white flash will occur.
What I have tried:
I have tried to use;
repaint();
and
validate();
more often but nothing seemed to work, and know I ran out of ideas.