import java.awt.*;
import java.awt.event.*;
import java.io.*;
import javax.swing.*;
//文件的创建、删除和更名
public class FileUseDemo extends JFrame{
JTextField jtfPath;
public FileUseDemo(){
super("文件的创建、删除和更名"); //调用父类构造函数
jtfPath=new JTextField(16); //实例化文件路径输入框
JButton jbFile=new JButton("选择"); //实例化文件选择按钮
JPanel panel=new JPanel(); //实例化面板,用于容纳输入框和按钮
panel.add(new JLabel("文件名: ")); //增加组件到面板
panel.add(jtfPath);
panel.add(jbFile);
JPanel panel2=new JPanel();
panel2.add(new JButton(new CreateFileAction())); //实例化按钮,并增加到面板2上
panel2.add(new JButton(new RenameFileAction()));
panel2.add(new JButton(new DeleteFileAction()));
jbFile.addActionListener(new ActionListener(){ //选择文件按钮事件处理
public void actionPerformed(ActionEvent event) {
JFileChooser fileChooser=new JFileChooser(); //实例化文件选择器
fileChooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES); //设置文件选择模式,此处为文件和目录均可
if (fileChooser.showOpenDialog(FileUseDemo.this)==JFileChooser.APPROVE_OPTION){ //弹出文件选择器,并判断是否点击了打开按钮
String fileName=fileChooser.getSelectedFile().getAbsolutePath(); //得到选择文件或目录的绝对路径
jtfPath.setText(fileName);
}
}
});
Container container=getContentPane(); //得到容器
container.add(panel,BorderLayout.NORTH); //增加组件到容器
container.add(panel2,BorderLayout.CENTER);
setSize(330,120); //设置窗口尺寸
setVisible(true); //设置窗口可视
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //关闭窗口时退出程序
}
class CreateFileAction extends AbstractAction { //创建新文件
public CreateFileAction() {
super("创建"); //调用父类构造函数
}
public void actionPerformed(ActionEvent e) {
String filename=jtfPath.getText(); //从输入框得到文件名
File sfile=new File(filename); //实例化一个文件
try{
if (!sfile.exists()){ //如果文件不存在
if (sfile.createNewFile()==true){ //创建文件成功
showMessage(filename+" 新文件创建成功."); //显示信息
}
else{
showMessage(filename+" 新文件创建失败.");
}
}
else{
showMessage(filename+" 原文件已存在.");
}
}
catch (Exception ex){
ex.printStackTrace(); //打印错误信息
}
}
}
class RenameFileAction extends AbstractAction { //重命名文件
public RenameFileAction() {
super("重命名");
}
public void actionPerformed(ActionEvent e) {
String filename=JOptionPane.showInputDialog("输入新文件名"); //输入新文件名对话框
File sfile=new File(jtfPath.getText()); //源文件
File f=new File(filename); //新文件
sfile.renameTo(f); //重命名
showMessage(sfile.getName()+" 重命名成功."); //显示信息
jtfPath.setText(f.getAbsolutePath()); //更新输入框的文件名
}
}
class DeleteFileAction extends AbstractAction { //删除文件
public DeleteFileAction() {
super("删除");
}
public void actionPerformed(ActionEvent e) {
File sfile=new File(jtfPath.getText()); //源文件
try{
sfile.delete(); //删除文件
showMessage(sfile.getName()+" 删除成功."); //显示信息
}
catch(Exception ex){
showMessage(sfile.getName()+" 删除失败.");
ex.printStackTrace();
}
}
}
private void showMessage(String message){
JOptionPane.showMessageDialog(FileUseDemo.this,message); //显示信息
}
public static void main(String[] args){
new FileUseDemo();
}
}
|
|