JavaFx: Method selectAll() just works by focus with keyboard


Question

i use selectionAll() to select the whole text in my textfield but it just works when the focus comes from keyboard (like Tab).

If i click with my mouse in the textfield, it selects the text just for a very short moment. But it has to work like with the focus which comes from the keyboard.

 flaschenPreis.focusedProperty().addListener(new ChangeListener<Boolean>() {
        public void changed(ObservableValue ov, Boolean t, Boolean t1) {


            if ( flaschenPreis.isFocused() && 
                    !flaschenPreis.getText().isEmpty()) {
                flaschenPreis.selectAll();
            }              
        }
    });


    literPreis.focusedProperty().addListener(new ChangeListener() {
        public void changed(ObservableValue ov, Object t, Object t1) {

            if (literPreis.isFocused() && 
                    !literPreis.getText().isEmpty()) {
                literPreis.selectAll();
            }
        }
    });

flaschenPreis und literPreis are my textfields

1
8
2/19/2013 7:00:26 PM

This trick will help you :

    final TextField tf = new TextField("Text");
    tf.focusedProperty().addListener(new ChangeListener<Boolean>() {
        @Override
        public void changed(ObservableValue ov, Boolean t, Boolean t1) {

            Platform.runLater(new Runnable() {
                @Override
                public void run() {
                    if (tf.isFocused() && !tf.getText().isEmpty()) {
                        tf.selectAll();
                    }
                }
            });
        }
    });
17
2/19/2013 8:51:38 PM

Licensed under: CC-BY-SA with attribution
Not affiliated with: Stack Overflow
Icon