如何在循环内传递关键事件

时间:2012-10-10 22:12:08

标签: java loops keyevent

我有问题。

在我的课程中,我有2个课程:

  1. MainFrame

    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");
            }
        }
    
    }
    
  2. LOGIKA

    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;
        }
    
    }
    
  3. 使用这种方法我有问题。

    在最后5秒钟循环,但如果我按下“a”键,我想提前停止。

    现在它的工作原理是: - 程序开始, -loop持续5秒(即按“a”) - 程序仅在循环

    之后响应按下的键

    有可能吗?

0 个答案:

没有答案