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

javafx, javafx-2

Solution

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();
                }
            }
        });
    }
});

Problem

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

Original source