Wie kann ich verhindern, dass sich meine Malmethode zweimal wiederholt?

Hier ist der Code für ein Würfelspiel, an dem ich arbeite und das die Ergebnisse in einem Fenster ausgibt. Die Malmethode wird zweimal wiederholt, was für mich nicht gut ist, da ich möchte, dass die Würfel einmal gewürfelt werden und dann zum nächsten Frame übergehen. Bitte hilft mir jemand bei diesem Problem. Danke im Voraus.

import java.awt.*;
import java.util.Random;
import javax.swing.*;

public class Dice extends JApplet {

public static int pause(int n)
{
    try {
        Thread.sleep(n);
        } catch(InterruptedException e) {
    }
    return n;
}

public void Dice() {
    JApplet app = new Dice();
    JFrame frame = new JFrame("Dice Game");
    frame.setBounds(30, 50, 1300, 650);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setVisible(true);
    frame.add(app);
}

public void paint(Graphics g) {
    int width = getWidth();    
    int height = getHeight(); 

    int num = 0;
    for (int i = 0; i < 7; i++) {
        Random generator= new Random();
        int number = generator.nextInt(6)+1;
        g.setColor(Color.WHITE);
        g.fillRect(0, 0, width, height);
        g.setColor(Color.BLACK);
        g.drawRoundRect(550, 150, 200, 200, 50, 50);
        System.out.println("Test");
        if (number == 1) {              //Roll one
            num = 1;
            g.setColor(new Color (0, 0, 0));
            g.fillOval(640, 240, 20, 20);
            pause(100);
        } if (number == 2) {                //Roll two
            num = 2;
            g.setColor(new Color (0, 0, 0));
            g.fillOval(590, 290, 20, 20);
            g.fillOval(690, 190, 20, 20);
            pause(100);
        } if (number == 3) {                //Roll three
            num = 3;
            g.setColor(new Color (0, 0, 0));
            g.fillOval(590, 290, 20, 20);
            g.fillOval(640, 240, 20, 20);
            g.fillOval(690, 190, 20, 20);
            pause(100);
        } if (number == 4) {                //Roll four
            num = 4;
            g.setColor(new Color (0, 0, 0));
            g.fillOval(590, 290, 20, 20);
            g.fillOval(590, 190, 20, 20);
            g.fillOval(690, 290, 20, 20);
            g.fillOval(690, 190, 20, 20);
            pause(100);
        } if (number == 5) {                //Roll five
            num = 5;
            g.setColor(new Color (0, 0, 0));
            g.fillOval(590, 290, 20, 20);
            g.fillOval(590, 190, 20, 20);
            g.fillOval(640, 240, 20, 20);
            g.fillOval(690, 290, 20, 20);
            g.fillOval(690, 190, 20, 20);
            pause(100);
        } if (number == 6) {                //Roll six
            num = 6;
            g.setColor(new Color (0, 0, 0));
            g.fillOval(590, 190, 20, 20);
            g.fillOval(590, 240, 20, 20);
            g.fillOval(590, 290, 20, 20);
            g.fillOval(690, 190, 20, 20);
            g.fillOval(690, 240, 20, 20);
            g.fillOval(690, 290, 20, 20);
            pause(100);
        }
    }
    g.setFont(new Font("TimesRoman", Font.PLAIN, 20));
    g.drawString("You rolled a " + num, 590, 100);
    pause(1000);
  }
}

Antworten auf die Frage(1)

Ihre Antwort auf die Frage