2013-08-15 1 views
0

JTextField에 어떤 키를 넣을지 설정할 방법이 있습니까? 난 단지 문자 키를 누르면, 입력 할 번호를 원한다면JTextField에 입력 가능한 문자 설정

예를 들어, 그 편지는 JTextField를에서 기존 텍스트에 추가되지 않습니다.

+0

예 몇 가지 방법을 ... – mKorbel

+0

[서식있는 텍스트를 사용하는 방법 필드 (HTTP : //docs.oracle.com/javase/tutorial/uiswing/components/formattedtextfield.html) – mre

+0

KeyAdapter를 사용하고 마음에 들지 않는 키를 사용할 수 있습니다. – MightyPork

답변

1

JTextField에 숫자 값만 삽입하는 사용자 정의 문서를 설정합니다.

의 JTextField에 대해 오라클 documententation에 나타낸 바와 같이 :

public class UpperCaseField extends JTextField { 

public UpperCaseField(int cols) { 
    super(cols); 
} 

protected Document createDefaultModel() { 
    return new UpperCaseDocument(); 
} 

static class UpperCaseDocument extends PlainDocument { 

    public void insertString(int offs, String str, AttributeSet a) 
     throws BadLocationException { 

     if (str == null) { 
      return; 
     } 
     char[] upper = str.toCharArray(); 
     for (int i = 0; i < upper.length; i++) { 
      upper[i] = Character.toUpperCase(upper[i]); 
     } 
     super.insertString(offs, new String(upper), a); 
    } 
} 

}

자세히보기 : http://docs.oracle.com/javase/7/docs/api/javax/swing/JTextField.html

+3

@ user2097804와 관련하여 살펴 보시기 바랍니다.이 방법이 유용 할 수 있지만 더 이상 권장되지 않습니다. 접근. API의 예제 코드는 오래되었습니다. Swing의 새 버전은 더 나은 접근법을 지원하지 않습니다. 형식이 지정된 텍스트 필드 또는 DocumentFilter를 사용할 수있는 주석을 참조하십시오. KeyListener는 사용하지 말아주세요. – camickr

관련 문제