zl程序教程

您现在的位置是:首页 >  Java

当前栏目

[javaSE] GUI(打开文件对话框)

2023-02-18 15:47:18 时间

使用FileDialog可以打开文件对话框,根据模式不同,可以分为打开文件和保存文件对话框

 

获取FileDialog对象,new出来,参数:所属Frame对象,String的标题,FileDialog.LOAD

MenuItem对象设置点击事件,点击事件中,调用FileDialog对象的setVisible(true)方法

调用FileDialog对象的getDirectory()方法,得到String的目录

调用FileDialog对象的getFile()方法,得到String的文件名称

 

选中文件后,在文本域中显示出来

获取TextArea对象,用来显示文本字符

获取到File对象,构造参数:String目录,String文件名

读取字符流数据,显示出来

import java.awt.FileDialog;
import java.awt.Frame;
import java.awt.Menu;
import java.awt.MenuBar;
import java.awt.MenuItem;
import java.awt.TextArea;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;

public class MenuBarDemo {
    private Frame frame;
    private MenuBar menuBar;
    private Menu menu;
    private Menu subMenu;
    private MenuItem menuItem,openFileBtn;
    private FileDialog openFile;
    private TextArea ta;
    public MenuBarDemo() {
        init();
        addEvents();
    }

    public void init() {
        frame = new Frame("菜单测试");
        frame.setBounds(300, 200, 500, 400);
        // 菜单栏
        menuBar = new MenuBar();
        // 菜单
        menu = new Menu("文件");
        // 菜单项
        openFileBtn=new MenuItem("打开");
        menuItem = new MenuItem("退出");
        // 菜单添加菜单项
        menu.add(openFileBtn);
        menu.add(menuItem);
        // 菜单栏添加菜单
        menuBar.add(menu);
        frame.setMenuBar(menuBar);
        //文本域
        ta=new TextArea();
        frame.add(ta);
        
        frame.setVisible(true);

    }

    public void addEvents(){
        frame.addWindowListener(new WindowAdapter() {
            @Override
            public void windowClosing(WindowEvent e) {
                System.exit(0);
            }
        });
        //菜单点击
        menuItem.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                System.exit(0);
            }
        });
        //打开文件
        openFileBtn.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                openFile=new FileDialog(frame, "打开文件", FileDialog.LOAD);
                openFile.setVisible(true);
                String dirName=openFile.getDirectory();
                String fileName=openFile.getFile();
                System.out.println(dirName);
                
                //读取展示文件
                if(dirName==null || fileName==null){
                    return;
                }
                File file=new File(dirName,fileName);
                try {
                    BufferedReader br=new BufferedReader(new FileReader(file));
                    String line;
                    StringBuilder text = new StringBuilder();
                    while((line=br.readLine()) != null){
                        text.append(line);
                        text.append("\r\n");
                    }
                    ta.setText(text.toString());
                } catch (Exception e1) {
                    e1.printStackTrace();
                }
                
            }
        });
    }

    /**
     * @param args
     */
    public static void main(String[] args) {
        new MenuBarDemo();
    }

}