2014-01-08 2 views
0

내 코드에 따라 문제가 있습니다. 1 개 이상의 JTextfield가 비어 있어도 1 개의 jlabel 만 표시 할 수 있습니다. 2 개 이상 JTextfield가 비어있을 때까지 기다려야합니다. 2 개 이상 jlabel이 나타납니다. . 내 프로그램에는 4 개의 jtextfield와 2 개의 콤보 박스가 있으며, 각각 1 개의 jlabel이 있습니다. 코드를 개선하려면 어떻게해야합니까? 사전에 제안 해 주셔서 감사합니다. 1 JLabel의이 나타납니다 비어 2의 JTextField가있는 경우 I 버튼을 클릭하면동시에 Jlabels 표시

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{} 

이의 출력은 다음과 같습니다

여기 내 코드입니다.

+0

당신이이 [SSCCE] (http://sscce.org) 그래서 우리는 문제를 테스트 할 수 있습니다 게시 할 수 있습니까? –

+0

이 출력은 비어있는 Jtextfield가 2 개있는 경우 버튼을 클릭하면 1 개의 jlabel이 나타납니다. –

답변

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); 
    } 
} 
+0

내 if-else-statement에/s를 두 개 이상 표시 할 수 있도록 조건을 제안 할 수 있습니까? –

+0

각'else' 키워드를 제거하는 것이 좋습니다. 시도해 보셨습니까? – alex2410

+0

else 문 안에는 데이터베이스에 레코드를 추가하는 코드가 있습니다 –