如何在java中将文本指针从一个字段移动到另一个字段

时间:2015-11-02 13:30:04

标签: java javafx

我使用javafx来实现一个计算器...我的计算器设计应该来自七十年代的Hewlett-Packard ..我有两个文本字段,在每个文本字段中我插入一个数字......当我放在第一个文本字段中的数字,所以我应该在我的计算器中按ENTER键将文本指针移动到下一个文本字段以将其他数字放入其中...我不知道如何将文本指针移动到下一个文本字段的问题当我按下ENTER键时......这是我输入代码的代码:

TextField text1 = new TextField();
TextField text2 = new TextField();
Button Enter = new Button("ENTER");
Enter.setLayoutX(140);
Enter.setLayoutY(270);
Robot robot = new Robot();


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

        @Override
        public void handle(ActionEvent event) {


            if (event.getSource() == Enter) {
                robot.mouseMove(250,150); // (250,150) is the position of the second text field
            }
        }

    });

这段代码的问题是当我按下ENTER然后我的鼠标指针移动到
(250,150)但不是我的文字指针...... 如何移动文本指针而不是鼠标指针? 谢谢

编辑:

TextField text1 = new TextField();
TextField text2 = new TextField();
TextField text3 = new TextField();
Button Enter = new Button("ENTER");
Enter.setLayoutX(140);
Enter.setLayoutY(270);


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

        @Override
        public void handle(ActionEvent event) {


            if (event.getSource() == Enter) {
                if (!text1.requestFocus() || text2.requestFocus()) {
                text3.requestFocus();
              } 
            }
        }

    });

1 个答案:

答案 0 :(得分:0)

您可以请求专注于下一个元素。

enter.setOnAction( event -> {
    if(text1.isFocused()) {
       text2.requestFocus();
    } else if(text2.isFocused()) {
       text3.requestFocus();
    }
});

您可以使用以下命令在Java 7或早期版本中执行相同的操作:

enter.setOnAction(new EventHandler<ActionEvent>() {
    @Override
    public void handle(ActionEvent event) {
        text2.requestFocus();
    }
});