У меня проблема.
В моей программе у меня есть 2 класса:
Основной кадр
public class MainFrame extends javax.swing.JFrame { Logika logika; . . . private void przyciskKeyPressed(java.awt.event.KeyEvent evt) { // TODO add your handling code here: char znak = evt.getKeyChar(); int kod = evt.getKeyCode(); if(kod==KeyEvent.VK_A) { logika.key_pressed("a"); } } }
Логика
public class Logika { . . . Calendar cal = Calendar.getInstance(); public void start() { gra_rozpoczeta=true; punkty=0; liczba=1; x[0]=251; y[0]=301; cal = Calendar.getInstance(); czas=cal.getTimeInMillis(); while(gra_rozpoczeta==true) { cal=Calendar.getInstance(); dif=dif-(int)(cal.getTimeInMillis()-czas); if(dif<0) akcja(); try { Thread.currentThread().sleep(50); } catch (InterruptedException ex) { Logger.getLogger(Logika.class.getName()).log(Level.SEVERE, null, ex); } czas=cal.getTimeInMillis(); } } private void akcja() { dif=500; liczba++; if(liczba==10) key_presed=true; if(key_presed==true) gra_rozpoczeta=false; } public void key_pressed(String s) { key_presed=true; key=s; } }
С этими методами у меня проблема.
Цикл длится 5 секунд, но я хочу остановить его раньше, если нажму клавишу «а».
Сейчас работает что: -запуск программы, -цикл последние 5 секунд(нажимаю "а") -Программа реагирует на нажатые клавиши только после цикла
Можно ли сделать?