operacje na klawiszach i TextFieldach

operacje na klawiszach i TextFieldach
O4
  • Rejestracja:ponad 10 lat
  • Ostatnio:prawie 9 lat
  • Postów:45
0

Witam, chcialabym aby aplikacja bo wpisaniu litery w JTextField sprawdzala kolejny JTextField i jesli jest on pusty, ustawiała się w nim i czekała na wpisanie kolejnej litery. w 90% przypadków działa na poniższym kodzie, jednak nieraz okazuje sie ze sprawdza kolejną kratkę zanim jeszcze wprowadzę literę. Ponizej przykład kodu wpisania litery w pierwszym JTextFieldzie i następnie sprawdzenia czy kolejny jest pusty i przejścia do niego, jesli jest w nim "X" sprawdza kolejny i jesli kolejny jest pusty powinna przeskoczyć do niego, itd... co robię nie tak?

Kopiuj
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()))   {
                mlh.transferFocus();
                }
            //jesli druga jest X a trzecia nie
             if ((("X".equals(mlh1.getText()))) && ((!"X".equals(mlh2.getText())))){  
                mlh2.requestFocusInWindow();
                wyniki3[1]=o;
                result3[1]=0;
                }
             //jesli 2 i 3 są X 
                if ((("X".equals(mlh1.getText()))) && (("X".equals(mlh2.getText())))){
                 wyniki3[1]=o;
                 wyniki3[2]=o;
                result3[1]=0;
                result3[2]=0;
               mlh3.requestFocusInWindow();
               }    
}
Burdzi0
  • Rejestracja:prawie 9 lat
  • Ostatnio:7 dni
  • Lokalizacja:Futurama
  • Postów:887
0

Kod jest dosyć zagmatwany, nie wiemy za co odpowiada tablica wyniki (pobiera dane z pól tekstowych?), a za co result3? Nazwy są dosyć mylące. Dodatkowo zauważ, że Twój kod sprawdzający drugą kratkę sprawdza kolejne przypadki tylko, kiedy źródłem jest mlh (czymkolwiek jest). Podrzuć więcej kodu i powiedz, za co odpowiadają te dwie tablice to ogarnę co i jak. Używasz ActionListenera?


Bite my shiny metal ass!
Life throws you an error code like that, you don't have the luxury of a ZnVja2luZw== pop-up explanation *Robię projekty studenckie, pisz priv ;) *
edytowany 1x, ostatnio: Burdzi0
0

result3 to tablica która pobiera czasy odstępów pomiędzy wpisywaniem liter w koleknych textfieldach a wyniki3 to tablica która pobiera znaki wpisywane w kolejnych textfieldach. używam keylistenera

Burdzi0
  • Rejestracja:prawie 9 lat
  • Ostatnio:7 dni
  • Lokalizacja:Futurama
  • Postów:887
0

Okej powoli ogarniam kod, ale musisz mi jeszcze powiedzieć, czy masz to w KeyTyped czy w KeyPressed? I czym jest src skoro w 4 linijce masz wyniki3[0] = e.getKeyChar();, czyli to e jest KeyEventem. Rzuć kod na Pastebina czy GitHuba/BitBucketa i podeślij mi na priv


Bite my shiny metal ass!
Life throws you an error code like that, you don't have the luxury of a ZnVja2luZw== pop-up explanation *Robię projekty studenckie, pisz priv ;) *
0

src to ustawienie źródła na TextFielda. wszystko mam w KeyPressed, rano podeślę kod

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.