这个笔记本小项目主要是做一个综合练习,主要用到的知识点有:io编程、swing组件和java中的事件处理。
实例
1 /**
2 * 作者:白客C
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 }
运行结果