Как выбрать следующее текстовое поле после нажатия клавиши (ENTER) в javafx? - PullRequest
0 голосов
/ 09 января 2020

Я делаю логин GUI и после ввода имени пользователя я хочу нажать клавишу ВВОД, и он выберет текстовое поле пароля. Как мне этого добиться?

Моя попытка:

@FXML
    void userNameKeyPressed(KeyEvent event) {
        if(event.getCode() == KeyCode.ENTER || event.getCode() == KeyCode.TAB) {
            passWord.requestFocus();
        }
    }

1 Ответ

2 голосов
/ 09 января 2020

Я думаю, вам нужно скомпилировать более полный пример. Например, может быть, просто f xml и где это идет не так. Вот пример, который работает, и он использует большинство ингредиентов, которые вы есть.

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.layout.BorderPane;
import javafx.scene.control.TextField;
import javafx.stage.Stage;
import javafx.scene.input.KeyEvent;


public class TextFields extends Application{

    public static void main(String[] args){
        launch(args);
    }

    @Override
    public void start(Stage primaryStage) throws Exception {
        primaryStage.setTitle("text field");
        TextField a = new TextField();
        TextField b = new TextField();

        a.setOnKeyPressed( evt ->{
            System.out.println(KeyCode.ENTER + ", " + evt.getCode());
            if(evt.getCode().equals(KeyCode.ENTER)){
                System.out.println("entered");
                b.requestFocus();
            }
        });

        BorderPane root = new BorderPane();
        root.setLeft(a);
        root.setRight(b);
        primaryStage.setScene(new Scene(root, 300, 100));
        primaryStage.show();
    }

}

Этот код создает фрейм с 2 текстовыми полями, если вы нажмете ввод в левом, вы перейдете к правильный.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...