2012-02-20 4 views
1

이 내 애플릿JApplet에이 - 알파벳은 허용되지 않습니다

KeyListener keyListener = new KeyListener() 
{ 
    public void keyPressed(KeyEvent keyEvent) 
    { 
     validate valid=new validate(); 
     valid.errorMessage(txt_district_id, keyEvent); 
    } 

    public void keyReleased(KeyEvent keyEvent) 
    {  
    } 

    public void keyTyped(KeyEvent keyEvent) 
    {  
    } 

}; 
txt_district_id.addKeyListener(keyListener); 

유효성 검사 클래스의 코드 내부에 기록 된 내 코드,

public class validate 
{ 
    public String errorMessage(KeyEvent keyEvent,JTextField txt) 
    { 
     int keyCode = keyEvent.getKeyCode(); 
     String keyText = KeyEvent.getKeyText(keyCode); 
     //msg.setText(title + " : " + keyText + "/" + keyEvent.getKeyChar()); 
     if(keyCode > 47 && keyCode < 58) 
     { 
      txt.setEditable(true); 
     } 
     else 
     { 
      txt.setEditable(false); 
      return "Only Numeric Value Accepted"; 
     } 
    } 
} 

모든 것이 제대로 작동하지만 문제는 사용자가 알파벳을 입력 할 때마다 텍스트 필드가 비활성화되고 이것이 내 문제입니다. 즉, 알파벳을 입력 할 수 없으며 텍스트 필드를 사용하도록 설정해야합니다. 미리 감사드립니다. !!

JTextComponents 내부 듣기 변경
  • 사용 DocumentListener,
  • KeyListener를 사용하지 마십시오,이 Listener은 선사 시대 AWT 구성 요소에 대한 지정
      , Swing JComponents ( JApplet가) 사용에 대한 KeyBindings
  • +0

    1) 일관성을 사용하십시오 –

    답변

    2
    코드 블록에 대한 논리적 들여 쓰기. 2) 더 빨리 도움을 받으려면 [SSCCE] (http://sscce.org/)를 게시하십시오.
    +0

    내 문제를 참조 할 수있는 KeyBinding에 대한 예입니다. 입력이 알파벳인지 여부를 확인합니다. –

    +0

    DocumentListener를 사용하면 JTextComponents에 대한 KeyBindings에 대한 생각을 잊어 버려야합니다. – mKorbel

    +0

    KeyBindings, http://stackoverflow.com/questions/7976209/using-keybinding-to-get-keycode에 대한 도움말을 찾았지만 생각하지 않습니다. 그래서, 그것은 내 문제를 해결할 것입니다. –

    관련 문제