Funkcja sleep() [Processing, Java]


(kid_m) #1

Hej.

W swoim sketchu (Processing) próbuję użyć funcji sleep() z języka Java, ale niestety...

http://download.oracle.com/javase/1.4.2 ... hread.html

Zaimportowałem odpowiednią (chyba...) rzecz tzn.

import java.lang.Thread;

A później próbowałem na różne sposoby (żeby po naciśnięciu przycisku aplikacja usypiała na 2 sekundy),

niestety z żadnym z poniższych sposobów się nie kompiluje... 'Sposoby' już po prostu nieco wymyślałem.

sleep(2000);

Thread.sleep(2000);

java.lang.Thread.sleep(2000);

currentThread().sleep(2000);

Thread.currentThread().sleep(2000);

Czy mógłby ktoś pomóc ?


(Sawyer47) #2

Pokaż komunikaty błędów, oraz kod zgodnie z zaleceniami z zanim-cokolwiek-napiszesz-przeczytaj-ten-temat-t152275.html


(kid_m) #3

kolejno dla wypisanych wcześniej przeze mnie sposobów:

java.lang.Thread.sleep(2000); // "Unhandled exception type InterruptedException"

sleep(2000); // "The function sleep(int) does not exist."

Thread.sleep(2000); // "Unhandled exception type InterruptedException"

currentThread().sleep(2000); // "The function currentThread(int) does not exist."

Thread.currentThread().sleep(2000); // "Unhandled exception type InterruptedException"

czyli ogólnie 2 różne komunikaty... rozumiem, że fragment "import java.lang.Thread;" dobrze importuje ?


(Sawyer47) #4

No, więc komunikat błędu mówi wszystko: "Unhandled exception type InterruptedException"

Tu http://download.oracle.com/javase/1.4.2 ... %28long%29 masz napisane, że ta metoda rzuca InterruptedException, trzeba obsłużyć wyjątek przez try ... catch.


(kid_m) #5

ok. niestety nie zmienia to wartosci "pusto"->"saved" w sposob jaki oczekiwalem...

jeśli naciskam przycisk to wykonuje się...

show_saved.setValue("pusto");


try {

  Thread.sleep(3000);

}

catch (InterruptedException e) { }


show_saved.setValue("saved");

widać wartość "saved" (po 3 sekundach), wcześniejszej "pusto" już nie.


(Kojot) #6

Co znaczy, że nie widać wcześniejszej wartości "pusto", bo nie bardzo rozumiem?


(kid_m) #7

tak. z tym, że aby jakakolwiek wartość była pokazana (narysowana) musi być użyte cp6.draw()

więc może o to chodzi...? bo jest to później tylko raz w programie zastosowane...