본문 바로가기

프로그래밍/JAVA

JFileChooser 클래스



JFileChooser Class 란?

 - JFileChooser 클래스를 사용하는경우, 윈도우의 파일열기, 저장등 과같은 형태의 Dialog 를 사용할수 있습니다.

   (아래그림 참조)

 

 

 

<그림1> 파일저장 Dialog

 

 

 

이번 강좌에서는 스윙에서 JFileChooser 클래스를 이용하여 파일창을 띄어보도록 하겠습니다.

 

 

import java.io.File;
import javax.swing.JFileChooser;
import javax.swing.JFrame;

public class Index {

	public static void main(String[] args) {
		JFrame window = new JFrame();
		//window.setVisible(true);
		
		
        JFileChooser fileChooser = new JFileChooser();
        
        //파일오픈 다이얼로그 를 띄움
		int result = fileChooser.showOpenDialog(window);
		
		if (result == JFileChooser.APPROVE_OPTION) {
			//선택한 파일의 경로 반환
		    File selectedFile = fileChooser.getSelectedFile();
		    
		    //경로 출력
		    System.out.println(selectedFile);
		}
		
	}
	
}

 

 

JFileChooser 객체를 생성하고,

 

1. showOpenDialog

2. showSaveDialog

3. showDialog

 

상황에 맞게 위 3가지의 다이얼로그를 출력할수 있습니다. (위 소스에선 파일열기 다이얼로그 사용)

 

해당 다이얼로그의 인자는 component 를 받는데, 해당 컴포넌트에서 출력하고 싶은 놈을 넘겨주시면 됩니다.

(위 소스에선 메인프레임 JFrame 의 객체인 window 라는 명칭의 객체를 넣었습니다)

 

 

JFileChooser fileChooser = new JFileChooser();

우선, 객체 생성시 아무것도 인자가 없는경우 Default 디렉토리를 참조하고,

 

JFileChooser fileChooser = new JFileChooser("C:");

이렇게 지정된 Path 를 구현할수도 있습니다.

 

int result = fileChooser.showOpenDialog(window);

다이얼로그 창에서 열기가 정상적으로 수행된경우 0 을 반환 하고, 취소를 누른경우 1을 반환 합니다.

 

if (result == JFileChooser.APPROVE_OPTION)

위와 같은 조건문에서 JFileChooser 에는 몇가지 상수가 정의되어 있는데,

APPROVE_OPTION (상수 0) 즉, 파일열기를 할경우 0이 result 변수에 들어가고, 파일열기를 했을때 사용되는 상수인 APPROVE_OPTION 과 비교하여 정상적인 열기가 수행됬을때 조건문이 수행 됩니다.

 

File selectedFile = fileChooser.getSelectedFile();
그리고, 열기를 한 파일의 경로가 selectedFile 에 저장이 됩니다.

 

그리고 해당 객체를 출력하는 경우 파일경로가 표시 됩니다.

 

 

 

 

※ 응용

 - 필터링될 파일의 확장자를 추가하기

 

import java.io.File;

import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.filechooser.FileNameExtensionFilter;

public class Index {

	public static void main(String[] args) {
		JFrame window = new JFrame();
		//window.setVisible(true);
		
		
        JFileChooser fileChooser = new JFileChooser();
        
        //기본 Path의 경로 설정 (바탕화면)
        fileChooser.setCurrentDirectory(new File(System.getProperty("user.home") + "//" + "Desktop"));
        
        //필터링될 확장자
        FileNameExtensionFilter filter = new FileNameExtensionFilter("txt 파일", "txt");
        
        //필터링될 확장자 추가
        fileChooser.addChoosableFileFilter(filter);
        
        //파일오픈 다이얼로그 를 띄움
		int result = fileChooser.showOpenDialog(window);
	    System.out.println(result);
		
		if (result == JFileChooser.APPROVE_OPTION) {
			//선택한 파일의 경로 반환
		    File selectedFile = fileChooser.getSelectedFile();
		    
		    //경로 출력
		    System.out.println(selectedFile);
		}
		
	}	
}

 

 

 

'프로그래밍 > JAVA' 카테고리의 다른 글

자바 IO&NIO 파일복사 (FileCopy) 방법  (0) 2014.09.08
JOptionPane 클래스  (0) 2013.08.31
Swing LookAndFeel  (0) 2013.08.31
JAVA SQLLite3 사용하기 (3)  (0) 2013.08.31
JAVA SQLLite3 사용하기 (2)  (0) 2013.08.31