Я на Windows 10 машине с Oracle JDK 14 и OpenJFX 14 с установленными. Когда фокус клавиатуры находится в элементе управления TextField
, а ориентация этого элемента управления направлена справа налево, нажатие клавиш со стрелками влево и вправо на клавиатуре не перемещает курсор в пределах TextField
. Вот простая программа, которая демонстрирует проблему.
import javafx.application.Application;
import javafx.geometry.NodeOrientation;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.control.TextField;
import javafx.stage.Stage;
public class FxTxtFld extends Application {
@Override
public void start(Stage primaryStage) throws Exception {
TextField txtFld = new TextField("sampler");
txtFld.setNodeOrientation(NodeOrientation.RIGHT_TO_LEFT);
Group root = new Group(txtFld);
Scene scene = new Scene(root);
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
Запустите приведенный выше код, а затем просто попробуйте переместить курсор, нажимая клавиши со стрелками на клавиатуре. Когда я это делаю, курсор не двигается. Я могу перемещать курсор, щелкая мышью внутри текстового содержимого TextField
. Также клавиша со стрелкой вверх перемещает курсор к букве s , то есть к началу текста, а клавиша со стрелкой вниз перемещает курсор к букве r , но нажимая клавишу клавиши со стрелками влево и вправо не перемещают курсор вообще. Обратите внимание, что если ориентация слева направо, клавиши со стрелками перемещают курсор.
Когда я распечатываю свойства Java [System], я вижу следующее.
user.language en
user.country US
Я гуглил по терминам Курсор текстового поля javafx не двигается , но я видел только результаты, которые говорят о манипулировании курсором с помощью кода, а не с помощью действий пользователя.
РЕДАКТИРОВАТЬ
Возможно, кто-то может проверить, существует ли эта проблема также в более ранних версиях JavaFX?