Я создаю диалоговое окно JavaFx и в значительной степени написал код.Моя проблема заключается в том, как отобразить сообщение об ошибке, если пользователь вводит неправильный ввод.Я знаю, что где-то должен использовать цикл while, но не уверен, где именно из-за структуры диалогового окна JavaFx.Вторая проблема заключается в том, что если пользователь вводит правильный ввод, скажем 1, если да, я хотел бы вызвать функцию для выполнения задачи.
Написанный мною код вызывает всплывающее окно и печатает результатввода пользователя в консоль.
public static void AnotherMatch() {
//creates a popUp window
Stage popUp = new Stage();
// makes sure no changes are made in the Main window while this window is open
popUp.initModality(Modality.APPLICATION_MODAL);
popUp.setTitle("New Game");
popUp.setMinWidth(400);
popUp.setHeight(200);
TextPanel textPanel2 = new TextPanel();
TextField nameInput = new TextField();
Button button = new Button("Enter");
//label explains how the game works
Label displayLabel = new Label();
displayLabel.setText("Do you want to play another match: Yes: 1 -- No: 2");
button.setOnAction(e -> isChoice(nameInput, nameInput.getText()));
//vbox stores label and is set in centre
VBox windowDisplay = new VBox();
windowDisplay.setStyle("-fx-background-color:Wheat"); //background colour is set
windowDisplay.getChildren().addAll(displayLabel,nameInput, button);
windowDisplay.setAlignment(Pos.CENTER);
Scene scene = new Scene(windowDisplay);
popUp.setScene(scene);
popUp.showAndWait(); }
Код для функции isChoice
private static boolean isChoice(TextField nameInput, String message) {
// TODO Auto-generated method stub
try {
int choice = Integer.parseInt(nameInput.getText());
if(choice == 1) {
System.out.println("I want to play game again");
return true;
}
else if (choice == 2){
System.out.println("I want to stop playing");
return false;
}
else {
System.out.println("Invalid entry");
return false;
}
}
catch(NumberFormatException e){
System.out.println(message + " Invalid .Enter 1 for yes and 2 for no");
return false;
}
}
Пользователю необходимо ввести да или нет.Если пользователь неверный ввод, сообщение об ошибке должно отображаться для пользователя и ответ на вопрос снова, пока они не ответят да или нет.