2011년 7월 9일 토요일

스윙으로 텍스트필드 만들기(JTextField)


자바의 스윙을 이용해 텍스트 필드를 만들어 보겠다. 말그대로 글자를 쓸수 있는 공간을 만들어볼텐데 약간의 게임적인 요소들(?)을 가미해서 진행해 보겠다. 오늘 예제는 엔터를 치면 위치가 이동하면서 엔터를 몇번 치는지 횟수를 카운트하는 자바 소스를 준비하였다. 스윙 프로그램에서 유저가 액션을 취하면 반응하는 예제는 버튼을 공부하는 시간에 배워보았었는데 소스가 복잡해져 기본 원리를 깨우치는데 힘들어할까봐 그동안 특별한 액션(?)을 취하지 않았지만 강이의 자바강좌를 꾸준히 공부해온 여러분들은 이제 어느 정도의 액션은 받아들일수 있을 것이라 보고 오늘은 필자의 현란한 액션(?)을 가미한 예제를 공부해 보기로 하겠다. 여기서 말하는 액션이란 액션 리스너와 액션 이벤트를 칭한다.^^ 자 준비되었으면 액션~ ㅎㅎ


엔터를 1번 치셨습니다.


엔터를 2번 치셨습니다.


..
...

본 예제는 엔터를 누를때마다 텍스트필드에 있는 기존 문자열의 위치가 바뀌면서 위처럼 엔터를 몇번 치는지 카운트하도록 간단한 기능을 넣어보았다. 그럼 예제를 살펴보기로 하자.


오래간만에 예제가 길어보인다.^^ 흡족한가? ㅎㅎ 텍스트 필드는 처음 들어가니 부담감이 있겠지만 필자의 주옥같은 설명을 곁들이면 별것 아니라는 생각이 들기 시작할 것이다.^^ 그럼 소스 분석을 시작해 보겠다. 클래스에서 보면 변수가 있고 count( ) 메소드가 있는데 나중에 유저가 텍스트 필드에 뭔가 액션(예제에서는 엔터를 칠 경우)을 취하면 몇번 치는지 숫자 세어보라고 만들어 놓은 것이니 너무 이곳에 집중하지 말기 바란다. 자 그럼 메인메소드로 들어가서 보면 처음 시작이야 지겹도록 보여줬으니 이제 저절로 건너뛰어질 것이다.ㅎㅎ

오늘의 중심인 텍스트 필드를 구현하려고 JTextField 클래스를 동원한 객체생성 문구가 나오기 시작한다. 문자열 옆에 20 이라는 숫자는 텍스트 필드 사이즈를 써놓는 공간이다. 그리고 setHorizontalAlignment( ) 메소드는 글자 위치를 어디에 놓을지 정할때 쓰는 표현인데 여기서는 중앙에 놓기위해 JTextField.CENTER 라고 써놓았다. 예전에 레이블에서 배웠던거랑 별로 다를게 없다. 액션 리스너를 이용해서 유저가 엔터를 칠경우 텍스트 필드에 적혀있는 글자들을 좌우중앙으로 이동하면서 즉 처음에는 중앙으로 맞추어 놓았으니 그에 해당하는 두번째 if문이 수행되면서 밑에 있는 프린트문이 수행될 것이고 그 다음에 또 엔터를 치면 이에 해당하는 첫번째 if문이 수행되면서 밑에 있는 프린트문이 출력된다. 이런식으로 계속 반복되는 프로그램이다. 어려울건 없으니 직접 생각하고 실행해보면서 오늘도 마무리 잘하기 바란다.^^

댓글 없음:

댓글 쓰기