Следующий код должен выбирать слово в JavaFX TextField
:
public class NewFXMain extends Application {
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage primaryStage) {
final TextInputControl textField = new TextField("Hello World, World!");
Button button = new Button("select");
button.setOnAction(new EventHandler<ActionEvent>() {
public void handle(ActionEvent t) {
textField.positionCaret(0);
textField.selectNextWord();
System.out.println(textField.getSelectedText());
}
});
VBox root = new VBox();
root.getChildren().add(textField);
root.getChildren().add(button);
primaryStage.setScene(new Scene(root, 300, 100));
primaryStage.show();
}
}
В консоли печатается Hello
, однако в интерфейсе ничего не выделено (выделено).
Если сделать то же самое с TextArea
, текст будет выбран правильно.
(Неправильный) результат с TextField
:
И (правильный) результат с TextArea
:
Что происходит?!?