课程实训报告书
剪切 查找 编辑 复制 工具 替换 粘贴
3 主要代码清单
3.1生成菜单栏及菜单项
public void addmyMenu() // 菜单函数,生成菜单 {
JMenuBar menubar = new JMenuBar();// 菜单栏添加若干菜单 this.setJMenuBar(menubar);
String menustr[] = { \文件\, \编辑\, \工具\, \帮助\ };//菜单栏字符串数组
JMenu menu[] = new JMenu[menustr.length];
for (int i = 0; i < menu.length; i++) {//为菜单栏赋值
4
课程实训报告书
menu[i] = new JMenu(menustr[i]); menubar.add(menu[i]); }
String menuitemstr0[] = { \新建\, \打开\, \保存\, \另存为\, \退出\ };// 文件菜单中添加若干菜单项
JMenuItem menuitem0[] = new JMenuItem[menuitemstr0.length]; for (int i = 0; i < menuitem0.length; i++) {//为文件菜单赋值 menuitem0[i] = new JMenuItem(menuitemstr0[i]); menu[0].add(menuitem0[i]);
menuitem0[i].addActionListener(this);// 为每个菜单项注册监听事件 }
String menuitemstr1[] = { \剪切\, \复制\, \粘贴\ };// 编辑菜单中添加若干菜单项
JMenuItem menuitem1[] = new JMenuItem[menuitemstr1.length]; for (int i = 0; i < menuitem1.length; i++) {
menuitem1[i] = new JMenuItem(menuitemstr1[i]); menu[1].add(menuitem1[i]);
menuitem1[i].addActionListener(this);// 为每个菜单项注册监听事件 }
String menuitemstr2[] = { \查找\, \替换\ };// 工具菜单中添加若干菜单项
JMenuItem menuitem2[] = new JMenuItem[menuitemstr2.length]; for (int i = 0; i < menuitem2.length; i++) {
menuitem2[i] = new JMenuItem(menuitemstr2[i]); menu[2].add(menuitem2[i]);
menuitem2[i].addActionListener(this);// 为每个菜单项注册监听事件 }
JMenuItem menuitemstr3 = new JMenuItem(\帮助\);// 帮助菜单中添加帮助菜单项
menu[3].add(menuitemstr3);
menuitemstr3.addActionListener(this);// 注册监听事件
}
3.2监听事件处理
注册监听事件,当进行操作时,监听事件活得事件源并选择相应的操作,对不同的事件调用不同的函数,得到文本操作的不同结果。
class MyItemListener_font implements ItemListener { //字体监听器 public void itemStateChanged(ItemEvent e) {
id_font = ((java.awt.List)e.getSource()).getSelectedIndex(); switch( id_font){ case 0:{
ta.setFont(new Font(\
5
课程实训报告书
Roman\,Font.PLAIN ,ta.getFont().getSize()) );//普通文字 break;} case 1:{
ta.setFont(new Font(\ , Font.BOLD ,ta.getFont().getSize()) );//粗体文字 break; }
case 2:{
ta.setFont(new Font(\ , Font.ITALIC ,ta.getFont().getSize()) );//斜体文字 break; }}}}
4 程序运行与测试
4.1文本区功能测试
a) 字体的显示,开始的时候不做任何操作的时候显示的默认值,通过修改字体
的属性来修改字体。
b) 对文本事件进行监听,如果文本编辑窗口中如果有事件触发,关闭时能够有
必要的信息提示。
c) 状态栏的可以正常显示文本的状态信息。
4.2文件菜单功能测试
文件中的功能测试:
a) 通过文件字符流读取文件,创建缓冲区存储文件流。
b) 当保存文件时,先判断文件是否未被保存过,如果未被保存过,则创建
新文件并通过输出流来存储文件,当文件已经保存过再对文件进行修改时,则会提示保存的消息窗体。
c) 另存为是通过不同的方法来创建一个新的文件。
6
课程实训报告书
附:
打开与保存代码:
miSave.addActionListener( new ActionListener(){ public void actionPerformed(ActionEvent e) {
if( fileName.equals(\) ){ //如果文件没有被保存过,即文件名为空
FileDialog d=new FileDialog(mainFrame , \ , FileDialog.SAVE );//保存文件对话框
d.addWindowListener( new WindowAdapter(){ //关闭文件对话框窗口 public void windowClosing(WindowEvent ee){ System.exit(0); } });
d.setVisible(true);
String s = ta.getText();//得到所输入的文本内容
try//异常处理 {
File f = new File( d.getDirectory()+d.getFile());//新建文件
fileName = d.getDirectory()+d.getFile();//得到文件名
BufferedWriter bw = new BufferedWriter( new FileWriter (f));//输入到文件中
bw.write(s , 0 , s.length()); bw.close(); }
catch(FileNotFoundException fe_){
System.out.println(\); System.exit(0); }
catch( IOException ie_) {
System.out.println(\); System.exit(0); }
7
课程实训报告书
}
else //如果文件已经保存过 {
String s = ta.getText();//得到所输入的文本内容
try//异常处理 {
File f = new File( fileName );//新建文件
BufferedWriter bw = new BufferedWriter( new FileWriter (f));//输入到文件中
bw.write(s , 0 , s.length()); bw.close(); }
catch(FileNotFoundException fe_){
System.out.println(\); System.exit(0); }
catch( IOException ie_) {
System.out.println(\); System.exit(0); }
} }); //另存为
miSaveAs.addActionListener( new ActionListener(){ public void actionPerformed(ActionEvent e) {
FileDialog d=new FileDialog(mainFrame , \ , FileDialog.SAVE );//保存文件对话框
d.addWindowListener( new WindowAdapter(){ //关闭文件对话框窗口 public void windowClosing(WindowEvent ee){ System.exit(0); } });
d.setVisible(true);
String s = ta.getText();//得到所输入的文本内容
try//异常处理 {
8