我使用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();
}
}
}
});
答案 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();
}
});