java中打开文件话框我们可以,调用j操作系统的文件对话框:
public class ChooseFile extends MouseAdapter{
private JTextField filePathFild;
private JFrame frame;
private FileDialog fileDialog;
private String filePath;
private String fileName;
public ChooseFile(JTextField filePathFild,JFrame frame) {
this.filePathFild = filePathFild;
this.frame = frame;
}
@Override
public void mouseClicked(MouseEvent e) {
super.mouseClicked(e);
fileDialog = new FileDialog(frame);
fileDialog.show();
filePath = fileDialog.getDirectory();
fileName = fileDialog.getFile();
if(filePath == null || fileName == null){
}else{
filePathFild.setText(filePath + fileName);
}
}
}
运行会显示如下的对话框:
注意:FileDialog(Frame f,String s,int mode):构造方法,f为所依赖的窗口对象,s是对话框的名字,mode取值为FileDialog.LOAD或FileDialog.SAVE;默认模式为LOAd模式。
二、调用java中内置的文件对话框:
public class DialogTest {
public static void main(String[] args) {
JFrame frame = new JFrame();
JButton button = new JButton("button");
button.addMouseListener(new ShowDialogLintener(frame));
frame.add(button,BorderLayout.CENTER);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
}
}
class ShowDialogLintener extends MouseAdapter{
JFrame frame;
public ShowDialogLintener(JFrame frame) {
this.frame = frame;
}
@Override
public void mouseClicked(MouseEvent arg0) {
super.mouseClicked(arg0);
JFileChooser chooser = new JFileChooser(".");
chooser.showOpenDialog(frame);
String filePath = chooser.getSelectedFile().getAbsolutePath();
System.out.println(filePath);
}
}
显示的文件对话框效果: