课程实训报告书
剪切 帮助 编辑 复制 帮助 关于 粘贴
3 主要代码清单
3.1生成菜单栏及菜单项
在窗体初始化时,自动添加菜单及其菜单项,用于在文本编辑器中对文本去内容进行操作,使用for语句循环生成菜单栏和菜单项。
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++) {//为菜单栏赋值 }
String menuitemstr0[] = { \新建\, \打开\, \保存\, \另存为\, \退出\ };// 文JMenuItem menuitem0[] = new JMenuItem[menuitemstr0.length];
menu[i] = new JMenu(menustr[i]); menubar.add(menu[i]);
件菜单中添加若干菜单项
4
课程实训报告书
}
for (int i = 0; i < menuitem0.length; i++) {//为文件菜单赋值 }
String menuitemstr1[] = { \剪切\, \复制\, \粘贴\ };// 编辑菜单中添加若干菜JMenuItem menuitem1[] = new JMenuItem[menuitemstr1.length]; for (int i = 0; i < menuitem1.length; i++) { }
String menuitemstr2[] = { \查找\, \替换\ };// 工具菜单中添加若干菜单项 JMenuItem menuitem2[] = new JMenuItem[menuitemstr2.length]; for (int i = 0; i < menuitem2.length; i++) { }
JMenuItem menuitemstr3 = new JMenuItem(\帮助\);// 帮助菜单中添加帮助菜单项 menu[3].add(menuitemstr3);
menuitemstr3.addActionListener(this);// 注册监听事件
menuitem2[i] = new JMenuItem(menuitemstr2[i]); menu[2].add(menuitem2[i]);
menuitem2[i].addActionListener(this);// 为每个菜单项注册监听事件 menuitem1[i] = new JMenuItem(menuitemstr1[i]); menu[1].add(menuitem1[i]);
menuitem1[i].addActionListener(this);// 为每个菜单项注册监听事件 menuitem0[i] = new JMenuItem(menuitemstr0[i]); menu[0].add(menuitem0[i]);
menuitem0[i].addActionListener(this);// 为每个菜单项注册监听事件
单项
3.2监听事件处理
注册监听事件,当进行操作时,监听事件活得事件源并选择相应的操作,对不同的事件调用不同的函数,得到文本操作的不同结果。
public void actionPerformed(ActionEvent e) // 监听事件处理函数
{
if (e.getSource() instanceof JMenuItem) // 判断事件是否来自于菜单项 {
if (e.getActionCommand() == \新建\) { }
if (e.getActionCommand() == \打开\) { }
if (e.getActionCommand() == \保存\) { }
if (e.getActionCommand() == \另存为\) { }
5
saveother();// 执行另存为函数 save();// 执行保存函数 open();// 执行打开函数 FileName=\未命名1\;
text.replaceRange(\, 0, text.getText().length());
课程实训报告书
}
}
if (e.getActionCommand() == \退出\) }
if (e.getActionCommand() == \替换\) { }
if (e.getActionCommand() == \帮助\) {//帮助消息窗体 }
JOptionPane.showMessageDialog(this,
\该记事本程序属于个人所编写,由于时间仓促,难免有不足之处仅供初学JOptionPane.PLAIN_MESSAGE);
replace();// 执行替换函数 System.exit(0);// 系统退出 text.cut();// 剪切 text.copy();// 复制 text.paste();// 粘贴 find();// 执行查找函数
if (e.getActionCommand() == \剪切\) if (e.getActionCommand() == \复制\) if (e.getActionCommand() == \粘贴\) if (e.getActionCommand() == \查找\) {
者使用!\, \帮助\,
4 程序运行与测试
4.1文本区功能测试
a) 字体的显示,开始的时候不做任何操作的时候显示的默认值,通过修改字体
的属性来修改字体。
b) 对文本事件进行监听,如果文本编辑窗口中如果有事件触发,关闭时能够有
必要的信息提示。
c) 状态栏的可以正常显示文本的状态信息。
6
课程实训报告书
4.2文件菜单功能测试
文件中的功能测试:
a) 通过文件字符流读取文件,创建缓冲区存储文件流。
b) 当保存文件时,先判断文件是否未被保存过,如果未被保存过,则创建
新文件并通过输出流来存储文件,当文件已经保存过再对文件进行修改时,则会提示保存的消息窗体。
c) 另存为是通过不同的方法来创建一个新的文件。 附:
打开与保存代码:
public void open() // 打开函数
{
FileDialog open = new FileDialog(mainFrame, \打开\, FileDialog.LOAD); open.setVisible(true);
File file = new File(open.getDirectory() + open.getFile()); String path = file.getPath();//获得文件的路径
7
课程实训报告书
char Frist = path.charAt(0);//获取文件的第一个字符 if (Frist != 'n') {//判断是否为空 } }
FileName = open.getDirectory() + open.getFile();//获取文件名 char ch[] = null; try { {
JOptionPane.showMessageDialog(this, \文件没有打开!\);//显示消息提System.exit(0);
ch = new char[(int) file.length()];
BufferedReader br = new BufferedReader(new FileReader(file));//br.read(ch);//读文件 br.close();
文件度缓冲区
} catch (FileNotFoundException fe) //捕获异常
示窗口
} catch (IOException ie) //捕获异常 { }
this.setTitle(FileName);//将窗体标题赋值为文件名 String tempo = new String(ch);//将字符数组赋值给字符串 text.setText(tempo);//文本显示区显示
System.out.println(\); System.exit(0);
public void save() // 保存函数
} catch (FileNotFoundException fe_) {
System.out.println(\);
8
{
if (FileName.equals(\未命名1\))// 判断是否保存过 {
FileDialog save = new FileDialog(mainFrame, \保存\, FileDialog.SAVE); save.setVisible(true);
String temps = text.getText();// 获取文本去文字并复制给字符串temps try// 异常处理 {
File f = new File(save.getDirectory() + save.getFile());// 新建FileName = save.getDirectory() + save.getFile();// 得到文件名 BufferedWriter bw = new BufferedWriter(new FileWriter(f));// 输bw.write(temps, 0, temps.length());// 新文件写入 bw.close();
文件
入到文件中