자바를 처음 시작한다는 가정하에 사소한 것부터 하나하나 짚고 넘어가며 따라하기 쉽도록
예제를 중심으로 모든 설명이 사용자의 관점에서 자세하게 기술되어 있는것이 특징입니다.
"강이"의 자바 강좌는 본 블로그(alecture.blogspot.com)와 제휴를 통해
독점적으로 공급될 예정이며 내용의 수정은 공급자의 제한으로 불가하고
사이트 출처를 밝히는데 한해 어디서나 자유롭게 쓸수있도록 합의하였음을 알립니다.
2011년 8월 28일 일요일
스윙으로 트리 만들기(JTree)
그림처럼 시원하게 한방에 JTree 클래스를 어떻게 사용하는지 공부하게 될텐데 내용이 tree보다는 node(노드)에 대해서 관심(?)을 가지면 아주 쉽게 이해가 될것이다. 노드란? 줄기처럼 계속 이어지는 것을 생각하면 될텐데 윈도우즈 탐색기에서 폴더 트리 + - 누르면 안에 폴더 뭐있는지 볼수있고 -누르면 다시 줄이고 이런거 자바에서 어떻게 만드는지 살펴보려 한다. 혀가 굳어서 그런지 설명하기 힘드네.ㅎㅎ 그림을 보면 무엇을 하려하는지 모두들 알아챌수 있을 것이니 오늘 만들 프로그램의 결과를 먼저 보기로 하자.
자바에서 JTree와 스윙의 tree 패키지 안에있는 DefaultMutableTreeNode라는 클래스를 이용하면 위와 같이 계속 새끼(?)치는 일을 할수가 있다. 필자가 설명에 집중하도록 하기위해 다소 용어가 거칠더라도 양해하기 바란다.ㅎㅎ 핵심은 여러분이 결과물을 보면서 느꼈는지 모르겠지만 계속 가지치기(?)를 할수 있는 폴더(Tree1)와 그냥 따로 폴더(Tree2 or Tree3)를 어떻게 만드는지 관심을 갖고 예제소스를 보면 눈에 들어올 것이다. 머리속에 쏙쏙 들어가도록 상당히 쉽게 정리하였으니 특별한 설명이 없어도 소스를 보는순간 세뇌(?)당하는 것처럼 저절로 모든 것이 술술 이해가 될것이니 긴장풀고 편안하게 아래 소스를 쳐다보기 바란다.^^
차례대로 읽어내려가면 이해가 안되는 것이 없을테지만 혹시나 눈에 안들어오는 이들(?)을 위해서 필자가 특별히 빨간펜으로 밑줄 쫙쫙 그어가면서 다시 한번 강의를 하겠으니 아래 칠판(?)을 보기 바란다. ㅎㅎ
강이의 자바강좌에서 최초(?)로 시도하는 빨간줄 쭈욱 그어가며 강조하는 명강의중에 명강의(?)라 할수 있겠다. 물 흘러가듯이 트리노드가 어떤 식으로 이어지는지 해당 결과물과 함께 비교해보면 따로 설명이 필요없다 하겠다.캬아~ 스윙을 공부하면서 느끼겠지만 add( )라는 메소드가 약방의 감초처럼 쓰이는데 JTree에서는 add( ) 메소드를 어느 인스턴스에다가 붙이느냐에 따라 폴더 트리가 달라지는지 유념해서 살펴보면 될것이다. 예제를 응용하면서 폴더트리를 자바에서 어떻게 만드는지 대략적인 그림이 여러분의 머리속에 그려졌길 바라면서 오늘 강의는 이쯤에서 접도록 하겠다.^^
2011년 8월 15일 월요일
스윙으로 글입력공간 만들기(JTextArea)
JTextArea를 이용해서 간략한 예제를 볼텐데 이미 JTextPane을 섭렵(?)한 여러분들은 그냥 읽어만봐도 될것이다. 어떻게 쓰이는지 아주 가볍게 살펴보기로 하겠다. 그럼 아래의 실행결과부터 보기로 하자.^^
위의 예제처럼 지정된 폰트로 일정하게 글을 일반적으로 출력할수 있는 기능을 갖춘 것이 JTextArea라고 생각하면 될것이다. 결과에서 보듯이 스크롤바를 넣었고 글의 내용을 보면 매줄마다 끊기지않고 연결되어 있는데 필자가 한줄한줄 띄워쓴게 아니라 메모장의 메뉴에서 서식에 있는 자동줄바꿈 기능처럼 여기서도 필자가 그런 기능을 추가하여 이렇게 출력되는 것이다. 어떻게 그런 기능을 넣었는지 예제소스를 보면서 이어가겠다.
특별한게 없기도 하지만 이제 이 정도는 보면 한 눈에 들어올 것이다. JTextArea는 쓴다고 했으니까 이제 이런건 예상이 될것이고 스크롤바도 마찬가지이고 특이한 코드 한줄이 setLineWrap( ) 메소드인데 이게 바로 텍스트창에서 자동줄바꿈 기능을 쓸수 있도록 만들어주는 명령이다. 유용한 기능이니 이거 하나라도 오늘 건져가기 바란다.ㅎㅎ 텍스트창에 들어갈 내용이 문자열 변수 s인데 내용이 긴 관계로 끊은 것이니 다르다고 이상하게 생각하지 않기 바란다.^^
피드 구독하기:
글 (Atom)










