如何指出哪个jTextfield为空

时间:2016-10-30 09:34:21

标签: java jtextfield

我有这个代码示例,看看哪个Jtextfield为空。我也附上了我的申请图片。我需要知道的是,当用户没有在特定的jTextfield中输入详细信息,并单击“注册”按钮时,我希望用户被告知他的错误/喜欢;

“您尚未输入学生中间名”或 “你还没有输入学生地址”或 “你还没有输入学生中间名和地址”

我希望用户通知SPECIFICALLY哪个jTextfield /是EMPTY并将其/ / background / s设置为RED并停止将详细信息保存到数据库中,直到他填满所有JtextField。我尝试了很多代码,但其中任何代码都不起作用:(

这是我的代码。我已经使用数组检查Jtextfield / s是否为空,但我不知道如何通知用户哪个Jtextfield / s导致问题。请帮帮我:(

public void checkEmpty() {
    String fname = jTextField1.getText();
    String mname = jTextField2.getText();
    String lname = jTextField3.getText();

    String lineone = jTextField4.getText();
    String linetwo = jTextField5.getText();
    String linethree = jTextField6.getText();

    int fnam = fname.length();
    int mnam = mname.length();
    int lnam = lname.length();
    int lineon = lineone.length();
    int linetw = linetwo.length();
    int linethre = linethree.length();

    int[] check = {fnam, mnam, lnam, lineon, linetw, linethre};
    for (int i = 0; i < check.length; i++) {
        if (check[i] == 0) {
            //needs to show which jTextfield/s is/are empty and make their backgrounds RED
        } else {
            //save to database----> I know what I have to do here.
        }
    }
}

非常感谢:)This is my Application

2 个答案:

答案 0 :(得分:0)

为此您需要为JTextField添加更改侦听器(对文本中的更改做出反应的DocumentListener),并且在actionPerformed()中,您需要将loginButton更新为启用/禁用,具体取决于JTextfield是否为空或不。

您可以添加动作侦听器,以了解您的文本字段是否已更改。

yourJTextField.getDocument().addDocumentListener(new DocumentListener() {
  public void changedUpdate(DocumentEvent e) {
    changed();
  }
  public void removeUpdate(DocumentEvent e) {
    changed();
  }
  public void insertUpdate(DocumentEvent e) {
    changed();
  }

  public void changed() {
     if (yourJTextField.getText().equals("")){
       loginButton.setEnabled(false);
     }
     else {
       loginButton.setEnabled(true);
    }

  }
});

然后函数checkempty将检查可以在changed()中设置的标志,示例changed()代码:

boolean changedField = false;

public static void changed(){
    changedField = true;
}

检查changedField是否属实。

答案 1 :(得分:0)

执行以下操作:

public void checkEmpty() {
    JTextField [] textFields = {jTextField1,jTextField2,jTextField3,jTextField4,jTextField5,jTextField6};
    isInputValid = true;
    for (int i = 0; i < textFields.length; i++) {
        JTextField jTextField = textFields[i];
        String textValue = jTextField.getText().trim();
        if (textValue.length() == 0) {
            //turn background into red
            jTextField.setBackground(Color.RED);
            isInputValid = false;
        }
    }

    // now check if input are valid
    if(!isInputValid) return;

    //save to database----> I know what I have to do here.
}