Java JTextField+上的输入验证;对话框

Java JTextField+上的输入验证;对话框,java,swing,validation,jtextfield,Java,Swing,Validation,Jtextfield,因此,我的目标是验证JTextField的内容,以便确保我的运动员对象的年龄在6-99岁之间。这是我到目前为止所拥有的 JTextField ageTextField = new JTextField(); saveButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { Integer age = Intege

因此,我的目标是验证JTextField的内容,以便确保我的运动员对象的年龄在6-99岁之间。这是我到目前为止所拥有的

JTextField ageTextField = new JTextField();

saveButton.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                Integer age = Integer.parseInt(ageTextField.getText());

                Athlete athlete = new Athlete(firstNameTextField.getText(),
                        lastNameTextField.getText(), gender, age, schoolNameBox
                                .getSelectedItem().toString(), teacherBox
                                .getSelectedItem().toString(), eventBox1
                                .getSelectedItem().toString(), eventBox2
                                .getSelectedItem().toString(), null);

            }
        });
因此,基本上我需要一种方法来向用户显示一个错误对话框,如果他们单击了“保存”,并且JTextField的值不在6-99之间


我见过很多不同的方法来验证JTextFields上的输入,但没有看到任何与我的具体情况相关的方法。我正在寻找一个干净,简洁的方法来做到这一点。谢谢。

在你的情况下,简单到

Integer age = Integer.parseInt(ageTextField.getText());
if (age >=6 && age <= 99) {
    // All is okay...
} else {
    JOptionPane.showMessageDialog(this, "The age is out side of the valid range of 6-99", "Error", JOptionPane.ERROR_MESSAGE);
}

很简单。使用简单的if语句:

if(age < 6 || age > 99) {

    JOptionPane.showMessageDialog(this,
        "Age must be 6-99",
        "Error",
        JOptionPane.ERROR_MESSAGE);

    return;
}
if(年龄<6 | |年龄>99岁){
JOptionPane.showMessageDialog(此,
“年龄必须为6-99岁”,
“错误”,
JOptionPane.ERROR\u消息);
返回;
}

你想说的是
这个
而不是
这个
:)这在第一次使用时效果很好,但是当我再次单击“保存”按钮时,我得到一个nullPointerException。哪一个?如果没有一个可运行的示例,我甚至无法开始提供建议挑剔:您应该尝试将方法限制在单个入口和出口点,使用
return
,因为逻辑分支机制很难遵循,并且很容易在代码中被忽略。这在第一次使用时很好,但是,当我再次单击“保存”按钮时,会得到一个nullPointerException
if(age < 6 || age > 99) {

    JOptionPane.showMessageDialog(this,
        "Age must be 6-99",
        "Error",
        JOptionPane.ERROR_MESSAGE);

    return;
}