Następny krok po wciśnięciu klawisza

Następny krok po wciśnięciu klawisza
JA
  • Rejestracja: dni
  • Ostatnio: dni
0

Cześć,

mam pewien algorytm, w którym pokazuje kroki jak on działa. Do tego używam Thread.sleep(), jednak chciałbym aby następny krok był np. po naciśnięciu jakiegoś klawisza lub myszki. Czy można to w jakiś łatwy sposób zrobić? W stylu:

mam pętlę:

Kopiuj
for( int i = 0; i < 10; ++i ) {
  try {
    Thread.sleep( 1000 );
  } catch(InterruptedException ex) {}

  System.out.println( "krok " + i );
  // ..
}

i chciałbym zamiast sleepa wrzucić coś co by czekało na przycisk klawisza. Czy jest to możliwe?

Pozdrawiam i dziękuję za pomoc.

Koziołek
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Stacktrace
  • Postów: 6823
0

Można wykorzystać klasę Scaner:

Kopiuj
Scanner scanner = new Scanner(System.in);
for( int i = 0; i < 10; ++i ) {
   scanner.nextLine();
  System.out.println( "krok " + i );
  // ..
}

Po naciśnięciu enter przejdzie do kolenego kroku w pętli.

JA
  • Rejestracja: dni
  • Ostatnio: dni
0

szlag, fajny sposób, ale zapomniałem dodać ze to aplikacja okienkowa, przepraszam za pomyłkę. Nie można jakoś czegoś takiego przypisać do buttona?

  • Rejestracja: dni
  • Ostatnio: dni
0

a może po prostu obsługa zdarzeń, wówczas - coś Ci się wykonało - wyświetlasz informację - wszak jest to program okienkowy :)

JA
  • Rejestracja: dni
  • Ostatnio: dni
0

dobra poradziłem sobie, dałem zmienną stop = true; i po tym pętlę while( stop == true ) {}, a przy przyciśnięciu buttona zamienia stop na false i wychodzi dzięki temu z pętli i leci dalej.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.