Witam,
mam taki problem, tworzę sobie prostą aplikację do czasowników nieregularnych i napotkałem na dziwny problem. Problem jest w funkcji nastepny(). Chciałem wyświetlić w JTextField napisy np. na 1s a następnie automatycznie przejść dalej, czyli wszystko wyczyścić i od nowa.... Tylko że po napisaniu jak niżej i zrobieniu sleep(1000), program najpierw śpi i nie wyświetla :/
public boolean nastepny() {
if(jButton2.isEnabled()){
/*Runnable w2 = new Watek();
Thread watek2 = new Thread(w2);
watek2.start();*/
sprawdz();
czekaj();
}
index++;
if (indeksy.isEmpty()) {
jLabel1.setText("Koniec");
jButton1.setText("Losuj");
jSlider1.setEnabled(true);
jTextField4.setEnabled(true);
this.aktywuj(false);
dzialaj.serializuj();
this.reset();
return true;
}
if (index == indeksy.size()) {
index = 0;
}
jLabel1.setText(dzialaj.getConcret(indeksy.get(index)).getEng1());
jLabel2.setText(dzialaj.getConcret(indeksy.get(index)).getEng2());
jLabel3.setText(dzialaj.getConcret(indeksy.get(index)).getEng3());
jLabel4.setText(dzialaj.getConcret(indeksy.get(index)).getPol());
this.reset();
jButton2.setEnabled(true);
return false;
}
public void czekaj(){
try{
Thread.sleep(5000);
}catch(InterruptedException ex){
System.out.println("Nie mozna zatrzymać programu");
}
}
/*public class Watek implements Runnable{
public void run(){
sprawdz();
}
}*/
cały kod: http://ideone.com/b4vlxM
Tak wygląda przed kliknięciem jakiegokolwiek przycisku
A tak po wciśnięciu Sprawdź i chciałbym żeby tak wyglądał przez tą sekundę:
po czym powrócił do wersji startowej
Aplikacja polega na wpisywaniu form czasowników. Jeśli wpiszemy wszystkie i klikniemy przycisk "Sprawdź" uruchomi on metodę sprawdz(). Metoda sprawdz(), jest odpowiedzialna za sprawdzenie poprawności wyniku, a jeśli jest błędny to wyświetlenie poprawnego. Przycisk "Następny" powoduje wyświetlenie kolejnego czasownika. Chciałbym zrobić to tak, żeby, jeśli ktoś nie kliknie przycisku "Sprawdź", tylko od razu po wpisaniu czasowników kliknie "Następny", przycisk ten zadziałał jak sprawdź, czyli sprawdził poprawność i np po 1s wyświetlił następny czasownik.
Niestety po tym co napisałem program czeka tę sekundę po czym wyświetla następne słowo.
Z moich obserwacji wynika, że program najpierw czeka (sleep) a następnie wykonuje sprawdzanie :/ a chciałbym to zrobić w odwrotny sposób.
- 04c8aecb73.png (25 KB) - ściągnięć: 156
- 6fd232ddd2.png (18 KB) - ściągnięć: 170