2024年1月10日发(作者:)

《Java课程设计》记事本

课程设计报告书目录

一、设计课题

二、设计目的

三、操作环境

四、设计场所(机房号、机器号或自己机器)

五、设计过程(设计内容及主要程序模块)

六、本次设计中用到的课程知识点(列出主要知识点)

七、设计过程中遇到的问题及解决办法

八、程序清单

1

一、设计课题及内容

课题名称:记事本

(1)

内容:文件菜单中包括新建、打开、保存、另存为、退出等菜单项,其中新建菜单项可以新建一个记事本程序;打开菜单项可以打开一个用户指定的文本文件,并将其内容显示在记事本的文本区域;保存和另存为菜单项可分别实现文件的保存和另存为

(2) 编辑菜单主要包括复制、剪切和粘贴等菜单项,可分别实现编辑区文本内容的编辑操作

(3) 帮助菜单主要是现实软件版本等信息

(4) 记事本还实现了点右键弹出快捷菜单功能,加快文档的编辑效率

(5) 记事本文本区引入滚动窗格,实现编辑区的滚动查看

(6) 可自行扩充其功能:比如加入格式菜单设置文本的字体等、编辑菜单中加入查找、替换等菜单项

二、设计目的

熟悉,,等包中的组件。

掌握图形界面设计方法。

掌握窗体按钮和文本控件对事件的响应。

了解java自带的函数方法。

三、操作环境

操作系统:Microsoft Windows 10

CPU:Intel Core i5-8300H 2.30GHz

内存:8.00 GB

四、设计场所

教室b403

2

五、设计过程(设计内容及主要模块,不少于3000字)

1.设计要求

1) 界面设计

2) 功能实现

(1) 文件菜单:新建、打开、保存、另存为、退出等。

(2)其中新建菜单项可以新建一个记事本程序;打开菜单项可以打开一个用户指定的文本文件,并将其内容显示在记事本的文本区域;保存和另存为菜单项可分别实现文件的保存和另存为

3) 编辑菜单:复制、剪切和粘贴等

4) 帮助菜单:软件版本信

5) 右键弹出快捷菜单

3

2.总体设计

1)功能模块图:

打开

保存

另存为

退出

复制

剪切

粘贴

字体

颜色

记事本

右键快捷

文件

编辑 格式

帮助

关于记事本

图一功能模块图

2)功能描述

1、打开记事本。首先是标准型的记事本,拥有文件、编辑。格式和帮助。如图1所示:

图1标准型记事本界面

2、在标准型的记事本界面中,进行的新建一个本件名字叫新记事本。如图2

4

图2新建记事本功能

3、用打开文件打开刚刚新建的新记事本。如图三所示。

图3—打开文件

4、点击退出即可退出,如图4所示:

5

图4—退出记事本

5、点击帮助可以看到有关记事本的相关信息,其中有作者名、版本、许可条款、隐私声明等必要信息。如图5所示:

图5—帮助相关信息

6、右键可实现复制、粘贴、剪切、清除等常用功能,方便用户可以快捷方便的使用记事本。如图6所示:

6

图6—右键功能

7、编辑也可实现制、粘贴、剪切、清除等常用功能,方便用户选择自己适合的方式,自由选择方便的快捷方式使用。如图7:

图7—编辑

7

3.详细设计

1)流程图如下:

新建记事本

打开程序

保存

另存为

复制

粘贴

清除

剪切

打开记事本

完成

退出

8

相应的Java类有:

Notebook类:主类,添加一些记事本需要的的一些方法,对继承类的一些组件进行实体化,为每个按钮创建“这是什么”的帮助信息,按右键的时候触发什么,输出相应的帮助信息,每件事件进行监听,引用的的软件包和部分代码如下:

import .*;

import .*;

import .*;

import .*;

import java.

swing.*;

//功能:提供一组“轻量级”(所有Java语言)组件,尽可能最大程度地在所有平台上工作。

import ;

