首页 > 技术文章 > JAVA 编写记事本实例

beekc 2020-03-15 18:50 原文

这个笔记本小项目主要是做一个综合练习,主要用到的知识点有:io编程、swing组件和java中的事件处理。

实例

  1 /**
  2  * 作者:白客C
  3  * 时间:2020年3月15日
  4  * 功能:记事本
  5  */
  6 package com.beekc.www;
  7 import java.io.*;
  8 import java.awt.*;
  9 import java.awt.event.*;
 10 import javax.swing.*;
 11 
 12 //继承JFrame
 13 public class NotePad extends JFrame implements ActionListener{
 14 
 15     //定义组件
 16     JTextArea jTextArea = null;
 17     //菜单条
 18     JMenuBar jMenuBar = null;
 19     //一级菜单
 20     JMenu jMenu1 = null;
 21     //二级菜单
 22     JMenuItem jMenuItem1 = null;
 23     JMenuItem jMenuItem2 = null;
 24     JScrollPane jScrollPane = null;
 25 
 26     public static void main(String[] args) {
 27         NotePad notePad = new NotePad();
 28     }
 29 
 30     //构造函数
 31     public NotePad()
 32     {
 33         //创建组件
 34         jTextArea = new JTextArea();
 35         jScrollPane = new JScrollPane(jTextArea);
 36         jMenuBar = new JMenuBar();
 37         jMenu1 = new JMenu("  文件  ");
 38         //设置助记符
 39         jMenu1.setMnemonic('F');
 40         jMenuItem1 = new JMenuItem("    打开    ",new ImageIcon("nuw.gif"));
 41         jMenuItem2 = new JMenuItem("    保存    ");
 42 
 43         //添加到布局管理器
 44         //添加组件
 45         this.add(jScrollPane);
 46         //菜单条
 47         this.setJMenuBar(jMenuBar);
 48         //菜单条(一)
 49         jMenuBar.add(jMenu1);
 50         jMenu1.add(jMenuItem1);
 51         jMenu1.add(jMenuItem2);
 52 
 53         //监听
 54         jMenuItem1.addActionListener(this);
 55         jMenuItem1.setActionCommand("open");
 56         jMenuItem2.addActionListener(this);
 57         jMenuItem2.setActionCommand("save");
 58 
 59         //窗体设置
 60         this.setTitle("NotePad");
 61         this.setSize(750,450);
 62         this.setLocation(250,110);
 63         this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 64 
 65         //显示
 66         this.setVisible(true);
 67     }
 68 
 69     //菜单事件
 70     @Override
 71     public void actionPerformed(ActionEvent actionEvent) {
 72         //判断选中那个菜单
 73         if(actionEvent.getActionCommand().equals("open")) {
 74             System.out.println("open file");
 75 
 76             //文件选择组件
 77             JFileChooser jFileChooser = new JFileChooser();
 78             jFileChooser.setDialogTitle("请选择文件...");
 79             //选择showOpenDialog窗体
 80             jFileChooser.showOpenDialog(null);
 81             jFileChooser.setVisible(true);
 82 
 83             //得到用户选择的文件全路径
 84             String filename = jFileChooser.getSelectedFile().getAbsolutePath();
 85             System.out.print("选择的路径" + filename);
 86 
 87             FileReader fileReader =null;
 88             BufferedReader bufferedReader = null;
 89 
 90             try{
 91                 fileReader = new FileReader(filename);
 92                 bufferedReader = new BufferedReader(fileReader);
 93 
 94                 //循环读取文本
 95                 String s = "";
 96                 String allCon = "";
 97                 while ((s = bufferedReader.readLine()) != null)
 98                 {
 99                     allCon += s + "\r\n";
100                 }
101                 //System.out.print(allCon);
102                 //将文本放到多行文本框
103                 jTextArea.setText(allCon);
104 
105             }catch(Exception e){
106                 e.printStackTrace();
107             }finally{
108                 //关闭资源
109                 try{
110                     fileReader.close();
111                     bufferedReader.close();
112                 }catch(Exception e){
113                     e.printStackTrace();
114                 }
115             }
116 
117         }else if (actionEvent.getActionCommand().equals("save")){
118             System.out.println("save file");
119 
120             //文件选择组件
121             JFileChooser jFileChooser = new JFileChooser();
122             jFileChooser.setDialogTitle("保存为...");
123 
124             //选择showSaveDialog
125             jFileChooser.showSaveDialog(null);
126             jFileChooser.setVisible(true);
127 
128             //得到用户希望把文件保存何处
129             String file = jFileChooser.getSelectedFile().getAbsolutePath();
130 
131             //写入到指定得文件
132             FileWriter fileWriter = null;
133             BufferedWriter bufferedWriter = null;
134             try{
135                 fileWriter = new FileWriter(file);
136                 bufferedWriter = new BufferedWriter(fileWriter);
137                 bufferedWriter.write(this.jTextArea.getText());
138             }catch(Exception e){
139                 e.printStackTrace();
140             }finally {
141                 try{
142                     bufferedWriter.close();
143                     fileWriter.close();
144 
145                 }catch (Exception e){
146                     e.printStackTrace();
147                 }
148             }
149         }
150     }
151 }

 

运行结果

推荐阅读