Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/371.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在文本字段中选择一个单词_Java_Javafx_Javafx 2 - Fatal编程技术网

Java 在文本字段中选择一个单词

Java 在文本字段中选择一个单词,java,javafx,javafx-2,Java,Javafx,Javafx 2,以下代码用于在JavaFX文本字段中选择一个单词: 它在控制台中打印Hello,但是在界面中没有选择任何内容。 如果对文本区域执行相同操作,则正确选择文本 文本字段的结果不正确: 并使用文本区域显示正确的结果: 怎么回事 TextField不显示选择,除非它有焦点,尽管我不确定它是一个bug还是一个特性。您可以使用下一个代码查看选择: button.setOnAction(new EventHandler<ActionEvent>() { public vo

以下代码用于在JavaFX文本字段中选择一个单词:

它在控制台中打印Hello,但是在界面中没有选择任何内容。 如果对文本区域执行相同操作,则正确选择文本

文本字段的结果不正确:

并使用文本区域显示正确的结果:

怎么回事

TextField不显示选择,除非它有焦点,尽管我不确定它是一个bug还是一个特性。您可以使用下一个代码查看选择:

    button.setOnAction(new EventHandler<ActionEvent>() {

        public void handle(ActionEvent t) {
            textField.requestFocus(); // get focus first
            textField.positionCaret(0);
            textField.selectNextWord();

            System.out.println(textField.getSelectedText());
        }
    });
TextField不显示选择,除非它有焦点,尽管我不确定它是一个bug还是一个特性。您可以使用下一个代码查看选择:

    button.setOnAction(new EventHandler<ActionEvent>() {

        public void handle(ActionEvent t) {
            textField.requestFocus(); // get focus first
            textField.positionCaret(0);
            textField.selectNextWord();

            System.out.println(textField.getSelectedText());
        }
    });

这个问题的答案是,我们在这方面对本机控件的理解是,它们都在文本字段失去焦点时清除选择,并且在获得焦点时通常选择所有文本。我们在JavaFX中使用UI控件的目的是要有一种本地的感觉,但要有一种定制的外观。当然,我们可以改变我们的思维方式,但这必须与保持本土感觉的目标相平衡,这包括在获得焦点时全选,而在失去焦点时不显示选择,即使存在选择。但是,如果只是选择所有获得的焦点,那么失去任何焦点选择都没有什么意义,而且奇怪的边缘情况仍然会存在,我们不得不怀疑是否值得改变这一点。

这个问题的答案是,我们对本机控件在这方面的理解是,它们都在文本字段失去焦点时清除选择,并且通常在获得焦点时选择所有文本。我们在JavaFX中使用UI控件的目的是要有一种本地的感觉,但要有一种定制的外观。当然,我们可以改变我们的思维方式,但这必须与保持本土感觉的目标相平衡,这包括在获得焦点时全选,而在失去焦点时不显示选择,即使存在选择。但是,如果只是选择所有获得的焦点,那么失去任何焦点选择都没有什么意义,而且奇怪的边缘情况仍然会存在,我们不得不怀疑是否值得更改此选项。

查看我的答案并让我知道它是否有效…查看我的答案并让我知道它是否有效…我的用例是拼写检查器,因此,它是一个不同的模式窗口,显示建议,而不同的文本字段/文本区域突出显示了原始拼写错误的单词-这意味着向所选的TextInputControl请求焦点并不是很简单,因为焦点在拼写检查器本身。有什么建议吗?将拼写检查限制在TextAreas,而不是TextFields+TextAreas,或者在上检查代码,看看是否可以修补此问题。我的用例是拼写检查,因此,它是一个不同的模式窗口,显示建议,而不同的文本字段/文本区域突出显示了原始拼写错误的单词-这意味着向所选的TextInputControl请求焦点并不是很简单,因为焦点在拼写检查器本身。有什么建议吗?将拼写检查限制在TextAreas,而不是TextFields+TextAreas,或者检查上的代码,看看是否可以修补此问题。