我有一个问题,基于我的代码我只能显示1个jlabel,即使有一个或多个空JTextfield,我希望当2个或更多JTextfield为空时2个或更多jlabel会出现。在我的程序中,我有4个jtextfield和2个组合框,每个有1个jlabel。我该如何改进我的代码?提前感谢您的建议。
这是我的代码:
private void cmdAddActionPerformed(java.awt.event.ActionEvent evt) {
if(txtFirst.getText().equals("")){
lblReq1.setVisible(true);
lblReq2.setVisible(true);
txtFirst.requestFocusInWindow();
}
else if(txtLast.getText().equals("")){
lblReq1.setVisible(true);
lblReq3.setVisible(true);
txtLast.requestFocusInWindow();
}
else if(txtUser.getText().equals("")){
lblReq1.setVisible(true);
lblReq4.setVisible(true);
txtUser.requestFocusInWindow();
}
else if(txtPass.getText().equals("")){
lblReq1.setVisible(true);
lblReq5.setVisible(true);
txtPass.requestFocusInWindow();
}
else if(cmbType.getSelectedItem().equals("Select Type")){
lblReq1.setVisible(true);
lblReq6.setVisible(true);
}
else if(cmbStatus.getSelectedItem().equals("Select Status")){
lblReq1.setVisible(true);
lblReq7.setVisible(true);
}
else{}
这是当我点击按钮时,如果有2个Jtextfield为空,则会显示jlabel。
答案 0 :(得分:0)
您if-else-statement
中的问题,它只执行一个代码块,因为始终只有一个JLabel
出现。
只需从执行每个块的方法中删除else
个关键字。
编辑:改变您的代码,如下:
private void cmdAddActionPerformed(java.awt.event.ActionEvent evt) {
if (txtFirst.getText().isEmpty()) {
lblReq1.setVisible(true);
lblReq2.setVisible(true);
txtFirst.requestFocusInWindow();
} else {
//else stuff
}
if (txtLast.getText().isEmpty()) {
lblReq1.setVisible(true);
lblReq3.setVisible(true);
txtLast.requestFocusInWindow();
}
if (txtUser.getText().isEmpty()) {
lblReq1.setVisible(true);
lblReq4.setVisible(true);
txtUser.requestFocusInWindow();
}
if (txtPass.getText().isEmpty()) {
lblReq1.setVisible(true);
lblReq5.setVisible(true);
txtPass.requestFocusInWindow();
}
if (cmbType.getSelectedItem().equals("Select Type")) {
lblReq1.setVisible(true);
lblReq6.setVisible(true);
}
if (cmbStatus.getSelectedItem().equals("Select Status")) {
lblReq1.setVisible(true);
lblReq7.setVisible(true);
}
}