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


    使用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("
    ");
                        }
                        ta.setText(text.toString());
                    } catch (Exception e1) {
                        e1.printStackTrace();
                    }
                    
                }
            });
        }
    
        /**
         * @param args
         */
        public static void main(String[] args) {
            new MenuBarDemo();
        }
    
    }

  • 相关阅读:
    所有网卡常用信息获取集中展示(CentOS6 &CentOS7)
    Centos下网络配置方法(网关、dns、ip地址配置)
    解决修改密码报错‘passwd:Authentication token’
    CPU相关知识---物理CPU数、物理核数、逻辑核数、逻辑CPU数 ?
    Linux sort 多字段分组排序
    Linux下查看所有CPU核心使用率的方法
    PAM禁止root用户登录,限制普通用户使用su切换到root
    python3爬虫初探(一)之urllib.request
    POJ2689——区间筛法——Prime Distance
    2次方表
  • 原文地址:https://www.cnblogs.com/taoshihan/p/5590190.html
Copyright © 2020-2023  润新知