javafx-2 - JavaFx:方法selectAll()只能通过键盘焦点进行工作

标签 javafx-2 javafx

我使用selectionAll()在我的文本字段中选择整个文本,但是当焦点来自键盘(例如Tab)时,它才起作用。

如果我在文本框中单击鼠标,它会在很短的时间内选择文本。但是它必须像来自键盘的焦点一样工作。

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和literPreis是我的文本字段

最佳答案

这个技巧将帮助您:

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

关于javafx-2 - JavaFx:方法selectAll()只能通过键盘焦点进行工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14965318/

相关文章:

Javafx Canvas 在完成之前不会显示

java - setOnMouseExited/Entered 的奇怪行为

JavaFX 在控件中显示属性

java - 如何检测 JavaFX 中的菜单是否打开?

javafx-2 - 测试标签溢出

JavaFX 使 cellFactory 变得通用

java - 如何通过 CSS 添加外部图像

java - 从 fxml 实例化的 ObservableArrayList 返回值不符合预期

java - 如何在 JavaFX 菜单中调用 Java 方法

java - 代码未在使用 JavaFx 实现 Controller 传递参数的 Netbeans 中进行编译