2012-12-13 2 views
0

정말 DocumentListener를 듣고 싶지 않습니다. 그것은 나를 위해 너무 많은 이벤트를 생성합니다. 포커스가이 특정 JtextField에서 벗어날 때만 듣고 싶습니다. ActionListener를 추가하면 return 키를 누를 때만 이벤트가 생성됩니다. 사용자가 Tab 키를 사용하여 멀리 이동하거나 마우스를 멀리 움직이면 가져오고 싶습니다. 이것이 가능합니까? 감사합니다 및 안부이JtextField의 변경 내용을 듣고 싶습니다.

+1

몇 가지 유효성 검사 메커니즘이 끝난 것 같습니다. 이 경우에는'JFormattedTextField' 사용을 고려하십시오 ([이 예제] (http://stackoverflow.com/a/13424140/1076463) 참조) – Robin

+0

+1 Robin과 동의합니다. 'JFormattedTextField'를 사용하여 수행해야하는'JTextField'에서 데이터의 유효성을 검사하려는 것처럼 보입니다. 이 예제를보십시오 : http://stackoverflow.com/questions/11881301/best-way-to-constrain-user-to-enter-a-time-in-a-jtextfield/11881523#11881523 –

+0

또는' InputVerifier' : http://docs.oracle.com/javase/7/docs/api/javax/swing/InputVerifier.html –

답변

1

FocusListener를 사용하십시오. 사용자가 다른 필드로 이동할 때 focusLost가 도움이 될 것입니다.

 JTextField jf = new JTextField(); 
     jf.addFocusListener(new FocusListener() { 

      @Override 
      public void focusLost(FocusEvent arg0) { 
       // here you can have your code when user moves out 
      } 

      @Override 
      public void focusGained(FocusEvent arg0) { 
       // TODO Auto-generated method stub 

      } 
     }); 
+1

대신 하나의 메서드를 재정의 할 수 있으므로'FocusAdapter'를 사용하십시오. –

+0

모든 솔루션이 나에게 잘 어울립니다. 그러나 나의 즉각적인 필요에 초점을 잃은 사건은 고통스러워한다. 감사합니다 모두 – Manu

+0

@ David. 예 FocusAdapter는 foculs가 손실 된 이벤트 만 필요할 경우 유용 할 것입니다. 감사합니다. – Vinay

관련 문제