//功能:构造一个初始时不可见的新窗体。

import ;

//功能:创建具有双缓冲和流布局的新

JPanel。

import ;

//功能:用于短文本字符串或图像或二者的显示区。

import n;

//功能:创建不带有设置文本或图标的按钮。

import ield;

//功能:是一个轻量级组件,它允许编辑单行文本。

public class Notebook

{

JButton b_save,b_close; //按钮

JTextArea textArea; //文本框

File tempFile; //文件

JPanel jp; //面板

JLabel stateBar;//标签

JLabel jl,jj;

textArea = new JTextArea();

File f = ectedFile();

FileReader fr = new FileReader(f);

(ch);

String str = new String(ch);

t(str);

tempFile = f;

File f = ectedFile(); //如果没有选取文件,下面的e(f)将会返回输入的文件名

fname = e(f);

}

import .*;

//功能:提供处理由 AWT 组件所激发的各类事件的接口和类。

import Listener;

//功能:用于接收操作事件的侦听器接口。

9

import tener;

//功能://功能:用于接收键盘事件(击键)的侦听器接口

import otionListener;

//功能:用于接收组件上的鼠标移动事件的侦听器接口。

import Listener;

//功能:用于接收窗口事件的侦听器接口。

import stener;

//功能:用于接收文本事件的侦听器接口。

import stener

//功能:接收项事件的侦听器接口。

//编辑区鼠标事件,点击右键弹出"编辑"菜单

