同时显示Jlabels

时间:2014-01-08 14:08:37

标签: java swing jlabel jtextfield conditional-statements

我有一个问题,基于我的代码我只能显示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。

1 个答案:

答案 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);
    } 
}