仿windows JAVA 课程设计 记事本
(完整word版)简单Java仿windows记事本

主程序:import java.awt。
*;import java.awt.datatransfer.*;import java。
awt。
event.*;import javax。
print。
*;import javax.print。
attribute。
DocAttributeSet;import javax.print.attribute.HashDocAttributeSet;import javax.print.attribute.HashPrintRequestAttributeSet;import javax.print.attribute.PrintRequestAttributeSet;import javax。
print.attribute.standard.MediaSizeName; import javax.swing。
*;import javax.swing.border。
BevelBorder;import javax。
swing。
event。
UndoableEditEvent;import javax。
swing。
event。
UndoableEditListener;import javax。
swing.filechooser.*;import javax.swing.filechooser。
FileFilter;import javax。
swing。
plaf.FileChooserUI;import javax。
swing.undo.UndoableEdit;import java.io.*;public class Notepad extends JFrame {/***@param args*/public JTextArea jta=null;//中间的文本区域private File selectedFile=null;private JFileChooser chooser=null;//文件选择器private UndoableEdit edit; //设置还原功能private boolean canUndo=false;private JMenuItem jmiUndoItem;//撤销的菜单private Clipboard clip=null;//粘贴板private JDialog jdSearchDialog;public Notepad(){super(”Notepad Beta”);super。
java课程设计报告记事本

java课程设计报告记事本一、教学目标本课程旨在通过学习Java编程语言,使学生掌握Java编程的基本语法、面向对象编程思想,以及常用数据结构和算法。
通过本课程的学习,使学生能够独立完成简单的Java程序,培养学生的编程能力和逻辑思维能力。
同时,通过实践操作,使学生掌握Java开发工具的使用,提高学生的动手能力。
在学习过程中,培养学生积极思考、合作探讨的学习态度,提高学生的自主学习能力。
二、教学内容本课程的教学内容主要包括Java基本语法、数据类型、运算符、控制结构、数组、字符串、面向对象编程、异常处理、文件操作、集合框架、多线程编程等。
具体到教材,我们将按照教材的章节顺序进行教学,每个章节都会讲解相应的知识点,并通过实例进行讲解和演示。
在讲解过程中,我们会结合实际的编程案例,使学生能够更好地理解和掌握Java编程的知识。
三、教学方法为了提高教学效果,我们将采用多种教学方法进行教学。
首先,通过讲授法,向学生传授Java编程的基本知识和技巧。
其次,通过讨论法,引导学生进行思考和讨论,培养学生的逻辑思维能力。
再次,通过案例分析法,让学生通过分析实际案例,掌握Java编程的实际应用。
此外,我们还会安排实验课,让学生亲自动手编写代码,提高学生的动手能力。
通过多种教学方法的运用,激发学生的学习兴趣,提高学生的学习主动性。
四、教学资源为了保证教学质量,我们将准备丰富的教学资源。
教材和参考书将作为主要的学习材料,我们将选择内容丰富、讲解详细的教材和参考书。
此外,我们还会收集和整理多媒体教学资料,如教学视频、PPT课件等,以丰富教学手段,提高学生的学习兴趣。
在实验课上,我们将使用实验室的计算机进行教学,并配备相应的实验设备,以保证学生能够顺利进行实验操作。
五、教学评估为了全面、客观地评估学生的学习成果,我们将采取多种评估方式。
首先,通过平时表现评估,观察学生在课堂上的参与程度、提问回答等情况,了解学生的学习态度和理解能力。
Java课程设计报告记事本程序

目录摘要................................................................................................................... 错误!未定义书签。
1设计分析......................................................................................................... 错误!未定义书签。
2.概要设计....................................................................................................... 错误!未定义书签。
2.1程序设计思路..................................................................................... 错误!未定义书签。
2.2程序模块说明图................................................................................. 错误!未定义书签。
2.3程序流程图......................................................................................... 错误!未定义书签。
2.4程序相关说明..................................................................................... 错误!未定义书签。
3.程序详细设计与分析................................................................................... 错误!未定义书签。
记事本java课程设计

记事本java课程设计一、课程目标知识目标:1. 掌握Java编程语言基础,包括数据类型、运算符、控制流程等;2. 学会使用记事本作为Java程序开发工具,并了解其基本操作;3. 理解面向对象编程思想,掌握类的定义、方法和属性的使用;4. 能够运用所学知识设计简单的记事本应用程序。
技能目标:1. 培养学生运用Java语言编写程序的能力;2. 培养学生运用记事本进行程序代码编写、保存和运行的操作能力;3. 培养学生分析问题、设计解决方案并实现的能力;4. 提高学生的团队协作和沟通能力,通过小组讨论和分享,优化程序设计。
情感态度价值观目标:1. 培养学生对编程的兴趣和热情,激发学习动力;2. 培养学生的耐心和毅力,面对编程中的困难和挑战,保持积极态度;3. 培养学生的创新意识,鼓励尝试不同的编程思路和方法;4. 培养学生的分享精神,乐于与同伴交流学习心得和经验。
课程性质:本课程为实践性较强的学科,注重培养学生的编程实践能力和实际应用能力。
学生特点:学生处于初中年级,具有一定的逻辑思维能力和计算机操作基础,对新鲜事物充满好奇。
教学要求:教师应关注学生的个体差异,因材施教,注重理论与实践相结合,提高学生的编程兴趣和实际操作能力。
在教学过程中,将课程目标分解为具体的学习成果,以便于教学设计和评估。
二、教学内容1. Java基础知识回顾:- 数据类型与变量- 运算符与表达式- 控制流程(分支、循环)2. 记事本应用程序设计:- 记事本的基本功能需求分析- 类的定义与使用- 方法和属性的编写与调用- 面向对象编程思想的应用3. 教学大纲:- 第一章:Java基础回顾(2课时)- 1.1 数据类型与变量- 1.2 运算符与表达式- 1.3 控制流程(分支、循环)- 第二章:记事本应用程序设计(3课时)- 2.1 记事本功能需求分析- 2.2 类的定义与使用- 2.3 方法和属性的编写与调用- 2.4 面向对象编程思想的应用4. 教学进度安排:- Java基础回顾:2周- 记事本应用程序设计:3周- 课程总结与项目展示:1周5. 教材章节关联:- 《Java编程基础》第1章至第3章- 《Java面向对象编程》第1章至第3章教学内容的选择和组织确保了科学性和系统性,以教材为依据,结合课程目标,旨在帮助学生掌握Java编程基础,并能运用所学知识设计出实用的记事本应用程序。
java课程设计记事本设计报告

java课程设计记事本设计报告一、教学目标本课程旨在通过Java编程语言实现一个记事本应用程序,让学生掌握Java编程的基本概念和方法,培养学生的编程能力和解决问题的能力。
1.理解Java编程语言的基本语法和结构。
2.掌握Java编程中的数据类型、变量、运算符、控制语句等基本概念。
3.学习Java中的类和对象的概念,理解封装、继承和多态的原理。
4.熟悉Java中的常用类库和方法。
5.能够运用Java编程语言编写简单的程序。
6.能够使用Java编程语言实现一个记事本应用程序,包括文本的增删改查等功能。
7.能够分析并解决编程过程中遇到的问题。
情感态度价值观目标:1.培养学生的团队合作意识和沟通能力,通过小组合作完成项目。
2.培养学生的创新思维和解决问题的能力,鼓励学生进行自主学习和探索。
3.培养学生的学习兴趣和自信心,让学生感受到编程的乐趣和成就感。
二、教学内容本课程的教学内容主要包括Java编程语言的基本概念和方法,以及记事本应用程序的设计和实现。
1.Java编程语言的基本概念和方法:–数据类型、变量、运算符、控制语句等基本概念。
–类和对象的概念,封装、继承和多态的原理。
–常用类库和方法的使用。
2.记事本应用程序的设计和实现:–用户界面设计:创建文本框、按钮等控件,实现用户输入和显示功能。
–文件操作:实现文件的打开、保存、关闭等功能,使用文件读写技术。
–文本处理:实现文本的增删改查等功能,使用数据结构和算法进行文本管理。
三、教学方法本课程将采用多种教学方法,包括讲授法、讨论法、案例分析法和实验法等,以激发学生的学习兴趣和主动性。
1.讲授法:教师通过讲解Java编程语言的基本概念和方法,以及记事本应用程序的设计和实现,引导学生掌握相关知识。
2.讨论法:学生分组进行讨论,分享自己的理解和思路,互相学习和交流。
3.案例分析法:分析实际案例,让学生了解记事本应用程序的实际应用场景和设计思路。
4.实验法:学生通过编写代码和进行实验,实现记事本应用程序的功能,培养学生的实际编程能力和解决问题的能力。
《Java》课程设计》记事本

《Java课程设计》记事本课程设计报告书目录一、设计课题二、设计目的三、操作环境四、设计场所(机房号、机器号或自己机器)五、设计过程(设计内容及主要程序模块)六、本次设计中用到的课程知识点(列出主要知识点)七、设计过程中遇到的问题及解决办法八、程序清单五、设计过程(设计内容及主要模块,不少于3000字)1.设计要求1)界面设计2)功能实现(1)文件菜单:新建、打开、保存、另存为、退出等。
(2)其中新建菜单项可以新建一个记事本程序;打开菜单项可以打开一个用户指定的文本文件,并将其内容显示在记事本的文本区域;保存和另存为菜单项可分别实现文件的保存和另存为3)编辑菜单:复制、剪切和粘贴等4)帮助菜单:软件版本信5)右键弹出快捷菜单2.总体设计1)功能模块图:图一功能模块图2)功能描述1、打开记事本。
首先是标准型的记事本,拥有文件、编辑。
格式和帮助。
如图1所示:图1标准型记事本界面2、在标准型的记事本界面中,进行的新建一个本件名字叫新记事本。
如图2记事本文件帮助新建打开保存另存为退出复制剪切粘贴编辑关于记事本右键快捷格式字体颜色图2新建记事本功能3、用打开文件打开刚刚新建的新记事本。
如图三所示。
图3—打开文件4、点击退出即可退出,如图4所示:图4—退出记事本5、点击帮助可以看到有关记事本的相关信息,其中有作者名、版本、许可条款、隐私声明等必要信息。
如图5所示:图5—帮助相关信息6、右键可实现复制、粘贴、剪切、清除等常用功能,方便用户可以快捷方便的使用记事本。
如图6所示:图6—右键功能7、编辑也可实现制、粘贴、剪切、清除等常用功能,方便用户选择自己适合的方式,自由选择方便的快捷方式使用。
如图7:图7—编辑八、程序清单package test;import java.io.File;import java.io.*;import java.awt.event.*;import java.awt.Toolkit;import java.awt.*;import javax.swing.*;import javax.swing.filechooser.*;public class Notebook extends JFrame implements ActionListener,ItemListener{ //组件创建JButton b_save,b_close; //按钮JTextArea textArea; //文本框File tempFile; //文件JPanel jp; //面板JMenu file,edit,style,help; //菜单JMenuItemf_new,f_open,f_save,f_close,f_saveas,e_copy, e_paste,e_cut,e_clear,e_selectAll,e_find,e_rep lace,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(); //文件选择JMenuItemje_copy,je_paste,je_cut,je_clear,je_selectAll,je _find,je_replace; //弹出式菜单条public Notebook(){jfc.addChoosableFileFilter(new FileNameExtensionFilter("文本文件(*.txt)","txt"));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_copy.addActionListener(this); //给弹窗式的各组件添加监听器je_paste.addActionListener(this);je_cut.addActionListener(this);je_clear.addActionListener(this);je_selectAll.addActionListener(this);je_find.addActionListener(this);je_replace.addActionListener(this);//给界面上方的菜单条添加监听器f_new = new JMenuItem("新建(N)");f_new.setAccelerator(KeyStroke.getKeyS troke('N',InputEvent.CTRL_MASK,false)); //设置带修饰符快捷键f_new.addActionListener(this);f_open = new JMenuItem("打开(O)");f_open.setAccelerator(KeyStroke.getKey Stroke('O',InputEvent.CTRL_MASK,false));f_open.addActionListener(this);f_save = new JMenuItem("保存(S)");f_save.setAccelerator(KeyStroke.getKey Stroke('S',InputEvent.CTRL_MASK,false));f_save.addActionListener(this);f_saveas = new JMenuItem("另存为");f_saveas.setAccelerator(KeyStroke.getKe yStroke(KeyEvent.VK_S,InputEvent.CTRL_ MASK|InputEvent.SHIFT_MASK));f_saveas.addActionListener(this);f_close = new JMenuItem("退出(W)");f_close.setAccelerator(KeyStroke.getKey Stroke('W',InputEvent.CTRL_MASK,false));f_close.addActionListener(this);e_copy = new JMenuItem("复制(C)");e_copy.setAccelerator(KeyStroke.getKey Stroke('C',InputEvent.CTRL_MASK,false));e_copy.addActionListener(this);e_paste = new JMenuItem("粘贴(V)");e_paste.setAccelerator(KeyStroke.getKeyStro ke('V',InputEvent.CTRL_MASK,false));e_paste.addActionListener(this);e_cut = new JMenuItem("剪切(X)"); e_cut.setAccelerator(KeyStroke.getKeyStroke ('X',InputEvent.CTRL_MASK,false));e_cut.addActionListener(this);e_clear = new JMenuItem("清除(D)");e_clear.setAccelerator(KeyStroke.getKeyStrok e('D',InputEvent.CTRL_MASK,false));e_clear.addActionListener(this);e_selectAll = new JMenuItem("全选(A)");e_selectAll.setAccelerator(KeyStroke.getKey Stroke('A',InputEvent.CTRL_MASK,false));e_selectAll.addActionListener(this);e_find = new JMenuItem("查找(F)");e_find.setAccelerator(KeyStroke.getKeyStrok e('F',InputEvent.CTRL_MASK,false));e_copy.addActionListener(this);e_replace = new JMenuItem("替换(R)");e_replace.setAccelerator(KeyStroke.getK eyStroke('R',InputEvent.CTRL_MASK,false)) ;e_replace.addActionListener(this);s_font = new JMenuItem("字体(T)");s_font.setAccelerator(KeyStroke.getKeyStrok e('T',InputEvent.CTRL_MASK,false));s_font.addActionListener(this);s_color = new JMenuItem("颜色(C)...");s_color.setAccelerator(KeyStroke.getKeyStro ke(KeyEvent.VK_C,InputEvent.CTRL_MAS K | InputEvent.SHIFT_MASK));s_color.addActionListener(this);h_editor = new JMenuItem("关于记事本");h_editor.setAccelerator(KeyStroke.getKeyStro ke(KeyEvent.VK_E,InputEvent.CTRL_MAS K));h_editor.addActionListener(this);h_help = new JMenuItem("帮助信息(H)");h_help.setAccelerator(KeyStroke.getKeyStrok e(KeyEvent.VK_I,InputEvent.CTRL_MASK) );h_help.addActionListener(this);//添加右键弹出式菜单popUpMenu.add(je_copy);popUpMenu.add(je_paste);popUpMenu.add(je_cut);popUpMenu.add(je_clear);popUpMenu.addSeparator();popUpMenu.add(je_selectAll);popUpMenu.add(je_find);popUpMenu.add(je_replace);//编辑区鼠标事件,点击右键弹出"编辑"菜单textArea.addMouseListener(new MouseAdapter(){public void mouseReleased(MouseEvent e) {if(e.getButton() == MouseEvent.BUTTON3)popUpMenu.show(e.getComponent(), e.getX(), e.getY());} //e.getComponent()和textArea具有同等效果public void mouseClicked(MouseEvent e){if(e.getButton() == MouseEvent.BUTTON1)popUpMenu.setVisible(false);}});this.setJMenuBar(jmb);this.setTitle("记事本程序");file.add(f_new); //添加文件菜单组件file.add(f_open);file.addSeparator(); //加分隔线file.add(f_save);file.add(f_saveas);file.addSeparator();file.add(f_close);edit.add(e_copy); //添加编辑菜单组件edit.add(e_paste);edit.add(e_cut);edit.add(e_clear);edit.addSeparator();edit.add(e_selectAll);edit.add(e_find);edit.add(e_replace);style.addSeparator();style.add(s_font);style.add(s_color);jmb.add(file); //添加格式菜单组件jmb.add(edit);jmb.add(style);jmb.add(help);help.add(h_editor); //添加帮助菜单组件help.add(h_help);//textArea.setWrapStyleWord(true); //设置在单词过长的时候是否要把长单词移到下一行。
java简单记事本课程设计

java简单记事本课程设计一、课程目标知识目标:1. 掌握Java基本语法和编程结构;2. 理解事件处理机制,掌握简单的用户界面设计;3. 学会使用文件I/O操作,实现记事本的保存和打开功能。
技能目标:1. 能够运用所学知识独立设计并实现一个简单的记事本程序;2. 培养解决问题的能力,学会分析需求并运用Java语言编写相应的代码;3. 提高调试程序的能力,能够找出并修正程序中的错误。
情感态度价值观目标:1. 培养学生对编程的兴趣和热情,激发探究精神;2. 培养学生良好的编程习惯,注重代码规范和注释;3. 增强学生的团队协作意识,学会与他人共同解决问题。
课程性质:本课程为实践性较强的课程,旨在让学生通过动手实践,掌握Java 编程的基本技能。
学生特点:学生已具备一定的Java基础,具有一定的编程能力和问题解决能力。
教学要求:教师需引导学生主动参与,注重理论与实践相结合,鼓励学生创新和团队协作。
在教学过程中,将目标分解为具体的学习成果,以便进行教学设计和评估。
二、教学内容1. Java基本语法回顾:变量、数据类型、运算符、控制语句(条件语句、循环语句);2. Java面向对象基础:类与对象、构造方法、封装、继承和多态;3. GUI编程基础:Swing组件、事件处理机制、布局管理器;4. 文件I/O操作:File类、文件读写、异常处理;5. 简单记事本程序设计:需求分析、界面设计、功能实现(打开、保存、新建、撤销、重做)。
教学内容安排与进度:第一课时:回顾Java基本语法,明确课程目标;第二课时:介绍Java面向对象基础,讲解类与对象、构造方法;第三课时:学习GUI编程基础,了解Swing组件和事件处理机制;第四课时:学习文件I/O操作,掌握文件读写和异常处理;第五课时:进行简单记事本程序设计的需求分析和界面设计;第六课时:实现记事本程序的功能,并进行调试优化。
教材章节关联:1. Java基本语法回顾:教材第1-3章;2. Java面向对象基础:教材第4-6章;3. GUI编程基础:教材第7章;4. 文件I/O操作:教材第8章;5. 简单记事本程序设计:结合教材实例,进行综合应用。
课程设计java记事本

课程设计 java记事本一、课程目标知识目标:1. 理解Java基本语法结构,掌握面向对象编程的基本概念;2. 学会使用Java编写简单的记事本程序,理解程序的基本结构;3. 了解Java事件处理机制,掌握基本的用户界面设计方法。
技能目标:1. 能够运用所学知识,独立编写、调试和运行Java记事本程序;2. 培养良好的编程习惯,编写结构清晰、易于维护的代码;3. 学会使用集成开发环境(IDE)进行Java程序开发,提高编程效率。
情感态度价值观目标:1. 培养学生对编程的兴趣,激发学习积极性,增强自信心;2. 培养学生的团队协作能力,学会与他人分享和交流编程经验;3. 引导学生认识到编程在生活中的实际应用,培养创新意识和实践能力。
课程性质:本课程为实践性较强的Java编程课程,通过编写记事本程序,让学生掌握Java编程的基本知识和技能。
学生特点:学生处于初中或高中年级,具备一定的计算机操作能力和逻辑思维能力。
教学要求:结合学生特点,注重实践操作,激发学生的学习兴趣,培养编程技能,同时关注情感态度价值观的培养。
在教学过程中,将课程目标分解为具体的学习成果,便于教学设计和评估。
二、教学内容1. Java基本语法:变量、数据类型、运算符、控制语句(条件语句、循环语句);2. 面向对象编程:类与对象、构造方法、封装、继承、多态;3. Java事件处理机制:事件监听器、事件适配器、事件处理方法;4. 用户界面设计:窗口、标签、文本框、按钮等组件的使用;5. Java文件操作:文件的读取与写入、文件的保存与打开;6. 集成开发环境(IDE)的使用:Eclipse或IntelliJ IDEA的基本操作与调试技巧。
教学大纲:第一周:Java基本语法及控制语句学习;第二周:面向对象编程基本概念及实现;第三周:Java事件处理机制及用户界面设计;第四周:Java文件操作及记事本程序编写;第五周:实践与调试,完善记事本程序。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
前言随时着科学技术的快速发展,计算机程序设计早已成为了趋势,JAVA是计算机专业的核心课程,是计算机科学的算法理论基础和软件设计的技术基础。
JAVA是实践性很强的课程。
课程设计是加强实践能力的一个强有力手段。
要求掌握JAVA的应用、编写、上机调试的基本方法。
本课程设计就是主要利用java语言编写的一个模仿windows 记事本的较简单的程序,实现了一些基本功能,要求打开文件,读取文件中的文本信息;显示、编辑修改文本信息;实现输入文本文件、控制保存文本信息到指定的文件的功能。
目录一、需求分析 (1)二、概要设计 (1)三、详细设计 (2)四、系统调试分析 (6)五、课程设计心得体会 (7)六、使用说明 (7)七、参考文献及致 (7)八、附录(程序源代码) (7)一、需求分析该课程设计报告里的简易记事本程序是使用Java程序设计语言编写的,要现记事本的基本功能,参考了windows中记事本的一些功能。
要求打开文件,读取文件中的文本信息;显示、编辑修改文本信息;实现新建、打开、保存文本文件以及控制保存文本信息到指定的文件的一些基本功能。
二、概要设计1.1 系统主要功能本程序是利用java程序设计语言编写的一个简单的记事本程序。
可以通过菜单栏和工具栏实现以下功能:如文件的新建,打开,保存和退出;对文件的编辑,如复制,剪切,粘贴;以及帮助菜单;执行完操作后,能够顺利关闭记事本。
1.2运行环境要求(1) 实现设计的系统硬件需求硬件配置的基本要求:* 586以上的计算机* 32MB以上的存* 彩色显示器* 3.5寸高密软盘驱动器* 光盘驱动器* 4G以上硬盘空间* 鼠标(2) 实现设计的系统软件* WINDOWS95或WINDOWS98* Jcreator Pro全套软件三、详细设计设计思路:设计一个EditorDemo类,继承自JFrame类,并在EditorDemo类利用JtextPane 创建面板窗口textPane,利用Jlabel创建状态栏 statusBar,利用JFileChooser 创建文件选择器filechooser,利用JMenuBar创建并实例化菜单栏,利用JToolBar创建工具栏,再通过一些具体方法实现各功能键的功能。
建立构造函数public EditorDemo();通过该构造函数实现记事本程序的主要功能,运行时在主类过调用该构造函数来实现对记事本程序的基本操作。
1:窗口设计在主接口中设计一个EditorDemo容器继承自JFrame,并在其中加入菜单栏、工具栏和一个文本域控件。
public class EditorDemo extends JFrameJTextPane textPane = new JTextPane(); //创建文本窗格,编辑窗口JFileChooser filechooser = new JFileChooser(); //文件选择器setJMenuBar(createJMenuBar(actions)); //设置菜单栏Container container = getContentPane(); //得到容器container.add(createJToolBar(actions), BorderLayout.NORTH); //工具栏container.add(textPane, BorderLayout.CENTER); //增加文本窗格2:功能设计(1)在下拉菜单中加入子菜单并进行监听,分别实现对文件的操作功能。
点击不同菜单项时,显示不同接口。
private JMenuBar createJMenuBar(Action[] actions) //创建菜单栏JMenuBar menubar = new JMenuBar(); //实例化菜单栏JMenu menuFile = new JMenu("文件(F)"); //实例化菜单JMenu menuEdit = new JMenu("编辑(E)");JMenu menuFormat = new JMenu("格式(O)");JMenu menuFind = new JMenu("查找(V)");JMenu menuAbout = new JMenu("帮助(H)");menuFile.add(new JMenuItem(actions[0])); //增加新菜单项menuFile.add(new JMenuItem(actions[1]));menuFile.add(new JMenuItem(actions[2]));menuFile.addSeparator();menuFile.add(new JMenuItem(actions[7]));menuEdit.add(new JMenuItem(actions[3]));menuEdit.add(new JMenuItem(actions[4]));menuEdit.add(new JMenuItem(actions[5]));menuAbout.add(new JMenuItem(actions[6]));menubar.add(menuFile); //增加菜单menubar.add(menuEdit);menubar.add(menuFormat);menubar.add(menuFind);menubar.add(menuAbout);return menubar; //返回菜单栏如下图:(2)加入工具栏的功能键,通过工具栏实现对文本的基本操作。
Action[] actions = //Action数组,各种操作命令new NewAction(),new OpenAction(),new SaveAction(),new CutAction(),new CopyAction(),new PasteAction(),new AboutAction(),new ExitAction(),private JToolBar createJToolBar(Action[] actions) //创建工具条JToolBar toolBar = new JToolBar(); //实例化工具条JButton bt = new JButton(actions[i]); //实例化新的按钮toolBar.add(bt); //增加按钮到工具栏如图所示:(3)对每个菜单项进行注册监听。
点击不同功能键时,实现不同的操作,显示不同的窗口。
主要实现方法代码如下:class NewAction extends AbstractAction { //实现新建文件命令功能public NewAction() {super("新建文本");}public void actionPerformed(ActionEvent e) {textPane.setDocument(new DefaultStyledDocument()); //清空文档}}class OpenAction extends AbstractAction { //实现打开文件命令功能public OpenAction() {super("打开文本");}public void actionPerformed(ActionEvent e) {int i = filechooser.showOpenDialog(EditorDemo.this);//显示打开文件对话框if (i == JFileChooser.APPROVE_OPTION) { //点击对话框中打开选项File f = filechooser.getSelectedFile(); //得到选择的文件try {InputStream is = new FileInputStream(f); //得到文件输入流textPane.read(is, "d"); //读入文件到文本窗格} catch (Exception ex) {ex.printStackTrace(); //输出出错信息}}}}如下图:class SaveAction extends AbstractAction { //实现保存文本命令public SaveAction() {super("保存文本");}public void actionPerformed(ActionEvent e) {int i = filechooser.showSaveDialog(EditorDemo.this);//显示保存文件对话框if (i == JFileChooser.APPROVE_OPTION) { //点击对话框中保存按钮File f = filechooser.getSelectedFile(); //得到选择的文件try {FileOutputStream out = new FileOutputStream(f);//得到文件输出流out.write(textPane.getText().getBytes()); //写出文件} catch (Exception ex) {ex.printStackTrace(); //输出出错信息}}}}如下图:class ExitAction extends AbstractAction { //实现退出命令public ExitAction() {super("退出系统");}public void actionPerformed(ActionEvent e) {System.exit(0); //退出程序}}class CutAction extends AbstractAction { //实现剪切命令public CutAction() {super("剪切");}public void actionPerformed(ActionEvent e) {textPane.cut(); //调用文本窗格的剪切命令}} class CopyAction extends AbstractAction { //实现拷贝命令public CopyAction() {super("拷贝");}public void actionPerformed(ActionEvent e){textPane.copy(); //调用文本窗格的拷贝命令class PasteAction extends AbstractAction { //实现粘贴命令public PasteAction() {super("粘贴");}public void actionPerformed(ActionEvent e) {textPane.paste(); //调用文本窗格的粘贴命令}}class AboutAction extends AbstractAction { //关于版本命令public AboutAction() {super("版本");}public void actionPerformed(ActionEvent e) {String str="简易记事本\n\版本:1.0\n作者:郭孔明\n主要功能:实现简单文本编辑。