Wojtekss napisał(a)
Niestety po wcisnieciu przycisku Start petla sie wykonuje, rysuje ladne punkty jak nalezy
Myślę zatem, że błąd nie siedzi tam gdzie pisał ::., ale w kodzie, który podałeś.
Zauważ, że jeżeli piszesz:
int iloscElementow = ODane.length;
stop = true;
while(j<iloscElementow || stop ==true) { //swoją drogą, jeżeli stop jest boolean'em, nie musisz pisać stop==true, wystarczy same 'stop' (warunki przyjmują typy boolean)
RysujPunkt(j);
j++;
}
, gdy naciskasz przycisk STOP, i zmieniasz wartość zmiennej stop na false, pętla się wykonuje dalej, bo j<iloscElementow się zgadza, a operator || symbolizuje alternatywę (przynajmniej jedno zdanie musi być prawdziwe).
Jeżeli zamienisz || na && (alternatywę na koniunkcję), warunek będzie wymagał obydwu zdań poprawnych (skończy wykonywać pętle gdy j==iloscElementow LUB gdy stop!=true). Jednak czy o to Ci chodzi? Zauważmy, że program 'pójdzie dalej' i nie wróci już do tego while'a by zmiana stop na false (przyciskiem start) wznowiła rysowanie. Możesz to rozwiązać np. tak:
int iloscElementow = ODane.length;
stop = true;
while(j<iloscElementow) {
if (stop) {
RysujPunkt(j);
j++;
} else
try {Thread.sleep(10);} catch (Exception e){} //usypiasz watek na 10ms co każdego 'nieudanego if'a', jednocześnie program 'siedzi w while'u'.
}
pozdro