验证JTextFields(Java)中的用户输入

验证JTextFields(Java)中的用户输入,java,swing,validation,jtextfield,Java,Swing,Validation,Jtextfield,我正在尝试验证文本框中的用户输入。我正在检查文本框是否已填充,如果未填充,我需要提醒用户未填充哪个文本框。我的问题是,我需要一种返回哪个文本框/变量为空的方法。我知道我需要传入两个值,一个是文本框的内容,另一个是文本框的标识符 目前我有这个(在StackOverflow上找到的),它检查数组中的每个变量是否已填充 public boolean areAllNotEmpty(String... text){ for(String s : text) { if(s == n

我正在尝试验证文本框中的用户输入。我正在检查文本框是否已填充,如果未填充,我需要提醒用户未填充哪个文本框。我的问题是,我需要一种返回哪个文本框/变量为空的方法。我知道我需要传入两个值,一个是文本框的内容,另一个是文本框的标识符

目前我有这个(在StackOverflow上找到的),它检查数组中的每个变量是否已填充

public boolean areAllNotEmpty(String... text){

    for(String s : text) {
        if(s == null || "".equals(s)) {

            return false;
        }
    }
    return true;
}
我希望它也能返回这样的内容(评论):

我以前在一个C#项目上实现过这个方法,但它需要一次传入一个文本框,并带有多个方法调用,我猜这并不好

public static bool IsFieldNull(TextBox currentText, string type)
    {
        bool allOk = false;

        if (currentText.Text == "")
        {
            MessageBox.Show("Error - '" + type + "' field cannot be left blank, please enter some data in this field");
            currentText.Focus();
            return allOk;
        }

        else
        {
            allOk = true;
            return allOk;
        }
这就是C#中的名称

如果这些都不合理,请告诉我


感谢您的帮助。

您可以将组件传递给该方法并返回空组件,如下所示:

public List<JTextField> getEmptyFields(JTextField... textFields) {
    List<JTextField> emptyFields = new ArrayList<JTextField>();
    for (JTextField field : textFields) {
        if (field.getText().isEmpty()) {
            emptyFields.add(field);
        }
    }

    return emptyFields;
}
公共列表getEmptyFields(JTextField…textFields){
List emptyFields=new ArrayList();
for(JTextField字段:textFields){
if(field.getText().isEmpty()){
emptyFields.add(字段);
}
}
返回空字段;
}

然后,您可以检查返回列表的
size()
,以确定是否存在空字段,并相应地处理它们。

按下提交按钮时进行验证不是很有用,最好在发生错误时进行验证。你可以考虑使用。然后你就知道它什么时候处于有效状态。除此之外,如果您使用的是java7或更高版本,您可以查看
JLayer
来装饰处于无效状态的组件。有关更多示例,请参见此处。

什么类型的文本框?像
JTextField
?如果没有,请向我们展示您的TextBox类,以便我们了解我们正在使用的是,JTextFields。对不起,我将修改问题。
Validation.IsFieldNull(txtBoxFixtureDate, "Fixture Date") && Validation.IsFieldNull(txtBoxTime, "Time")
public List<JTextField> getEmptyFields(JTextField... textFields) {
    List<JTextField> emptyFields = new ArrayList<JTextField>();
    for (JTextField field : textFields) {
        if (field.getText().isEmpty()) {
            emptyFields.add(field);
        }
    }

    return emptyFields;
}