How to get event when text changes in TextField? JavaFX

How can I generate a new event to handle whenever the TextField's text is changed?

+6


source to share


3 answers


Or use the ChangeListener

interface.



textField.textProperty().addListener(new ChangeListener<String>() {
    @Override
    public void changed(ObservableValue<? extends String> observable,
            String oldValue, String newValue) {

        System.out.println(" Text Changed to  " + newValue + ")\n");
    }
});

      

+7


source


Register a listener with TextField

textProperty

:



textField.textProperty().addListener((obs, oldText, newText) -> {
    System.out.println("Text changed from "+oldText+" to "+newText);
    // ...
});

      

+12


source


my decision:

....
String temp;
....
//previously in some method when starting to take initial value of the textfield and save it in a temporal
temp=id_textfield.getText();
....
//when losing focus we check if the new value is different

id_textfield.focusedProperty().addListener(new ChangeListener<Boolean>() {
        @Override
        public void changed(ObservableValue<? extends Boolean> observable, Boolean oldValue, Boolean newValue) {

            //focus in
            if (newValue) {
                temp = id_textfield.getText();
            }

            //focus out
            if (oldValue) {

                if (!(temp.equals(id_textfield.getText()))) {
                    System.out.println("New String")
                }
            }

        }
    });

      

0


source







All Articles