일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- select
- DB
- where
- Reader
- java
- 상속
- Annotaion
- 난수
- Oracle
- JDBC
- statement
- swing
- 예외처리
- 16bit
- driver
- DB연동
- 8bit
- Serializable
- Join
- set
- 다이얼로그
- Connection
- stream
- 조회
- InputStream
- array
- Transaction
- 오라클
- transient
- 자바
- Today
- Total
오버플로
[Java] File Dialog 본문
File Dialog
- 하드디스크에 존재하는 파일을 선택할 때 사용하는 컴포넌트
- java.awt package에서 제공
- OS에서 제공하는 FileDialog를 그대로 사용함
- 사용법)
1. 객체생성 :
FileDialog fd = new FileDialog(부모 윈도우, “파일 다이얼로그 타이틀”, 모드);
>> 모드 - 열기모드 사용 : FileDialog.LOAD
저장모드 사용 : FileDialog.SAVE
2. 가시화 : fd.setVisiable(true);
3. 파일의 경로 얻기 (파일이 어떤 폴더에 존재하는지) : String path = fd.getDirectory();
>> 취소 버튼을 누르면 null이 반환됨 / null 확인 후 사용하는 코드 필수
4. 파일명 얻기 : String name = fd.getFile();
>> 취소 버튼을 누르면 null이 반환됨 / null 확인 후 사용하는 코드 필수
# 오늘의 코딩 #
- FileDialog로 파일 경로를 가져와보쟈
import java.awt.FileDialog;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.border.TitledBorder;
@SuppressWarnings("serial")
public class UseFileDialog extends JFrame implements ActionListener {
private JButton jbtnOpen;
private JButton jbtnSave;
private JTextField jtf;
public UseFileDialog() {
jbtnOpen = new JButton("파일열기");
jbtnSave = new JButton("파일저장");
jtf = new JTextField();
jtf.setBorder(new TitledBorder("파일 경로"));
JPanel jpCenter = new JPanel();
jpCenter.add(jbtnOpen);
jpCenter.add(jbtnSave);
add("Center", jpCenter);
add("South", jtf);
jbtnOpen.addActionListener(this);
setBounds(100, 100, 500, 150);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}// UseFileDialog
@Override
public void actionPerformed(ActionEvent e) {
if (e.getSource() == jbtnOpen) { // 파일열기 버튼 선택하면 파일경로를 가져와보자
FileDialog fdOpen = new FileDialog(this, "파일열기",FileDialog.LOAD);
fdOpen.setVisible(true);
String path = fdOpen.getDirectory(); // 파일경로
String name = fdOpen.getFile(); // 파일이름
if (path != null) { // 파일이 선택되었다면 텍스트필드에 파일 경로를 보여주자
jtf.setText(path+name);
} // end if
} // end if
if(e.getSource() == jbtnSave) { // 얜 스트림배우고 나서 해볼 예쩡!
FileDialog fdSave = new FileDialog(this, "파일열기",FileDialog.SAVE);
}//end if
}// actionPerformed
public static void main(String[] args) {
new UseFileDialog();
}// main
}// class
- 일단 간단한 다이얼로그를 만들고 파일열기/저장 버튼을 클림함에 따라 수행하는 일이 다르게 작성했다.
- 파일 저장은 스트림까지 마스터하고 추가해볼 예정!_!
# 출력 결과 #
#9/04 코딩 추가
- 스트림을 이용해서 파일을 저장해보자!!
- 기존 actionPerfomed method에서 파일저장 버튼 클릭시 수행할 내용을 추가했다.
if (e.getSource() == jbtnSave) {
FileDialog fdSave = new FileDialog(this, "파일저장", FileDialog.SAVE);
fdSave.setVisible(true);
String path = fdSave.getDirectory(); // 선택된 경로 가져오기
String name = fdSave.getFile(); // 작성한 파일명 가져오기
if (path == null) { // 취소 등 발생하면 return
return;
}//end if
File file = new File(path); // 선택된 경로가 있으면 file 객체 생성
BufferedWriter br = null;
try {
br = new BufferedWriter(new FileWriter(file + "/" + name)); // 스트림연결
br.write("저장된 파일"); //쓸 내용
br.flush(); // 목적지로 분출
JOptionPane.showMessageDialog(this, "파일이 생성되었습니다."); // 사용자에게 알림
br.close(); // 다 쓴 스트림 끊기
} catch (IOException e1) {
e1.printStackTrace();
} // end catch
} // end if
}// actionPerformed
# 출력 결과 #
- 파일 저장 버튼을 클릭하면 save모드의 file dialog가 생성되고 파일 이름을 작성하여 저장을 누르면!!
- 파일이 잘 생성되었다는 메시지와 함께 저장된 파일을 확인할 수 있다!
'Java' 카테고리의 다른 글
[Java] Exception Handling - Try~catch / Finally (0) | 2021.08.25 |
---|---|
[Java] Exception Handling (0) | 2021.08.24 |
[Java] JOptionPane / JDialog (0) | 2021.08.22 |
[Java] Adapter Class (0) | 2021.08.20 |
[Java] Menu / Event Handling (0) | 2021.08.19 |