seListener(new MouseAdapter()

{

public void mouseReleased(MouseEvent e) {

if(ton() == 3)

(ponent(), (), ());

} //ponent()和textArea具有同等效果

public void mouseClicked(MouseEvent e){

}

if(ton() == 1)

ible(false);

//为窗口添加"关闭"事件的响应

dowListener(new WindowAdapter()

{

public void windowClosing(WindowEvent e)

whenExit();

{

}

});

public void actionPerformed(ActionEvent e)

{

if(rce() == f_new)

{

}

saveFileDialog();

return;

//响应菜单项"新建"的事件

//响应菜单项"打开"的事件

if(rce() == f_open){

openFileDialog();}

//响应菜单项"保存"和"按钮"保存"的事件

if((rce() == b_save)||(rce() == f_save))

{

try{

10

第 页

String str = t();

FileWriter fw = new FileWriter(tempFile);

(str);

();

//isCurrentFileExists = true;

tempFile = tempFile;}

tackTrace();

catch(Exception ex){

}}

//响应菜单"另存为"的事件

if(rce() == f_saveas){

int option = alog(this,"另存为");

String fname = null;

if(option == E_OPTION)

{

File f = ectedFile();//如果没有选取文件,下面的fname = e(f);

if(fname != null && ().length() > 0){

if(th(".txt"))

;

else{

}}

fname = (".txt");

e(f)将会返回输入的文件名

if(())

fname = e();

f = rentDirectory();

f = new

File(h().concat(tor).concat(fname));

try{

NewFile();

String str = t();

FileWriter fw = new FileWriter(f);

(str);

();

}

catch(Exception ex) {

tackTrace();

}}}

//响应"退出"菜单和"退出"按钮的事件

if((rce() == f_close)||(rce() == b_close)){

}

if(rce() == e_copy||rce() == je_copy){

11

第 页

whenExit();

}

copy();

if(rce() == e_paste||rce() == je_paste){

}

if(rce() == e_cut||rce() == je_cut){

}

if(rce() == e_clear||rce() == je_clear){

}

if(rce() == e_selectAll||rce() == je_selectAll){

}

selectAll();

clear();

cut();

paste();

import .*;

//功能:包含用于创建用户界面和绘制图形图像的所有类。

public interface ActiveEvent

//功能:知道如何对自身进行指派的事件的接口。

public class Choice

//功能:Choice 类表示一个弹出式选择菜单。

public class Color

//功能:用于封装默认 sRGB 颜色空间中的颜色,或者用于封装由

ColorSpace 标识的任意颜色空间中的颜色。

public class Menu

//功能:对象是从菜单栏部署的下拉式菜单组件。

public Notebook()

{

osableFileFilter(new FileNameExtensionFilter("文本文件jmb = new JMenuBar();

textArea = new JTextArea();

jsp = new JScrollPane(textArea);

file = new JMenu("文件");

edit = new JMenu("编辑");

style = new JMenu("格式");

help = new JMenu("帮助");

je_copy = new JMenuItem("复制(C) ");

je_paste = new JMenuItem("粘贴(P) ");

je_cut = new JMenuItem("剪切(X) ");

je_clear = new JMenuItem("清除(D) ");

je_selectAll = new JMenuItem("全选(A) ");

je_find = new JMenuItem("查找(F) ");

je_replace = new JMenuItem("替换(R) ");

je_ionListener(this); //给弹窗式的各组件添加监听器

12

第 页

(*.txt)","txt"));

);

);

);

;

je_ionListener(this);

je_ionListener(this);

je_ionListener(this);

je_ionListener(this);

je_ionListener(this);

je_ionListener(this);

//给界面上方的菜单条添加监听器

f_new = new JMenuItem("新建(N)");

f_elerator(Stroke('N',_MASK,false))

f_ionListener(this);

f_open = new JMenuItem("打开(O)");; //设置带修饰符快捷键

f_elerator(Stroke('O',_MASK,false)

f_save = new JMenuItem("保存(S)");

f_ionListener(this);

f_elerator(Stroke('S',_MASK,false)

f_ionListener(this);

f_saveas = new JMenuItem("另存为");

f_elerator(Stroke(_S,

f_ionListener(this);

f_close = new JMenuItem("退出(W)");

_MASK|_MASK));

f_elerator(Stroke('W',_MASK,false

f_ionListener(this);

e_copy = new JMenuItem("复制(C)");));

e_elerator(Stroke('C',_MASK,false) e_ionListener(this);

e_paste = new JMenuItem("粘贴(V)");

e_ionListener(this);

e_cut = new JMenuItem("剪切(X)");

e_elerator(Stroke('X',_MASK,false)) e_ionListener(this);

e_clear = new JMenuItem("清除(D)");

e_ionListener(this);

e_selectAll = new JMenuItem("全选(A)");

13

第 页

e_elerator(Stroke('V',_MASK,false));

e_elerator(Stroke('D',_MASK,false));

e_elerator(Stroke('A',_MASK,false));

);

e_ionListener(this);

e_replace = new JMenuItem("替换(R)"); e_ionListener(this);

e_find = new JMenuItem("查找(F)");

e_elerator(Stroke('F',_MASK,false)e_elerator(Stroke('R',_MASK,fal e_ionListener(this);

se));

s_font = new JMenuItem("字体(T)");

s_ionListener(this);

s_color = new JMenuItem("颜色(C)...");

s_elerator(Stroke('T',_MASK,false));

s_elerator(Stroke(_C,_MASK | _MASK));

s_ionListener(this);

h_editor = new JMenuItem("关于记事本");

h_elerator(Stroke(_E,_MASK));

h_ionListener(this);

h_help = new JMenuItem("帮助信息(H)");

h_elerator(Stroke(_I,_MASK));

}

//创建颜色选择对话框

if(rce() == s_color) {

Color c = alog(this,"请选择文字颜色",);

if(c != null){

}

else

eground(eground());

14

第 页

h_ionListener(this);

//添加右键弹出式菜单

(je_copy);

(je_paste);

(je_cut);

(je_clear);

arator();

(je_selectAll);

(je_find);

(je_replace);

eground(c);

JFrame类:被继承类的父类,对代码所用到的所以按键、菜单、文本进行定义。

}

public class Notebook extends JFrame implements ActionListener,ItemListener{

//组件创建

JButton b_save,b_close; //按钮

JTextArea textArea; //文本框

File tempFile; //文件

JPanel jp; //面板

JMenu file,edit,style,help; //菜单

JMenuItem

f_new,f_open,f_save,f_close,f_saveas,e_copy,e_paste,e_cut,e_clear,e_selectAll,e_find,e_replace,s_font,s_color,h_editor,h_help; //菜单条

JMenuBar jmb;

JScrollPane jsp; //滚动面板

JPopupMenu popUpMenu = new JPopupMenu(); //右键弹出式菜单

JLabel stateBar;//标签

JLabel jl,jj;

JFileChooser jfc = new JFileChooser(); //文件选择

JMenuItem je_copy,je_paste,je_cut,je_clear,je_selectAll,je_find,je_replace;

//弹出式菜单条

2)所用的部分图形组件的定义:

JMenuBar menuBar;//菜单条

Menu editMenu,viewMenu,helpMenu,time_sys;//菜单:编辑、查看、帮助

JMenuItem editMenu_copy,editMenu_paste;//"编辑"的菜单项

JRadioButtonMenuItem viewMenu_standarType; //"查看"的菜单项

JMenuItem helpMenu_helpTopic,helpMenu_aboutCal;//"帮助"的菜单项

JTextField displayField;//文本框

JButton btnBackspace;//按钮

JLabel lblSystemType;//用作边框的标签

JPopupMenu popupMenu;//弹出菜单及菜单项

Container dlgtipscon;//用于显示帮助提示信息的对话框(无边框)

3.定义了组件的初始化以及对界面的排版

1)对总框架的总体布局对主框架的初始化操作(仅给出标准型的 )

this.

textArea ("文本框");

//设置部分菜单项的可见性

ible(false);

ible(false);

ible(false);

ible(false);

ible(false);

f_ible(false);

f_ible(false);

f_ible(false);

f_ible(false);

15

第 页

f_ible(false);

e_ible(false);

e_ible(false);

e_ible(false);

//设置一些组件的可见性

e_ible(false);

e_ible(false);

e_ible(false);

e_ible(false);

s_ible(false);

s_ible(false);

h_ible(false);

h_ible(false);

ible(false);

ible(false);

ible(false);

ible(false);

je_ible(false);

je_ible(false);

je_ible(false);

je_ible(false);

je_ible(false);

je_ible(false);

je_ible(false);

//设置窗口大小和可见性

e(260,245);

ible(true);

}

3)记事本运算部分程序的执行过程:

在该类中,创建监听,响应相应的事件。

public void mouseReleased(MouseEvent e) {

if(ton() == 3)

(ponent(), (), ());

public void mouseClicked(MouseEvent e){

if(ton() == 1)

ible(false);

if(t().equals("已保存")||t().equals("新文档")){

}

return true;

16

第 页

else{

}

return false;

if(m == E_OPTION){

File f = ectedFile();

for(int i = 0;i <= ();i++){

char [] ch = new char[i];

try{

FileReader fr = new FileReader(f);

(ch);

String str = new String(ch);

t(str);

tempFile = f;

}

catch(IOException e){

tackTrace();

}}}

else

return;

}

if(options == E_OPTION)

{

File f = ectedFile(); //如果没有选取文件,下面的e(f)将会返回输入的文件名

fname = e(f);

if(fname != null && ().length() > 0)

{

if(th(".txt"));

17

第 页

else

{

}

fname = (".txt");

if(rce() == f_new)

{

saveFileDialog();

return;

}

if(rce() == f_open)

{

openFileDialog();

}

if(rce() == f_saveas)

{

int option = alog(this,"另存为");

String fname = null;

if(option == E_OPTION)

{

File f = ectedFile();//如果没有选取文件,下面的e(f)将会返回输入的文件名

fname = e(f);

if(fname != null && ().length() > 0)

{

if(th(".txt"))

;

else

{

fname = (".txt");

18

第 页

}

if(c != null)

{

}

else

eground(eground());

eground(c);

}

if((rce() == f_close)||(rce() == b_close)){

}

if(rce() == e_copy||rce() == je_copy){

}

if(rce() == e_paste||rce() == je_paste){

}

if(rce() == e_cut||rce() == je_cut){

}

if(rce() == e_clear||rce() == je_clear){

}

if(rce() == e_selectAll||rce() ==

clear();

cut();

paste();

copy();

whenExit();

je_selectAll){{

}

selectAll();

实现的接口:ActionListener、KeyListener和MouseMotionListener。

seListener(new MouseAdapter() {

19

第 页

public void mouseReleased(MouseEvent e) {

if(ton() == 3)

(ponent(), (), ());

} //ponent()和textArea具有同等效果

public void mouseClicked(MouseEvent e){

if(ton() == 1)

ible(false);

}});

je_ionListener(this); //给弹窗式的各组件添加监听器

je_ionListener(this);

je_ionListener(this);

je_ionListener(this);

je_ionListener(this);

je_ionListener(this);

je_ionListener(this);

20

第 页

六、设计中用到的课程知识点

Java语言程序设计:

布局管理器:BorderLayout、GridLayout

窗体类:JFrame,JButton,JMenubar,JMenuItem,JMenu,JLabel,

JCheckBox,JPopupMenu ,JTextField,

七、设计中遇到的问题及解决方法

1. 忘记一些老师上课讲的细节知识点。

翻书找回记忆。

2.右键功能不知道怎么实现,上课老师视乎没有讲过。

旁触类通,查找网上资料,右键类似与左键。

3.复制、剪切、粘贴等功能一起使用时不熟悉不顺畅。

翻书查资料,上网搜资料。

21

第 页

八、程序清单

package test;

file = new JMenu("文件");

import ; edit = new JMenu("编辑");

import .*; style = new JMenu("格式");

import .*; help = new JMenu("帮助");

import t;

import .*; je_copy = new JMenuItem("复制(C)

import .*; ");

import ooser.*; je_paste = new JMenuItem("粘贴(P)

");

public class Notebook extends JFrame je_cut = new JMenuItem("剪切(X)

implements ActionListener,ItemListener{ ");

//组件创建 je_clear = new JMenuItem("清除(D)

JButton b_save,b_close; //按钮 ");

JTextArea textArea; //文本框 je_selectAll = new JMenuItem("全 File tempFile; //文件 选(A) ");

JPanel jp; //面板 je_find = new JMenuItem("查找(F)

JMenu file,edit,style,help; //菜单 ");

JMenuItem je_replace = new JMenuItem("替换f_new,f_open,f_save,f_close,f_saveas,e_copy,(R) ");

e_paste,e_cut,e_clear,e_selectAll,e_find,e_rep

lace,s_font,s_color,h_editor,h_help; //菜单条 je_ionListener(this); // JMenuBar jmb; 给弹窗式的各组件添加监听器

JScrollPane jsp; //滚动面板 je_ionListener(this);

JPopupMenu popUpMenu = new je_ionListener(this);

JPopupMenu(); //右键弹出式菜单 je_ionListener(this);

JLabel stateBar;//标签

JLabel jl,jj; je_ionListener(this);

JFileChooser jfc = new JFileChooser(); // je_ionListener(this);

文件选择 je_ionListener(this);

JMenuItem

je_copy,je_paste,je_cut,je_clear,je_selectAll,je //给界面上方的菜单条添加监听器

_find,je_replace; //弹出式菜单条 f_new = new JMenuItem("新建 public Notebook() (N)");

{

osableFileFilter(new f_elerator(SFileNameExtensionFilter("文本文件troke('N',_MASK,false)); //(*.txt)","txt")); 设置带修饰符快捷键

jmb = new JMenuBar(); f_ionListener(this);

textArea = new JTextArea();

jsp = new JScrollPane(textArea); f_open = new JMenuItem("打开22

第 页

(O)");

f_elerator(Stroke('O',_MASK,false));

f_ionListener(this);

f_save = new JMenuItem("保存(S)");

f_elerator(Stroke('S',_MASK,false));

f_ionListener(this);

f_saveas = new JMenuItem("另存为");

f_elerator(Stroke(_S,_MASK|_MASK));

f_ionListener(this);

f_close = new JMenuItem("退出(W)");

f_elerator(Stroke('W',_MASK,false));

f_ionListener(this);

e_copy = new JMenuItem("复制(C)");

e_elerator(Stroke('C',_MASK,false));

e_ionListener(this);

e_paste = new JMenuItem("粘贴(V)");

e_elerator(Stroke('V',_MASK,false));

e_ionListener(this);

e_cut = new JMenuItem("剪切(X)");

e_elerator(Stroke('X',_MASK,false));

e_ionListener(this);

e_clear = new JMenuItem("清除(D)");

e_elerator(Stroke('D',_MASK,false));

e_ionListener(this);

e_selectAll = new JMenuItem("全选(A)");

e_elerator(Stroke('A',_MASK,false));

e_ionListener(this);

e_find = new JMenuItem("查找(F)");

e_elerator(Stroke('F',_MASK,false));

e_ionListener(this);

e_replace = new JMenuItem("替换(R)");

e_elerator(Stroke('R',_MASK,false));

e_ionListener(this);

s_font = new JMenuItem("字体(T)");

s_elerator(Stroke('T',_MASK,false));

s_ionListener(this);

s_color = new JMenuItem("颜色(C)...");

23

第 页

s_elerator(Stroke(_C,_MASK | _MASK));

s_ionListener(this);

h_editor = new JMenuItem("关于记事本");

h_elerator(Stroke(_E,_MASK));

h_ionListener(this);

h_help = new JMenuItem("帮助信息(H)");

h_elerator(Stroke(_I,_MASK));

h_ionListener(this);

//添加右键弹出式菜单

(je_copy);

(je_paste);

(je_cut);

(je_clear);

arator();

(je_selectAll);

(je_find);

(je_replace);

//编辑区鼠标事件,点击右键弹出"编辑"菜单

seListener(new

MouseAdapter()

{

public void

mouseReleased(MouseEvent e) {

if(ton() ==

3)

(ponent(),

(), ());

} //ponent()和textArea具有同等效果

public void

mouseClicked(MouseEvent e){

if(ton() ==

1)

ible(false);

}

});

nuBar(jmb);

le("记事本程序");

(f_new); //添加文件菜单组件

(f_open);

arator(); //加分隔线

(f_save);

(f_saveas);

arator();

(f_close);

(e_copy); //添加编辑菜单组件

(e_paste);

(e_cut);

(e_clear);

arator();

(e_selectAll);

(e_find);

(e_replace);

arator();

(s_font);

(s_color);

(file); //添加格式菜单组件

(edit);

(style);

(help);

(h_editor); //添加帮助菜单组件

(h_help);

24

第 页

//pStyleWord(true);

//设置在单词过长的时候是否要把长单词移到下一行。

eWrap(true);

//设置在行过长的时候是否要自动换行。

(jsp);

//滚动条栏

nds(500,350,800,600);

ible(true);

//为窗口添加"关闭"事件的响应

dowListener(new

WindowAdapter()

{

public void

windowClosing(WindowEvent e)

{

whenExit();

}

});

}

public boolean isCurrentFileSaved()

//判断文件是否被保存

{

if(t().equals("已保存")||t().equals("新文档"))

{

return true;

}

else{

return false;

}

}

public void openFileDialog() //打开文件

{

int m = enDialog(this);

if(m ==

E_OPTION)

{

File f = ectedFile();

for(int i = 0;i <= ();i++)

{

char [] ch = new char[i];

try{

FileReader fr = new

FileReader(f);

(ch);

String str = new

String(ch);

t(str);

tempFile = f;

}

catch(IOException e)

{

tackTrace();

}

}

}

else

return;

}

public void saveFileDialog()

//保存文件对话框

{

int options =

veDialog(this);

String fname = null;

if(options ==

E_OPTION)

{

File f = ectedFile();

//如果没有选取文件,下面的e(f)将会返回输入的文件名

fname = e(f);

if(fname != null &&

().length() > 0)

{

if(th(".txt"));

else

{

fname =

25

第 页

(".txt");

}

}

if(())

fname = e();

f = rentDirectory();

f = new

File(h().concat(tor).concat(fname));

try{

NewFile();

String str = t();

FileWriter fw = new

FileWriter(f);

(str);

();

//isCurrentFileExists = true;

tempFile = f;

}

catch(Exception e)

{

tackTrace();

}

}

}

public void cut() { //剪切

();

ible(false);

}

public void copy() { //复制

();

ible(false);

}

public void paste() { //粘贴

();

ible(false);

}

public void clear(){ //清除

eRange("",ectionStart(),ectionEnd());

ible(false);

}

public void selectAll(){ //全选

All();

ible(false);

}

public void whenExit() //当退出程序时判断文档状态

{

dispose();

(0);

}

//响应菜单项"新建"的事件

public void

actionPerformed(ActionEvent e)

{

if(rce() == f_new)

{

saveFileDialog();

return;

}

//响应菜单项"打开"的事件

if(rce() == f_open)

{

openFileDialog();

}

//响应菜单项"保存"和"按钮"保存"的事件

if((rce() ==

b_save)||(rce() == f_save))

{

try{

String str =

t();

FileWriter fw = new

FileWriter(tempFile);

(str);

();

//isCurrentFileExists =

true;

tempFile = tempFile;

}

catch(Exception ex)

26

第 页

{

tackTrace();

}

}

//响应菜单"另存为"的事件

if(rce() == f_saveas)

{

int option =

alog(this,"另存为");

String fname = null;

if(option ==

E_OPTION)

{

File f =

ectedFile();//如果没有选取文件,下面的e(f)将会返回输入的文件名

fname = e(f);

if(fname != null &&

().length() > 0)

{

if(th(".txt"))

;

else

{

fname =

(".txt");

}

}

if(())

fname = e();

f =

rentDirectory();

f = new

File(h().concat(tor).concat(fname));

try{

NewFile();

String str =

t();

FileWriter fw = new

FileWriter(f);

(str);

();

}

catch(Exception ex)

{

tackTrace();

}

}

}

//响应"退出"菜单和"退出"按钮的事件

if((rce() ==

f_close)||(rce() == b_close))

{

whenExit();

}

if(rce() ==

e_copy||rce() == je_copy)

{

copy();

}

if(rce() ==

e_paste||rce() == je_paste)

{

paste();

}

if(rce() ==

e_cut||rce() == je_cut)

{

cut();

}

if(rce() ==

e_clear||rce() == je_clear)

{

clear();

}

if(rce() ==

e_selectAll||rce() == je_selectAll)

{

selectAll();

}

//创建颜色选择对话框

if(rce() == s_color)

{

27

第 页

Color c =

alog(this,"请选择文字颜色",);

if(c != null)

{

eground(c);

}

else

eground(eground());

}

if(rce() == h_editor)

{

ssageDialog(this,"作者: zhuhaohui n版本: Windows10n微软软件许可条款rn" +

"WINDOWS 操作系统rn ·Microsoft 隐私声明

(/privacy)rn" +

"· 微软服务协议

(/msa)rn" +

"· Adobe Flash

Player 许可条款 (/adobeflash)rn" +

"" +

"","关于记事本",ATION_MESSAGE);

}

}

public static void main(String[] args)

//创建一个NotePad的匿名对象

{

new Notebook();

}

@Override

public void itemStateChanged(ItemEvent

arg0) {

// TODO Auto-generated method

stub

}

}

28

第 页