2010-03-03 3 views
2

포맷터 텍스트 필드에서 숫자의 상한을 설정하고 싶습니다. 의이 형식은 다음 문자열이 있다고 가정 해 봅시다 : 사용자가 180보다 큰 수를 입력하려고 그렇게 할 때, 23.67는 "자바의 JFormatterTextfield에서 숫자의 상한 설정

첫 번째 숫자는 180보다 작아야합니다

036 12 '을, 그것은해야합니다 MaskFormatter를 사용하여 위와 같이 문자열의 서식을 지정했으나 첫 번째 숫자의 상한을 설정할 수 없습니다. 어떻게이 일을 할 수 있습니까? 감사.

+0

180보다 큰 숫자를 입력 할 때 원하는 동작은 무엇입니까? 사용자에게 알리시겠습니까? 자동으로 180으로 설정 되셨습니까? 조용히 실패합니까? – Pops

+0

사용자는 180보다 큰 숫자를 입력 할 수 없습니다. – user285715

답변

1

나는 이것을 직접 어떻게 할 수 있을지 모르겠다. JFormattedTextField

한 가지 해결 방법은 InputVerifier를 사용하여 사용자가 탭을 열었을 때 오류 메시지와 포커스가 텍스트 필드로 반환됩니다.

또 다른 방법은 DocumentFilter를 AbstractDocument에 추가하는 것입니다. 그런 다음 문서에 추가되기 전에 텍스트를 편집 할 수 있습니다. 자세한 내용은 Text Component Features에 대한 스윙 튜토리얼의 섹션을 읽어보십시오.

+0

+1 자본 아이디어! 'HeadingFormat'의 구현은 가치가 있습니다. 참조 용으로 'DateTimeVerifier'가 있습니다. http://stackoverflow.com/questions/2234726/jformattedtextfield-input-time-duration-value/2241997#2241997 – trashgod

+0

답장을 보내 주셔서 감사합니다.하지만 입력하는 동안 잘못된 값을 가면 안됩니다. MaskFormatter 않습니다. 잘못된 숫자는 텍스트 필드에 표시하면 안됩니다. 다른 제안? – user285715

+0

DocumentFilter가 사용되는 대상입니다. 문자가 입력 될 때 문자를 가로 채기합니다. – camickr