我的JTextField
中有多个JComboBox
和JFrame
。因此,每当我单击_Add_
按钮时,它都会检查当前药物面板中的四(4)个文本字段是否为空。如果不是,则执行,但这还取决于是否填写了个人信息面板文本字段。
但是,如果我使用if and else
,则在使用if and else
语句时遇到问题:
if(condition if the first textfield is empty) {
// execute something like the textfield turn to red
} else if(condition if the second textfield is empty) {
// execute something like the textfield turn to red
} else if(condition if the third textfield is empty) {
// execute something like the textfield turn to red
} else{
// execute save information of the patient
}
在这种情况下,如果第一个文本字段为空,则它将变为红色,但是如果第一和第二个文本字段都为空,则只有第一个文本字段变为红色。
我也尝试了if
,如果没有空输入或无效输入,则应将else
放在 if(condition if the first textfield is empty) {
// execute something like the textfield turn to red
}
if(condition if the second textfield is empty) {
// execute something like the textfield turn to red
}
if(condition if the third textfield is empty) {
// execute something like the textfield turn to red
}
if(condition if the fourth textfield is empty) {
// execute something like the textfield turn to red
} else
处,并执行以下操作并保存患者信息:
if
如果使用此选项,则仅最后一个else
语句仅适用于else
语句。
因此,如果最后一条语句为true,则执行,而不是{{1}}语句,这是耐心保存的信息。
有什么我可以做的吗?还是有任何教程供我学习有关Java和 if and else 的更多信息?
答案 0 :(得分:1)
但是应该放其他的东西
在if
之后加上else
不是强制性的。指定else
的目的是让您的代码执行流能够在if
不满足(真)的情况下经历所有其他情况。
如果我仅使用此方法,则最后一个if语句仅适用于else 声明
因为if
可能已经满意,所以它执行else
大小写。我建议在每个return
案例中都包含if
。因此,如果满足任何if
情况。然后,它将不再执行其他代码。
答案 1 :(得分:1)
在 Add 按钮操作侦听器的actionPerformed
方法中,您可以尝试以下操作:
public void actionPerformed(ActionEvent e) {
if (! textFieldsValid()) {
// one or more of the text fields are empty
// may be display a message in a JOptionPane
System.out.println("The text fields are not filled with data, etc...");
return;
}
// else, text fields have valid data, so do whatever processing it further...
}
/*
* This method checks if the text fields are empty and sets their borders as red. Returns
* a boolean false in case any of the text fields are empty, else true.
*/
private boolean textFieldsValid() {
boolean validTextFields = true;
if (textField1.getText().isEmpty()) {
validTextFields = false;
textField1.setBorder(new LineBorder(Color.RED));
}
if (textField2.getText().isEmpty()) {
validTextFields = false;
// textField2.setBorder(...)
}
// ... same with textField3 and textField4
return validTextFields;
}
答案 2 :(得分:0)
这对您来说不是新闻:您做错了。
有几种方法可以实现所需的解决方案, 这是其中之一:
boolean performSave = true;
if (field1 is empty)
{
do some stuff.
performSave = false;
}
if (field2 is empty)
{
do some stuff.
performSave = false;
}
... repeat for any number of fields.
if (performSave) // no fields are empty.
{
save stuff.
}