개발 공부/자바(Java)

[자바] JTextField에 범위 지정된 정수값만 받는 방법

가이윤 2021. 2. 6. 21:05

 

자바(Java)에서 GUI로 프로그램을 만들려고 할 때 텍스트필드(JTextField)를 자주 사용합니다.

보통 자주 사용하는 형태가 JTextField 바로 옆에 버튼(JButton)을 배치해서 JTextField에 값을 입력하고 JButton을 클릭하면 입력된 값으로 결과가 나타내는 방식이 많습니다.

이 때 JTextField 에 입력되는 값을 제한하고 싶은 경우가 있는데, 여러 가지의 방법이 있습니다.

그 중에서 제가 알게된 방법을 보여드리겠습니다.

JFormattedTextField를  사용하면 됩니다.

 

먼저 위에서 말한 형태로 배치하기 위해 GUI를 만들어보겠습니다.

Window Builder를 사용하겠습니다.

Window Builder 사용방법이 궁금하시면 먼저 이것을 참고하시면 되겠습니다.

 

[자바] 이클립스(eclipse)에서 Window Builder(윈도우 빌더) 활용해서 GUI 만들기

 

[자바] 이클립스(eclipse)에서 Window Builder(윈도우 빌더) 활용해서 GUI 만들기

학교에서 자바로 프로그래밍 수업을 하면, GUI 관련 내용도 배우는 경우가 많습니다. 그리고 과제나 시험 프로젝트로 GUI를 활용해서 프로그램을 만들어 와야하는 경우가 있을겁니다. GUI를 만들

hansol94.tistory.com

 

우선 첫 화면에서 프레임에 컴포넌트들의 배치를 자유롭게 하기 위해 Absolute layout을 넣고, 패널을 넣어줍니다.

그리고 패널에도 Absolute layout을 넣습니다.

 

 

 

빨간색 표시된 부분이 수정되거나 추가된 부분입니다.

 

 

 

위 사진은 Design에서 추가할 수 있는 부분이 아니라서 소스코드를 입력해줍니다.

위 코드는 JTextField에 정수형으로 1~10의 범위만 입력 받을 수 있도록 지정한 코드입니다.

setMinimum() 메소드가 최소값 지정이고, setMaximum() 메소드가 최대값을 지정하는 메소드입니다.

범위를 벗어나는 정수나 특수기호 등을 입력해서 버튼 클릭 등의 이벤트를 발생시키면 예외가 발생합니다.

 

 

 

버튼을 사용해서 입력값이 범위 맞게 입력됐는지 이벤트를 발생시키기 위해 Design 탭으로 와서 JButton을 추가해줍니다.

 

 

버튼에 클릭 이벤트를 추가해주기 위해 다음의 코드를 추가해줍니다.

 

 

위의 코드를 추가하고 실행해서 1을 입력 후에 버튼을 누르면 출력결과가 잘 나오는 것을 확인할 수 있습니다.

 

 

하지만 1~10 이외의 값을 입력하면 NumberFormatException이라는 예외가 발생하는 것을 알 수 있습니다.

때문에 예외처리를 해주고 1~10 이외의 값을 입력하면 "1~10 의 값을 입력하세요" 라는 팝업창이 뜨도록 설정해주려고 합니다.

 

 

 

try~catch문으로 예외처리를 해주고 다시 실행해서 1~10 이외의 값을 입력해봅니다.

 

 

 

잘 실행되네여. ㅎㅎ

 

저의 이클립스 테마와 글자색이 궁금하시면 아래의 게시물을 참고하시면 됩니다 :)

[자바] 이클립스(eclipse)에서 글자색, 테마(배경화면) 어둡게(dark) 바꾸기

 

[자바] 이클립스(eclipse)에서 글자색, 테마(배경화면) 어둡게(dark) 바꾸기

자바로 개발을 시작하면 이클립스를 사용하는 경우가 많습니다. 처음 이클립스를 설치하면 테마(배경화면)은 아래의 사진처럼 밝은(light) 톤으로 되어있을 겁니다. 그런데 이렇게 밝은 톤으로

hansol94.tistory.com