zoukankan      html  css  js  c++  java
  • Demo

    Notebook记事本程序
    模仿windows系统自带的记事本程序制作简单案例。界面设计包括菜单栏,菜单栏中有文件选项,包含带图标的打开、保存文件列表,还包括主界面文本编辑区。打开文件弹出打开文件对话框选择文件,保存文件弹出另存为对话框保存进行文件保存设置。


    import javax.swing.*;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.io.*;
    
    public class Notepad extends JFrame implements ActionListener{
        JTextArea jta=null;  // 文本输入区域
        JMenuBar jmb=null;   // 菜单栏
        JMenu jml=null;      // 菜单
        JMenuItem jmi1=null; // 菜单项1
        JMenuItem jmi2=null; // 菜单项2
    
        public Notepad(){
            jta=new JTextArea();  // 实例化文本输入区域
            jmb=new JMenuBar();   // 实例化菜单栏
            jml=new JMenu("文件"); // 实例化菜单
            jml.setMnemonic('F'); // 设置助记符
                //两个图标路径换一下
            jmi1=new JMenuItem("打开", new ImageIcon("image/open.png"));
            jmi1.addActionListener(this);
            jmi1.setActionCommand("open");
            jmi2=new JMenuItem("保存", new ImageIcon("image/save.png"));
            jmi2.addActionListener(this);
            jmi2.setActionCommand("save");
    
            this.setJMenuBar(jmb);  // 设置窗口菜单栏
            jmb.add(jml);           // 把菜单放入菜单栏
            jml.add(jmi1);          // 把打开菜单项放入菜单
            jml.add(jmi2);          // 把保存菜单项放入菜单
    
            this.add(jta);  // 把文本输入域放入窗口
            this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            this.setSize(400,300);
            this.setVisible(true);
        }
    
    
        private void openFile(){
            JFileChooser jfc1=new JFileChooser();
            jfc1.setDialogTitle("请选择文件....");
            jfc1.showOpenDialog(null);  //使用默认方式
            jfc1.setVisible(true);
            //判断是否选择了文件
            if (jfc1.getSelectedFile()==null)
                return;
            //得到用户选择的文件路径
            String filename=jfc1.getSelectedFile().getAbsolutePath();
            FileReader fr=null;
            BufferedReader br=null;
            try {
                fr=new FileReader(filename);
                br=new BufferedReader(fr);
                //从文件中读取信息并显示到jta
                String s="";
                String allCon="";
                try {
                    while((s=br.readLine())!=null){
                        allCon+=s+"
    ";
                    }
                    //放置到jta
                    jta.setText(allCon);
                } catch (IOException e1) {
                    e1.printStackTrace();
                }finally{
                    br.close();
                    fr.close();
                }
            } catch (Exception e1) {
                e1.printStackTrace();
            }
        }
    
        private void saveFile(){
            //出现保存对话框
            JFileChooser jfc=new JFileChooser();
            jfc.setDialogTitle("另存为.....");
            //按默认的方式显示
            jfc.showSaveDialog(null);
            jfc.setVisible(true);
            //得到用户希望吧文件保存到何处,文件全路径
            String file=jfc.getSelectedFile().getAbsolutePath();
            //准备写入到指定文件
            FileWriter fw=null;
            BufferedWriter bw=null;
            try {
                fw=new FileWriter(file);
                bw=new BufferedWriter(fw);
                bw.write(this.jta.getText());            //一次性全部保存
            } catch (IOException e1) {
                e1.printStackTrace();
            }finally{
                try {
                    bw.close();
                    fw.close();
                } catch (IOException ioe) {
                    ioe.printStackTrace();
                }
            }
        }
    
        @Override
        public void actionPerformed(ActionEvent e) {
            //判断是哪个按钮菜单被选中
            if(e.getActionCommand().equals("open")){
                openFile();
            }else if(e.getActionCommand().equals("save")){
                saveFile();
            }
        }
    
        public static void main(String[] args) {
            new Notepad();
        }
    }
    
  • 相关阅读:
    【Anagrams】 cpp
    【Count and Say】cpp
    【Roman To Integer】cpp
    【Integer To Roman】cpp
    【Valid Number】cpp
    重构之 实体与引用 逻辑实体 逻辑存在的形式 可引用逻辑实体 不可引用逻辑实体 散弹式修改
    Maven项目聚合 jar包锁定 依赖传递 私服
    Oracle学习2 视图 索引 sql编程 游标 存储过程 存储函数 触发器
    mysql案例~tcpdump的使用
    tidb架构~本地化安装
  • 原文地址:https://www.cnblogs.com/kongw/p/13070674.html
Copyright © 2011-2022 走看看