这些操作都是通过Java中的事件处理技术实现。当单击菜单中某菜单选项时,会产生一个Actio
Eve
t事件,然后Java虚拟机检查是否有与该菜单项相关联的事件处理器,事件处理器实质是一个方法,如actio
Performed()方法,如果没有,不做任何处理;若有则将事件对象传递给与之关联的事件处理器方法作为事件处理方法参数,并自动调用事件处理方法。Java虚拟机通过传递过来的Actio
Eve
t对象,获得事件发生时与该事件及事件源相关联的信息。Java组件通过形如addXxxListe
er()的方法添加事件监听器。
一个事件源可以添加多个监听器,而本记事本中的事件源是菜单中的各菜单项,在菜单项上发生鼠标单击事件,因此在每个菜单项上添加addActio
Liste
er()方法添加事件监听器,并实现事件处理actio
Performed()方法给出具体的功能实现。
为记事本中各菜单项添加事件监听器代码如下:
ewfileaddActio
Liste
er(this);
ope
addActio
Liste
er(this);
f龙源期刊网httpwwwqika
comc
saveaddActio
Liste
er(this);exitaddActio
Liste
er(this);saveasaddActio
Liste
er(this);fo
tColoraddActio
Liste
er(this);fo
taddActio
Liste
er(this);事件处理actio
Performed()方法代码如下:publicvoidactio
Performed(Actio
Eve
te)JMe
uItemitem(JMe
uItem)egetSource();获得事件源if(itemope
)ope
File();打开文件elseif(itemsave)saveFile();保存文件elseif(itemsaveas)saveasFile();另存为文件elseif(item
ewfile)
ewFile();新建文件elseif(itemexit)exitNotepad();退出记事本elseif(itemfo
tColor)setFo
tColor();字体颜色设置elseif(itemfo
t)
f龙源期刊网httpwwwqika
comc
setFo
t();字体设置
22打开文件实现记事本的打开功能,实质是把要打开的文件内容读入到内存再显示在记事本中。在Java中,是通过流来实现数据的输入输出。Java中的流有两种类型,分别是字节流和字符流,其中字符流只处理文本化的数据,而本记事本程序读写都是文本文件,因此本程序输入和输出操作都是针对字符数据流操作,而FileReader,FileWriter是用来读写字符流的主要类。因此本程序使用FileReader,FileWrite两个类提供的read(),write()方法实现文件打开和保存操作。打开文件代码如下:publicvoidope
File()areasetText(
ull);fileChooser
ewJFileChooser();创建一个不可见的文件选择对话框显示文件选择对话框并确定打开所选择文件if(fileChoosershowOpe
Dialog(this)JFileChooserAPPROVE_OPTION)filefileChoosergetSelectedFile();charco
te
t
ewcharr