2011년 8월 11일 목요일

스윙으로 파일선택창 만들기(JFileChooser)


오늘은 스윙의 JFileChooser를 이용하여 파일선택창을 만들어보도록 하겠다. 어떤 소프트웨어든지 실행시키고 들어가면 파일메뉴에 Open이라든지 Save라는 메뉴버튼이 보통 있을 것이다. 그럼 파일을 열고 저장할수 있는 창이 나오는데 이걸 자바에서 만들어보고자 한다. 필자가 무슨 말을 하는지 못알아듣겠다면 아래의 그림을 보면 아! 이거~ 라고 금방 캐치할수 있을 것이다.^^



뭔가 그럴듯하게(?) 보인다.ㅎㅎ 소스는 간단하면서도 심오하다. 강이의 자바강좌에서 사용되는 모든 예제는 필자가 직접 서술한 것이다. 그러기에 아주 강력하면서도 파워풀하게 여러분의 머리속으로 쏙쏙 들어갈 것이다. 오늘도 예외는 없다.ㅎㅎ 긴장하고 있다면 마음을 가라앉히고 필자의 한마디 한마디에 귀를 기울이면서 예제를 공부하면 큰 어려움은 없으리라 본다. 그럼 예제 소스를 보면서 따라오기 바란다.^^


예제를 보면 swing 패키지뿐만 아니라 io 패키지도 사용하고 있는데 파일을 건드리는 것이니만큼 이미 예상한 이도 있었을지 모르겠다. 어차피 이런거 깊이 들어가면 하루종일 해도 끝이 없을 것이다. 그냥 파일을 건드리니 io 패키지의 File 클래스도 건드리는구나라고 가볍게 터치하면서 넘어가기 바란다.

그럼 메인메소드속으로 들어가보겠다. 파일선택창을 만들려고 JFileChooser 클래스를 이용하여 인스턴스를 만들었다. 밑에 보면 주석이 있는데 괄호안에 디렉토리명을 써주면 파일선택창이 열림과 동시에 여러분이 지정한 해당 디렉토리에서 시작한다. 아무것도 안써주면 여러분이 쓰고 있는 OS 설정이 되어있는 디렉토리에서 시작한다. 즉 여러분이 윈도우즈의 파일탐색창 같은걸 열었을때 시작하는 디렉토리와 같은 곳에서 시작할 것인데 아마 보통의 경우라면 여러분의 내문서 폴더에서 시작할 것이다.^^ 해당 디렉토리 지정시 주의할 점은 슬래쉬가 보통때 쓰는 역슬래쉬가 아니라 그냥 슬래시(/)를 쓴다는 것이니 해보고 안된다고 필자한테 항의(?)하는 이가 없길 바란다. 이런거까지 정성껏 알려주는 이는 필자가 유일할 것이니 몰랐다면 감사의 묵념(?)을 드리는 시간을 잠깐 갖기 바란다.ㅎㅎ

FileFilter를 사용해서 파일확장자를 지정해줄수 있다. 예제에서는 확장자가 .java라는 파일을 파일선택창에서 보여주라고 지정한 것인데 다른걸 원하면 java 글귀 대신에 mp3나 txt 같은걸로 고쳐서 해보면 무슨 말인지 금방 알게 될것이다. 앞에 java files 라는건 위의 그림보면 알겠지만 파일종류 설명 적어놓은거다. 중간에 있는건 점(.)이 아니라 콤마(,) 쉼표니까 괜히 점찍지 말아라.ㅎㅎ

밑의 add 필터부분은 여러분이 파일을 선택했을때 말그대로 필터링 각각 상황에 따른 처리 알아서 해주는 기능인데 여러분이 파일을 선택할수도 있고 디렉토리를 선택할수도 있고 아니면 그냥 창안에 빈공간의 아무데나 클릭할수도 있겠다. 그런 상황별 처리를 해준다 생각하면 되겠다.^^

자 이제 여러분이 파일을 선택했을때 간단한 메세지를 출력하도록 필자가 안배해놓은 부분이다. 여러분이 선택한 파일을 열면 그 파일에 대한 정보를 수치로 받아서 무슨 이름의 파일인지 출력하고 그 파일이 어느 디렉토리에 있는지 해당 디렉토리 루트를 출력하라는 예제이다. 더 자세히 설명하자면 if문에서 파일 선택하여 열었다는 신호가 오면 getSelectedFile( ).getName( )을 이용해서 파일이름 출력하고 여기서 getName( )만 빼서 출력시키면 바로 파일명과 함께 해당 디렉토리의 루트도 같이 출력된다.^^

예제를 직접 실행시켜보면 필자가 이렇게 장황하게 설명한 보람도 없이 예제만 갖고도 여러분이 기본적으로 알아야할 JFileChooser에 관련된 대부분의 내용이 손쉽게 흡수될 것이다. 나름데로 응용해보면서 오늘 배운 내용을 잘 정리하기 바란다.^^

댓글 1개:

  1. 열기 하면 열기가 되지 않는데요? 다른 소스도 있나요?

    답글삭제