2016-10-30 12 views
2

이 코드 샘플을 통해 어떤 Jtextfield가 비어 있는지 확인할 수 있습니다. 내 응용 프로그램 이미지도 첨부했습니다. 내가 알아야 할 것은 사용자가 특정 jText 필드에 세부 정보를 입력하지 않고 "등록"버튼을 클릭하면 사용자가 자신의 실수에 대해 알리 길 바랍니다.어떤 jTextfield가 비어 있는지 가리키는 방법

"당신은 학생 중간 이름을 입력하지 않은"또는 는 "당신은 학생의 주소를 입력하지 않은"또는 는

나는 사용자가 특별히 알려 싶다 "당신은 학생 중간 이름과 주소를 입력하지 않은"하는 jTextfield/s는 비어 있고/배경/빨강을 설정하고 모든 JtextField를 채울 때까지 데이터베이스에 세부 사항 저장을 중지합니다. 많은 코드를 시도했지만 그 중 아무 것도 작동하지 않습니다. (

다음은 내 코드입니다. 배열을 사용하여 Jtextfield를 검사했으나 /는 비었지만 사용자에게 알리는 방법을 모르겠습니다. 어떤 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. 
     } 
    } 
} 

가 대단히 감사합니다 :) 당신이 변경 리스너 (의 변화에 ​​대해 반응하는의 DocumentListener를 추가 할 필요가 들어 This is my Application

+0

그 배열 인덱스는'i'는 검증에 실패한 필드 중 어느 것이 당신을 알려줍니다. 하지만 배열에 넣는 이유는 확실치 않습니다. 왜 부울 오케이 = validateTextField (jTextField1); 좋아요 & = validateTextField (jTextField2); 좋아요 & = validateTextField (jTextField3); ....'(또한 textFields에 더 나은 변수 이름을 지정하십시오.) – Thilo

+0

@Thilo : 아니요, Jtextfield의 텍스트 길이가 맞다고 생각합니까? –

+0

다음과 비슷한 코드가 있습니다 : http://stackoverflow.com/questions/2749521/how-to-validate-a-jtextfield – Thilo

답변

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. 
} 
+0

@jognll이 모든 빈 Jtextfields를 확인하고 배경을 빨간색으로 만드나요? –

+0

필드를 빨간색으로 만드는 코드는 포함되지 않지만'if (check [i] == 0) {'문 – johnII

+0

내 코드를 알려주시겠습니까? 죄송합니다. 여러분 중 누구도 내가 원하는 것을 얻지 못하고 있습니다. 네가 나에게하는 말이 옳다는 것을 안다. 즉, Jtext 필드가 비어있을 때 데이터를 데이터베이스에 저장할 수 없습니다. 나는 그것을 알고 당신은 옳습니다. 그러나 JTEXTFIELD가 비어있는 사용자를 알릴 필요가 있습니다. 하나 이상의 JTextfield가 비어있을뿐만 아니라 세부 정보를 저장할 수 없을뿐만 아니라 문제를 일으키는 JTextfield (비어 있음)를 사용자에게 구체적으로 알려줘야합니다. –

0

텍스트)를 actionPerformed() 내에서 사용하려면 JTextfield가 비어 있는지 여부에 따라 loginButton을 enabled/disabled로 업데이트해야합니다 아니.

작업 수신기를 추가하여 텍스트 필드가 변경되었는지 여부를 알 수 있습니다.

boolean changedField = false; 

public static void changed(){ 
    changedField = true; 
} 

그리고 검사가 changedField이 참 수행합니다

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() 코드를 확인합니다.

+0

저를 도와주세요 "....; 좋아 & = validateTextField (jTextField3), 부울 = validateTextField (jTextField1) 좋아, 좋아 & = validateTextField (jTextField2)" 버튼. – Thilo

+0

죄송합니다. 두 번째 코드 샘플을 이해할 수 없습니다. (부울 값 someflag 샘플) @Thilo –

+0

죄송합니다. 두 번째 코드 샘플을 이해할 수 없습니다. (부울 값을 가진 샘플 someflag) @Joel –