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