2012년 2월 17일 금요일

스윙으로 패널 만들기(JPanel)

오늘부터는 일반적으로 스윙에서 널리 사용되는 콤포넌츠들을 모아서 차례차례 학습하는 시간을 갖기로 하겠다. 아래와 같이 총 5개의 콤포넌트들을 순서대로 살펴볼텐데 이미 여러 스윙 예제를 지금까지 접하면서 친근한 것들(?)이 많을테니 공부하는데 그리 부담감은 없으리라 생각한다. 그럼 그 첫번째 시간으로 자바의 패널인 JPanel부터 공부해 보기로 하자.^^


General-Purpose Containers
JPanel
JScrollPane
JSplitPane
JTabbedPane
JToolBar


아마 많은 이들이 자바 스윙의 JFrame과 JPanel을 접하면서 도대체 뭐가 다른거지? 그냥 항상 자주 보던거긴한데 그게 그거 같고 막상 구분할려니 난감해 할것이다. 그런 이들에게 필자는 아주 클리어하게 위의 그림을 보여주고 싶다.^^ 그림을 보면서 영어의 사전적 의미를 되새겨보면 희한하게도 머리속이 깨끗하게 정리될 것이라 본다. 판넬? 오우 노오.. 패널~ ㅎㅎ

태반이 자바를 공부하면서도 자바의 뼈대인 이런 자바 가문(?)의 계보도를 홀대히 여기는 경향이 있는데 대부분 누군가에게 관심을 가지면서 뜻하든 뜻하지 않든 기본적으로 보게 되는 것이 가문이듯이 자바도 자연스럽게 이런 것을 가끔씩 쳐다보면 의외로 의문점이 자연스럽게 해결될때가 있다.

이거 도무지 필자가 무슨 말을 하는지 모르겠다 하는 이들은 다 집어치고 아래의 예제를 보기 바란다. 언제나 그렇듯 필자의 예제를 보기만 해도 신기하게 술술 풀리는 것에 의문점을 가지는 이들이 많으나 이 의문점을 필자도 풀어줄수 없음에 안타까움을 금하는 바이다.ㅎㅎ


예제에서 나오는 JLabel은 패널에 글자쓰기 위한 곁다리라고 보면되고 역시 핵심은 JFrame과 더불어 오늘의 주제인 JPanel인데 아마도 그냥보고 실행시켜보면서 꼼지락꼼지락 대다보면 저절로 이해가 되는 자신에 놀라게 될것이다.ㅎㅎ


설명을 너무 안하면 서운한 이들을 위해 간단하게 설명을 아주 살짝만 해보도록 하겠다. JFrame은 그냥 밖에 창테두리쳤다 생각하고 안에다 뭐좀 써넣으려고 JPanel 좀 건드리고 JFrame과 JPanel의 연결고리를 만들어주기 위해 Container 클래스 불러들여 엮어묶어서 해결하는 예제다.

본 예제의 이해 심층도를 높이기 위해서 한가지 덧붙이자면 add( ) 메소드를 각 클래스에 따라서 어떻게 이용하는지 유심히 살펴보면 전체적인 코드의 흐름이 느껴지기 시작할 것이다. 물론 그게 느껴지는 큰 이유중의 하나는 바로 필자가 만들었다고는 믿어지지 않는 아주 심플하고도 심오한 예제에 있을 것이나 필자가 시간이 없는 관계로 이에 대한 강조는 잠시 미루어두기로 하고 오늘은 이만 끝~^^