文章目录
- 一、FileDialog 对话框
- 1、构造函数
- 2、获取文件路径
- 3、获取文件名称
- 二、FileDialog 对话框代码示例
一、FileDialog 对话框
在开发时 , 经常遇到文件相关操作 , 如 : 选择文件 , 保存文件 等 , 在 AWT 中使用 FileDialog 文件对话框 实现上述功能 ;
1、构造函数
FileDialog 对话框 构造函数原型如下 :
- Frame parent 参数 : 文件对话框 的 父窗口 ;
- String title 参数 : 文件对话框 的 标题 ;
- int mode 参数 : 设置 打开文件 / 保存文件 , FileDialog.LOAD 打开文件 , FileDialog.SAVE 保存文件 ;
/**
* Creates a file dialog window with the specified title for loading
* or saving a file.
* <p>
* If the value of <code>mode</code> is <code>LOAD</code>, then the
* file dialog is finding a file to read, and the files shown are those
* in the current directory. If the value of
* <code>mode</code> is <code>SAVE</code>, the file dialog is finding
* a place to write a file.
*
* @param parent the owner of the dialog
* @param title the title of the dialog
* @param mode the mode of the dialog; either
* <code>FileDialog.LOAD</code> or <code>FileDialog.SAVE</code>
* @exception IllegalArgumentException if an illegal file
* dialog mode is supplied
* @see java.awt.FileDialog#LOAD
* @see java.awt.FileDialog#SAVE
*/
public FileDialog(Frame parent, String title, int mode) {
super(parent, title, true);
this.setMode(mode);
setLayout(null);
}
2、获取文件路径
FileDialog#getDirectory() 函数用于获取 被打开 或 被保存 文件 的 目录名称 ;
FileDialog#getDirectory() 函数原型 :
/**
* Gets the directory of this file dialog.
*
* @return the (potentially <code>null</code> or invalid)
* directory of this <code>FileDialog</code>
* @see java.awt.FileDialog#setDirectory
*/
public String getDirectory() {
return dir;
}
3、获取文件名称
FileDialog#getFile() 函数用于获取 被打开 或 被保存 文件 的 文件名称 ;
FileDialog#getFile() 函数原型 :
/**
* Gets the selected file of this file dialog. If the user
* selected <code>CANCEL</code>, the returned file is <code>null</code>.
*
* @return the currently selected file of this file dialog window,
* or <code>null</code> if none is selected
* @see java.awt.FileDialog#setFile
*/
public String getFile() {
return file;
}
二、FileDialog 对话框代码示例
FileDialog 对话框代码示例 :
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class HelloAWT {
public static void main(String[] args) {
Frame frame = new Frame("AWT 界面编程");
Box box = Box.createVerticalBox();
FileDialog openDialog = new FileDialog(frame, "打开文件", FileDialog.LOAD);
FileDialog saveDialog = new FileDialog(frame, "保存文件", FileDialog.SAVE);
Button openButton = new Button("打开文件");
Button saveButton = new Button("保存文件");
openButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// 显示 打开文件对话框
// 提示选择 文件
// 执行后代码会阻塞在此处
openDialog.setVisible(true);
// 文件选择完毕 , 就会执行后续代码
// 获取选择的 目录名称 和 文件名称
System.out.println("打开的文件路径 : "
+ openDialog.getDirectory() // D:\002_Project\003_Java_Work\KotlinDemo\
+ openDialog.getFile()); // KotlinDemo.iml
}
});
saveButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// 显示 保存文件对话框
// 提示选择 保存文件的目录
// 执行后代码会阻塞在此处
saveDialog.setVisible(true);
// 文件选择完毕 , 就会执行后续代码
// 获取保存的 目录名称 和 文件名称
System.out.println("保存文件的路径 : "
+ saveDialog.getDirectory() // D:\002_Project\003_Java_Work\KotlinDemo\
+ saveDialog.getFile()); // KotlinDemo.iml
}
});
box.add(openButton);
box.add(saveButton);
frame.add(box);
frame.pack();
frame.setVisible(true);
}
}
执行效果 :
运行后弹出如下界面 :
点击 " 打开文件 " 按钮 , 弹出如下 打开文件 对话框 , 选择要打开的文件 , 然后点击 打开按钮 , 该对话框消失 ;
同时会在 命令行中 打印出打开文件的路径 :
打开的文件路径 : C:\Users\octop\Desktop\用户协议.html
点击 保存文件 按钮 :
在弹出的 保存文件 对话框 中输入 文件名 1 , 然后点击保存 , 该 保存文件 对话框消失 ;
同时在命令行打印出 保存文件路径 ;
保存文件的路径 : C:\Users\octop\Desktop\1