Wywoływanie metody klasy co określony czas

0

Mam taki kod:

package Lotto;
 
import java.util.Random;
import java.util.TimerTask;
import java.util.Timer;
import java.util.Scanner;
 
class Kula {
 
    int numerKuli;
    boolean czyObciazona;
 
    public Kula(boolean czyObciazona, int numerKuli) {
        this.czyObciazona = czyObciazona;
        this.numerKuli = numerKuli;
    }
 
    public void DodanieObciazenia() {
        this.czyObciazona = true;
    }
 
    public void WypiszKule() {
        System.out.println("numer kuli: " + numerKuli);
        System.out.println("czyObciazona: " + czyObciazona);
    }
}
 
public class Maszynalosujaca {
 
    Kula[] tablica_kul = new Kula[49];
    Timer timer;
    // int[] kuleObciazone = new int [6];
 
    public Maszynalosujaca() {
        for (int i = 0; i < 49; i++) {
            tablica_kul[i] = new Kula(false, i);
        }
        Random losowyObiekt = new Random();
        for (int i = 0; i < 6; i++) {
            int liczba = losowyObiekt.nextInt(48);
            int numerkuli = tablica_kul[liczba].numerKuli;
            tablica_kul[liczba] = new Kula(true, numerkuli);
            //kuleObciazone[i] = liczba;
        }
    }
 
    private void losowanie(Maszynalosujaca Maszyna) {
        Random losowyObiekt = new Random();
        int liczba1 = losowyObiekt.nextInt(48);
        int liczba2 = losowyObiekt.nextInt(48);
        Kula temp;
        if (liczba1 != liczba2) {
            temp = Maszyna.tablica_kul[liczba1];
            Maszyna.tablica_kul[liczba1] = Maszyna.tablica_kul[liczba2];
            Maszyna.tablica_kul[liczba2] = temp;
        }
        for (int i = 0; i < 49; i++) {
            if (Maszyna.tablica_kul[i].czyObciazona == true) {
                if (i > 1) {
                    temp = Maszyna.tablica_kul[i - 1];
                    Maszyna.tablica_kul[i - 1] = Maszyna.tablica_kul[i];
                    Maszyna.tablica_kul[i] = temp;
                }
            }
        }
    }
 
    public void start() {
        timer = new Timer();
        timer.schedule(new RemindTask(), 0, 1000);
    }
 
 
    class RemindTask extends TimerTask {
        int liczbapowtorzen = 3;
        public void run() {
            if (liczbapowtorzen > 0) {
                System.out.println("Beep");
                liczbapowtorzen--;
            } else {
                System.out.println("Koniec!");
                timer.cancel();
            }
        }
    }
 
    public void stop() {
 
    }
 
    public static void main(String[] args) {
        Maszynalosujaca Maszyna = new Maszynalosujaca();
        for (int i = 0; i < 49; i++) {
            System.out.println(Maszyna.tablica_kul[i].numerKuli);
            System.out.println(Maszyna.tablica_kul[i].czyObciazona);
        }
        Maszyna.losowanie(Maszyna);
        System.out.println("----------");
        for (int i = 0; i < 49; i++) {
            System.out.println(Maszyna.tablica_kul[i].numerKuli);
            System.out.println(Maszyna.tablica_kul[i].czyObciazona);
        }
    }
}

Metoda start() ma rozpoczynać proces losowania a metoda stop ma konczyc proces losowania oraz wracać 6 pierwszych kul. Nie za bardzo wiem jak zrobić aby pomiędzy wywołaniami stop() i start(), co określony przedział czasu uruchamiała mi się metoda losuj, aby zamieniała mi elementy w tablicy Maszyna. Nie za bardzo wiem w jaki sposób zaimplementować te timery. Z Javą pracuję dopiero od dzisiaj ;s.

0

Ja bym sugerował wyrzucenie kodu przez okno i napisanie od nowa, porządnie i ze zrozumieniem.

1 użytkowników online, w tym zalogowanych: 0, gości: 1