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();
        }
    }
    
  • 相关阅读:
    github替代品
    【推荐】通用全面的APP测试用例设计
    Jmeter 性能测试,完整入门篇
    2020年,有哪些特别好用的 app 测试工具?
    如何做好Web端性能测试?
    如何做Web服务的性能测试?
    Office 各版本批量授权(VOL)和激活方法
    django中引用bootstrap的几种方式
    list类型数据执行效率测试
    Linux安装python3环境
  • 原文地址:https://www.cnblogs.com/kongw/p/13070674.html
Copyright © 2011-2022 走看看