本文总结了JFileChooser 的文件选择,文件保存,文件格式过滤三个功能的实现方法
import java.awt.EventQueue;
import java.awt.FlowLayout;
import java.awt.HeadlessException;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.io.File;
import java.io.IOException;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.filechooser.FileNameExtensionFilter;
public class TestOpen extends JFrame {
private JPanel contentPane;
private JFileChooser chooser;
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
TestOpen frame = new TestOpen();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public TestOpen() {
chooser = new JFileChooser();
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
JButton btnOpen = new JButton("open file");
btnOpen.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
FileNameExtensionFilter filter = new FileNameExtensionFilter
("Allowd File", "txt","jar");//设置过滤器
chooser.setFileFilter(filter);
int value = chooser.showOpenDialog(TestOpen.this);
if (value == JFileChooser.APPROVE_OPTION) {
File file = chooser.getSelectedFile();
System.out.println(file.getAbsolutePath());
}
}
});
contentPane.setLayout(new FlowLayout(FlowLayout.CENTER, 5, 5));
JButton btnNewButton = new JButton("open dir");
btnNewButton.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
chooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
chooser.setMultiSelectionEnabled(true);//设置可以多选
int value = chooser.showOpenDialog(TestOpen.this);
if (value == JFileChooser.APPROVE_OPTION) {
/*
* File file = chooser.getSelectedFile();
* System.out.println(file.getAbsolutePath());
*/
File[] file = chooser.getSelectedFiles();
for (int i = 0; i < file.length; i++) {
System.err.println(file[i].getAbsolutePath());
}
}
}
});
contentPane.add(btnNewButton);
contentPane.add(btnOpen);
JButton btnSave = new JButton("save");
btnSave.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
try {
JFileChooser chooser = new JFileChooser();
int value = chooser.showSaveDialog(TestOpen.this);
if (value == JFileChooser.APPROVE_OPTION) {
File newFile = chooser.getSelectedFile();
if (newFile.exists() == false) {
newFile.createNewFile();
}
// System.out.println(chooser.getSelectedFile().getAbsolutePath());
}
} catch (HeadlessException e1) {
e1.printStackTrace();
} catch (IOException e1) {
e1.printStackTrace();
}
}
});
contentPane.add(btnSave);
}
}