Java AWT 图形界面编程FileDialog 对话框 ( 打开文件 | 保存文件 | 构造函数 | 获取文件路径 | 获取文件名称 | 代码示例 )

Posted 韩曙亮

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java AWT 图形界面编程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

以上是关于Java AWT 图形界面编程FileDialog 对话框 ( 打开文件 | 保存文件 | 构造函数 | 获取文件路径 | 获取文件名称 | 代码示例 )的主要内容,如果未能解决你的问题,请参考以下文章

Java图形界面编程

Java AWT 图形界面编程Container 容器总结

Java AWT 图形界面编程Container 容器总结

Java AWT 图形界面编程AWT 简介 ( AWT 核心类继承体系 )

java之 22天 GUI 图形界面编程

java之 22天 GUI 图形界面编程