zmiana TextFieldow

0

Witam, musze zrobic program ktory po wpisaniu litery w JTextField przejdzie do kolejnego TextFieldu jesli jego zawartosc nie jest X.

W tej chwili mam cos takiego: jednak zdarza sie ze ledwo klikne w TextFielda nie zdaze wpisac litery a on juz przeskakuje do kolejnego. co robie nie tak

public void metodadla3(int x, int y, long mt, long mt1, JTextField a, JTextField b, JTextField c){

if(result2[x][y-1]!=0){
result2[x][y]=(System.currentTimeMillis()-mt)/10;
}
else{
result2[x][y]=(System.currentTimeMillis()-mt1)/10; }
if((!"X".equals(a.getText()))){
a.requestFocusInWindow();}
 if ((("X".equals(a.getText()))) && ((!"X".equals(b.getText())))){  
              b.requestFocusInWindow();
                wyniki2[x][y+1]=o;
                result2[x][y+1]=0;
                }
            // jesli i 4 i 5 kratka to X
                 if ((("X".equals(a.getText()))) && (("X".equals(b.getText())))){  
                     wyniki2[x][y+1]=o;
                     wyniki2[x][y+2]=o;
                result2[x][y+1]=0;
                result2[x][y+2]=0;
              c.requestFocusInWindow();
                }

    }
0

Wydaje mi się, że jest tak: komputer sprawdza czy w TextField nie ma "X" zanim cokolwiek wpiszesz ;)
czyli najlepiej zrobić tak,że np:
if((!"X".equals(a.getText()) && !"".equals(a.getText())){

0

chyba nie do konca, bo wóczas nic sie nie dzieje jak wpisuje litery do "a". moge wpisywac cale słowa, a do kolejengo TextFielda nie przeskakuje :(

0

próbowalam tez w taki sposób. teraz msuze wpisac az dwie litery zanim przeskoczy do kolejnej kratki

if (src==mlh)   {
String s = "X";
o = s.charAt(0);
wyniki3[0] = e.getKeyChar();
myTime = System.currentTimeMillis();
result3[0] = 0; 
            //sprawdza druga kratke
 if ((!"X".equals(mlh1.getText()))&&(!"".equals(mlh.getText()))){  
                mlh1.requestFocusInWindow();
                }
            //jesli druga jest X a trzecia nie
             if ((("X".equals(mlh1.getText()))) && ((!"X".equals(mlh2.getText()))) &&(!"".equals(mlh.getText()))){  
                mlh2.requestFocusInWindow();
                wyniki3[1]=o;
                result3[1]=0;
                }
             //jesli 2 i 3 są X 
                if ((("X".equals(mlh1.getText()))) && (("X".equals(mlh2.getText())))&&(!"".equals(mlh.getText()))){
                 wyniki3[1]=o1;
                 wyniki3[2]=o1;
                result3[1]=0;
                result3[2]=0;
               mlh3.requestFocusInWindow();
                } 
     }

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0