Witam, ponizej zamieszczam kod ktory w moim zamysle powinien sprawdzac poszczegolne kratki jesli nie są X powinien po wczesniejszym uzupelniu wczesniejszej kratki przeskakiwac do kolejnej, do tablic zapisywac wprowadzone znaki oraz czas odstepu pomiedzy nimi, liczy sie jednak tylko czas pomiedzy nie "zaXsowanymi" kratkami. Niby dziala, ale czasem pomija pewne kratki, analizowalam kod kilkukrotnie, nie moge sie doszukac bledu, prosze o pomoc

// sprawdza 1kratke
        if (src==mhh)   {
 //jesli nie jest X
 String s = "X";
char c = s.charAt(0);
            wyniki2[0] = e.getKeyChar();
            myTime = System.currentTimeMillis();   
            result2[0] = 0;
            //sprawdza druga kratke
            if ((!"X".equals(mh1.getText()))){  
                mhh.transferFocus();
                }
            //jesli druga jest X a trzecia nie
             if ((("X".equals(mh1.getText()))) && ((!"X".equals(mh2.getText())))){  
                mh1.transferFocus();
                wyniki2[1]=c;
                result2[1]=0;
                }
             //jesli 2 i 3 są X 
                if ((("X".equals(mh1.getText()))) && (("X".equals(mh2.getText())))){
                 wyniki2[1]=c;
                 wyniki2[2]=c;
                result2[1]=0;
                result2[2]=0;
                mh2.transferFocus();
                }
        }
     
        
        
      
       
       // jesli jestesmy na 2 kratce i nie jest X
        if (src==mh1)  {
            wyniki2[1] = e.getKeyChar();
            myTime1 = System.currentTimeMillis();        
            result2[1] = (System.currentTimeMillis() - myTime) / 10;
            //sprawdza trzecia kratke
            if ((!"X".equals(mh2.getText()))){  
                mh1.transferFocus();
                }
            // sprawdza trzecia kratke, jesli jest X, ale 4 nie jest 
            if ((("X".equals(mh2.getText()))) && ((!"X".equals(mh3.getText())))){  
                mh2.transferFocus();
                wyniki2[2]=c;
                result2[2]=0;
                }
            // jesli i 3 i 4 kratka to X
                 if ((("X".equals(mh2.getText()))) && (("X".equals(mh3.getText())))){  
                     wyniki2[2]=c;
                     wyniki2[3]=c;
                result2[2]=0;
                result2[3]=0;
                mh3.transferFocus();
                }
        }
        
        // jesli jestesmy na 3 kratce i nie jest X
        if (src==mh2)  {
            wyniki2[2] = e.getKeyChar();
            myTime2 = System.currentTimeMillis();        
            result2[2] = (System.currentTimeMillis() - myTime1) / 10;
            //sprawdza czwarta kratke
            if ((!"X".equals(mh3.getText()))){  
                mh2.transferFocus();
                }
            // sprawdza czwarta kratke, jesli jest X, ale 5 nie jest 
            if ((("X".equals(mh3.getText()))) && ((!"X".equals(mh4.getText())))){  
                mh3.transferFocus();
                wyniki2[3]=c;
                result2[3]=0;
                }
            // jesli i 4 i 5 kratka to X
                 if ((("X".equals(mh3.getText()))) && (("X".equals(mh4.getText())))){  
                     wyniki2[3]=c;
                     wyniki2[4]=c;
                result2[3]=0;
                result2[4]=0;
                mh4.transferFocus();
                }
        }
        
        // jesli jestesmy na 4 kratce i nie jest X
        if (src==mh3)  {
            wyniki2[3] = e.getKeyChar();
            myTime3 = System.currentTimeMillis();        
            result2[3] = (System.currentTimeMillis() - myTime2) / 10;
            //sprawdza piata kratke
            if ((!"X".equals(mh4.getText()))){  
                mh3.transferFocus();
                }
            // sprawdza piata kratke, jesli jest X, ale 6 nie jest 
            if ((("X".equals(mh4.getText()))) && ((!"X".equals(mh5.getText())))){  
                mh4.transferFocus();
                wyniki2[4]=c;
                result2[4]=0;
                }
            // jesli i 5 i 6 kratka to X
           if ((("X".equals(mh4.getText()))) && (("X".equals(mh5.getText())))){  
               wyniki2[4]=c;
               wyniki2[5]=c;
                result2[4]=0;
                result2[5]=0;   
                }
        }
        
        // jesli jestesmy na 5 kratce i nie jest X
        if (src==mh4)  {
            wyniki2[4] = e.getKeyChar();
            myTime4 = System.currentTimeMillis();        
            result2[2] = (System.currentTimeMillis() - myTime3) / 10;
            //sprawdza szosta kratke
            if ((!"X".equals(mh5.getText()))){  
                mh4.transferFocus();
                }
 
            // jesli 6  kratka to X
               if ("X".equals(mh5.getText())){  
                wyniki2[5]=c;
                result2[5]=0;
                }}
       if (src==mh5)  {
           wyniki2[5] = e.getKeyChar();
            myTime5 = System.currentTimeMillis();        
           result2[5] = (System.currentTimeMillis() - myTime4) / 10;