文件选择对话框
JFileChooser,文件选择对话框
用于打开系统文件对话框,选择文件或目录。
区分:showOpenDialog() 与 showSaveDialog()
showOpenDialog():
当需要打开一个文件时(读文件),需要选择有一个现有的文件
showSavaDialog():
当你需要写入一个文件时(写文件),需要指定文件的保存路径,该文件可能尚不存在
代码:
package my;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.SwingUtilities;
import javax.swing.UIManager;
import javax.swing.filechooser.FileNameExtensionFilter;
public class Demo {
public static void main(String[] args) {
MyFrame frame = new MyFrame("Demo");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(700, 700);
frame.setLocation(300, 300);
frame.setVisible(true);
//改变观感
try {
UIManager.setLookAndFeel(
UIManager.getSystemLookAndFeelClassName());
SwingUtilities.updateComponentTreeUI(frame);
}catch(Exception e) {
e.printStackTrace();
}
}
}
class MyFrame extends JFrame{
JTextField textField = new JTextField(20);
public MyFrame(String title) {
super(title);
//ContentPane
JPanel root = new JPanel();
root.setLayout(new FlowLayout());
this.setContentPane(root);
JButton button = new JButton("选择");
root.add(new JLabel("文件"));
root.add(textField);
root.add(button);
button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
test1();
}
});
}
private void test1() {
JFileChooser chooser = new JFileChooser();
//FileNameExtensionFilter:文件名后缀过滤器
FileNameExtensionFilter filter = new FileNameExtensionFilter("图片文件", "jpg", "jpeg", "png");
chooser.setFileFilter(filter);
//显示对话框
int ret = chooser.showOpenDialog(this);
//获取用户选择的结果
if(ret == JFileChooser.APPROVE_OPTION) {
//如果用户点击了确定
//结果为一个已经存在的文件
File file = chooser.getSelectedFile();
textField.setText(file.getAbsolutePath());
}
}
private void test2() {
JFileChooser chooser = new JFileChooser();
//设置模式:仅选择目录
chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
//显示对话框
int ret = chooser.showOpenDialog(this);
//获取用户选择结果
if(ret == JFileChooser.APPROVE_OPTION) {
File file = chooser.getSelectedFile();
textField.setText(file.getAbsolutePath());
}
}
private void test3() {
JFileChooser chooser = new JFileChooser();
//FileNameExtensionFilter:文件名过滤器
FileNameExtensionFilter filter = new FileNameExtensionFilter("XML文件", "xml");
chooser.setFileFilter(filter);
//显示对话框 showSaveDialog
int ret = chooser.showSaveDialog(this);
//获取用户选择的结果
if(ret == JFileChooser.APPROVE_OPTION) {
//结果为:用户要保存的文件的路径
File file = chooser.getSelectedFile();
textField.setText(file.getAbsolutePath());
}
}
}
显示
JFileChooser 更多的用法:
setDialogTitle(); //对话框标题
setCurrentDirectory(); //当前目录
setSelectedFile(); //当前文件
setMultiSelectionEnabled(); //单选/多选
setFileFilter(); //后缀过滤
显示: