ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Java记事本程序Notebook

2020-06-09 10:08:54  阅读:326  来源: 互联网

标签:文件 Java e1 Notebook jml new null jta 记事本


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+"\r\n";
                }
                //放置到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();
    }
}

标签:文件,Java,e1,Notebook,jml,new,null,jta,记事本
来源: https://www.cnblogs.com/kongw/p/13070674.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有