我有这个代码示例,看看哪个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
答案 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.
}