TextField sprawdzanie czy pojawił się znak

0

Witam, w ramach nauki tworze prosty kalkulator.

Znaki można wprowadzać na 2 sposoby, albo z klawiatury, albo poprzez JButtony.
Chce aby kalkulator zaczął działać(obliczać) w momencie pojawienia się w TextFieldzie znaku równości.
Jak takie sprawdzenie zrobić?

Myślałem nad dodaniem KeyListenera do TextFielda i ActionListenera do przycisku reprezentującego znak równości.
Ale czy takie rozwiązanie jest elegancki? Czy można dodać jedynie listenera który będzie sprawdzał czy pojawił się w TextFieldzie znak =, i jak miałoby to wyglądać?

Pozdrawiam :)

0

Ale w czym to robisz Swing, JavaFX, Android ?

Takie rzeczy robi się na eventach generalnie (twojej kontrolki do edycji danych).

0

W Swingu :)

0

Tu masz prosty przykład z SO:

// Listen for changes in the text

textField.getDocument().addDocumentListener(new DocumentListener() {
  public void changedUpdate(DocumentEvent e) {
    warn();
  }
  public void removeUpdate(DocumentEvent e) {
    warn();
  }
  public void insertUpdate(DocumentEvent e) {
    warn();
  }

  public void warn() {

   // Tu dajesz kod, jeśli dane w oknie edycyjnym są nieprawidłowe...

     }
  }
});
0

Dzięki za podpowiedz, ale nie za bardzo rozumiem jak miałoby to działać.

1

Sprecyzuj zwrot

w momencie pojawienia się w TextFieldzie znaku równości
Wystarczy by użytkownik nacisnął klawisz ze znakiem "=", czy musi go jeszcze puścić?

tf.addKeyListener(new keyAdapter()
{
     public void keyPressed(KeyEvent ke)
     {
         if(if(ke.getKeyCode() == KeyEvent.VK_EQUALS)
         {
             compute();
         }
     }
});

Powyższy kod zacznie liczyć po naciśnięciu klawisza "=", jeśli liczenie ma się zacząć po puszczeniu to zamień metodę keyPressed na keyReleased.

0

Wielkie dzięki :) Wszystko działa

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