본문 바로가기
개발언어/JAVA

[JAVA] 자바 스윙( Swing ) / JFileChooser 예제

by 코딩 시그널 2020. 10. 5.
반응형

JFileChooser 

사용자가 파일을 선택할 수 있게 하는 파일 창을 생성하는 클래스입니다.

아래의 예는 JFileChooser 클래스를 이용하여 간단하게 파일 창을 open 하고 선택한 파일 경로를 출력하는 예제입니다.

 

import javax.swing.JFrame;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JLabel;
import javax.swing.filechooser.FileNameExtensionFilter;
 
public class FileDialog {
    public static void main (String [] args) {
    	FileChooserTest fileChooser = new FileChooserTest();
    }
}
                       
class FileChooserTest extends JFrame implements ActionListener{  
        private JFileChooser fileComponent = new JFileChooser();
        private JButton btnOpen = new JButton("열기");
        private JButton btnSave = new JButton("저장");
        private JLabel labelOpen = new JLabel(" ");
        private JLabel labelSave = new JLabel(" ");
        public FileChooserTest(){
            this.init();
            this.start();
            this.setSize(500, 300);
            this.setVisible(true);
        }
        public void init(){
            getContentPane().setLayout(new FlowLayout());
            add(btnOpen);
            add(btnSave);
            add(labelOpen);
            add(labelSave);
        }
        public void start(){
        	btnOpen.addActionListener(this); 
        	btnSave.addActionListener(this);
            fileComponent.setFileFilter(new FileNameExtensionFilter("xlsx", "xlsx", "xls")); // 확장자 .xlsx, xls만 선택가
            fileComponent.setMultiSelectionEnabled(false); // 다중 선택 불가 설정
        }
        public void actionPerformed(ActionEvent arg0) {
            if(arg0.getSource() == btnOpen){
                if(fileComponent.showOpenDialog(this) == JFileChooser.APPROVE_OPTION){
                	labelOpen.setText("열기 파일 경로 : " + fileComponent.getSelectedFile().toString());
                }
            }else if(arg0.getSource() == btnSave){
                if(fileComponent.showSaveDialog(this) == JFileChooser.APPROVE_OPTION){ 
                	// 파일 저장을 원하면 아래에 파일 저장 로직을 구현하면 됨.
                	labelSave.setText("저장 파일 경로 : " + fileComponent.getSelectedFile().toString());
                }
            }
        }
}

결과

열기 버튼을 누르면 파일을 선택 할 수 있는  창이 나오고 파일을 선택하면 파일 경로가 출력 창에 나타나는 것을 확인할 수 있습니다.

 

 

출처

https://blog.naver.com/cracker542/40119977325

 

 

댓글