在错误消息对话框之后显示输入对话框

show input dialog box after error message dialog box

我需要显示一个输入对话框并输入玩家的名字。

如果玩家点击确定按钮并且输入对话框的值为数字或空值,则应显示错误。如果玩家点击错误信息对话框的确定​​按钮,输入框会再次出现

不知道是不是我的代码有误。由于我的网络编程主题,我忘记了如何在 java 中编码。

int[] player = new int[1];
for(int a =0; a<player.length; a++){
    String input = JOptionPane.showInputDialog("Enter your Name:",JOptionPane.OK_CANCEL_OPTION); 

    try {
        if(!input.matches("[a-zA-Z]+")){
            JOptionPane.showMessageDialog(null,"Use Letters only", "Warning", JOptionPane.OK_OPTION);    
        } else {
            input = String.valueOf(player[a]);
            category c = new category();
            this.dispose();
            c.show();
        }
    }
    catch(Exception e){   
};

显示显示消息的错误对话框,'alert':

JOptionPane.showMessageDialog(null, "alert", "alert", JOptionPane.ERROR_MESSAGE);

显示带有消息的内部信息对话框,'information':

JOptionPane.showInternalMessageDialog(frame, "information", "information", JOptionPane.INFORMATION_MESSAGE);

显示带有选项 yes/no 和消息 'choose one':

的信息面板
JOptionPane.showConfirmDialog(null,"choose one", "choose one", JOptionPane.YES_NO_OPTION);

显示带有选项 yes/no/取消和消息 'please choose one' 以及标题信息的内部信息对话框:

JOptionPane.showInternalConfirmDialog(frame, "please choose one", "information",JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.INFORMATION_MESSAGE);

显示带有选项“确定”、“取消”、标题 'Warning' 和消息 'Click OK to continue':

的警告对话框
Object[] options = { "OK", "CANCEL" };
JOptionPane.showOptionDialog(null, "Click OK to continue", "Warning",JOptionPane.DEFAULT_OPTION, JOptionPane.WARNING_MESSAGE,null, options, options[0]);

显示一个对话框,要求用户输入字符串:

String inputValue = JOptionPane.showInputDialog("Please input a value");

显示一个对话框,要求用户 select 一个字符串:

Object[] possibleValues = { "First", "Second", "Third" };
Object selectedValue = JOptionPane.showInputDialog(null,"Choose one", "Input",JOptionPane.INFORMATION_MESSAGE, null, possibleValues, possibleValues[0]);

如果循环正确,则只需要一个对话框:

    String message = "Enter Your Name:";
    String playerName = null;
    do {
        playerName =
            JOptionPane.showInputDialog(message);
        message = "<html><b style='color:red'>Enter Your Name:</b><br>"
                + "Use letters only.";          
    } while(playerName != null && !playerName.matches("[a-zA-Z]+"));

    System.out.println("PlayerName: " + playerName);

这将将错误消息包含到要求有效名称的下一次迭代中。也让它更好用。

第一次调用时显示如下:

并在出现错误时像这样:

备注

如果名称后面的数字没问题(例如 "bunny99"),您可能需要将正则表达式更改为 "[a-zA-Z]\w+"