2015-11-02 36 views
0

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

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(); 
       } 
      } 
     } 

    }); 
+0

您可以requestFocus()方法的下一个元素。 – ItachiUchiha

回答

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(); 
    } 
}); 
+0

谢谢,什么是'事件 - >'是什么意思? – ramialsaiad

+0

这是java 8中的lambda表达式。编辑答案并提供更多信息。 – ItachiUchiha

+0

如果我有三个文本字段,text1 text2和text3 ...如果文本指针在text2中,所以如果我按Enter键,所以我应该移动到text3 ..我该怎么做?我可以使用一些if语句...请看编辑 – ramialsaiad

相关问题