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 |