java课程设计简单记事本开发内附完整代码流程图等
Java课程设计报告记事本源代码有流程图
Java课程设计报告记事本源代码有流程图Java课程设计报告题目:简单记事本程序的设计年级专业:计算机科学与技术学号:学生姓名:指导老师:完成时间:2010年 6月 8 日第 1 页共 11 页目录摘要 ..................................................................... . (1)前言 ..................................................................... . (2)1需求分析 ..................................................................... ............................................................ 2 1.1需求分析 ..................................................................... ......................................................... 2 1.2功能设计 .............................................................................................................................. 3 2.概要设计 ..................................................................... ............................................................ 3 2.1程序设计思路 ..................................................................... ................................................. 3 2.2程序运行界面 ..................................................................... ................................................. 3 2.3模块说明图 ..................................................................... ..................................................... 4 2.4程序流程图 ..................................................................... ..................................................... 5 2.5程序相关说明 ..................................................................... ................................................. 6 3.程序详细设计与分析 ..................................................................... ......................................... 6 3.1.初始化组件 ..................................................................... ..................................................... 6 3.2.构建菜单栏及其下拉菜单 ..................................................................... .............................. 6 3.3.“文件”菜单的事件监听 ..................................................................... .............................. 7 3.4.“编辑”菜单的事件监听 ................................................................................................... 8 3.5.异常处理 ..................................................................... ......................................................... 9 4(测试分析 ..................................................................... ....................................................... 10 5(源程序清单 ..................................................................... ................. 错误~未定义书签。
JAVA简单记事本程序(源代码)课程设计
辽宁工业大学JA V A程序设计课程设计(论文)题目: JAVA简单记事本程序院(系):软件学院专业班级:软件工程班学号:学生姓名:指导教师:教师职称:起止时间:程序设计专题(报告)任务及评语目录第1章课程设计的目的与要求 (4)1.1 课程设计目的 (4)1.2 课程设计的实验环境 (4)1.3 课程设计的预备知识 (4)1.4 课程设计要求 (4)第2章课程设计内容 (5)2.1课题描述 (5)2.2 系统设计 (5)2.2.1功能分析 (5)2.2.2面向对象设计 (5)2.2.3详细设计 (7)2.3程序实现 (10)2.3.1源码分析 (10)2.3.1运行结果 (14)第3章总结 (18)参考文献19第1章课程设计的目的与要求1.1 课程设计目的《JA V A程序设计》是计算机相关专业的必修专业基础课程,其实践性、应用性很强。
实践教学环节是必不可少的一个重要环节。
本课程的程序设计专题实际是计算机相关专业学生学习完《JAVA程序设计》课程后,进行的一次全面的综合训练,JA V A程序设计的设计目的是加深对理论教学内容的理解和掌握,使学生较系统地掌握程序设计及其在网络开发中的广泛应用,基本方法及技巧,为学生综合运用所学知识,利用软件工程为基础进行软件开发、并在实践应用方面打下一定基础。
1.2 课程设计的实验环境硬件要求能运行Windows 9.X操作系统的微机系统。
JAVA程序设计语言及相应的集成开发环境,J2SDK和ECLIPSE开发工具。
1.3 课程设计的预备知识熟悉JAVA语言及ECLIPSE开发工具。
1.4 课程设计要求按课程设计指导书提供的课题,要求学生在自行完成各个操作环节,并能实现且达到举一反三的目的,完成一个项目解决一类问题。
要求学生能够全面、深入理解和熟练掌握所学内容,并能够用其分析、设计和解答类似问题;对此能够较好地理解和掌握,能够进行简单分析和判断;能编写出具有良好风格的程序;掌握JA V A程序设计的基本技能和面向对象的概念和方法;了解多线程、安全和网络等编程技术。
java课程设计报告记事本
Java课程设计报告:记事本1. 引言记事本是一款常见的文本编辑工具,广泛应用于日常工作和学习中。
本文将介绍一种基于Java语言开发的简易记事本设计方案。
2. 设计思路2.1 界面设计记事本的界面应简洁明了,方便用户进行文本编辑和操作。
可以考虑使用Swing或JavaFX等图形库来创建用户界面。
2.1.1 主窗体记事本的主窗体应包含一个菜单栏和一个文本编辑区域。
菜单栏包含文件、编辑、格式等功能项,可以使用Java提供的菜单组件来实现。
2.1.2 文件操作在菜单栏的文件功能项中,应包含新建、打开、保存、另存为等操作。
这些功能可以通过文件选择对话框来实现。
2.1.3 文本编辑文本编辑区域应支持基本的编辑功能,如复制、粘贴、剪切和撤销等操作。
可以使用Java提供的文本框组件来实现。
2.2 功能设计记事本的功能设计应满足用户的基本需求,如文本编辑、保存和打开文件等。
2.2.1 文本编辑功能用户可以在文本编辑区域输入和编辑文本内容。
可以提供字体、颜色和对齐等格式设置功能。
2.2.2 文件操作功能用户可以通过菜单栏的文件功能项进行文件的新建、打开、保存和另存为等操作。
可以使用Java的文件IO功能来实现。
2.3 实现步骤2.3.1 创建主窗体首先,需要创建一个主窗体,并设置合适的大小和布局。
可以使用Swing或JavaFX提供的窗体组件来实现。
2.3.2 添加菜单栏在主窗体中添加一个菜单栏,并设置合适的菜单和菜单项。
可以使用Java提供的菜单和菜单项组件来实现。
2.3.3 添加文件操作功能在菜单栏的文件功能项中添加新建、打开、保存和另存为等功能,并实现相应的事件处理。
可以使用Java提供的文件选择对话框和文件IO功能来实现。
2.3.4 添加文本编辑功能在主窗体中添加一个文本编辑区域,并提供复制、粘贴、剪切和撤销等编辑功能。
可以使用Java提供的文本框组件和编辑功能来实现。
3. 实现代码以下是一个简单记事本的Java代码示例:import javax.swing.*;import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.io.*;public class Notepad extends JFrame {private JTextArea textArea;private JFileChooser fileChooser;public Notepad() {setTitle("记事本");setSize(600, 400);setDefaultCloseOperation(EXIT_ON_CLOSE);createMenuBar();textArea = new JTextArea();JScrollPane scrollPane = new JScrollPane(textArea);add(scrollPane, BorderLayout.CENTER);fileChooser = new JFileChooser();setVisible(true);}private void createMenuBar() {JMenuBar menuBar = new JMenuBar();JMenu fileMenu = new JMenu("文件");JMenuItem newMenuItem = new JMenuItem("新建");JMenuItem openMenuItem = new JMenuItem("打开");JMenuItem saveMenuItem = new JMenuItem("保存");JMenuItem saveAsMenuItem = new JMenuItem("另存为");newMenuItem.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {textArea.setText("");}});openMenuItem.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {int result = fileChooser.showOpenDialog(Notepad.this);if (result == JFileChooser.APPROVE_OPTION) {File file = fileChooser.getSelectedFile();try {BufferedReader reader = new BufferedReader(new FileReader(file));String line;StringBuilder content = new StringBuilder();while ((line = reader.readLine()) != null) { content.append(line).append("\n");}reader.close();textArea.setText(content.toString());} catch (IOException ex) {ex.printStackTrace();}}}});saveMenuItem.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {int result = fileChooser.showSaveDialog(Notepad.this);if (result == JFileChooser.APPROVE_OPTION) {File file = fileChooser.getSelectedFile();try {BufferedWriter writer = new BufferedWriter(new FileWriter(file));writer.write(textArea.getText());writer.close();} catch (IOException ex) {ex.printStackTrace();}}}});saveAsMenuItem.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {int result = fileChooser.showSaveDialog(Notepad.this);if (result == JFileChooser.APPROVE_OPTION) {File file = fileChooser.getSelectedFile();try {BufferedWriter writer = new BufferedWriter(new FileWriter(file));writer.write(textArea.getText());writer.close();} catch (IOException ex) {ex.printStackTrace();}}}});fileMenu.add(newMenuItem);fileMenu.add(openMenuItem);fileMenu.add(saveMenuItem);fileMenu.add(saveAsMenuItem);menuBar.add(fileMenu);setJMenuBar(menuBar);}public static void main(String[] args) {SwingUtilities.invokeLater(new Runnable() {@Overridepublic void run() {new Notepad();}});}}4. 总结本文介绍了一种基于Java语言开发的简易记事本设计方案。
java课程设计-简单记事本
目录前言 (2)正文 (2)1.1课程设计的教学目的和任务 (2)1.2课程设计的主要内容 (2)2.1.问题描述及基本要求 (3)2.2.记事本基本功能 (3)2.3使用的JAVA主要的类 (3)2.4 JAVA类的主要方法 (3)2.5程序流程图 (5)2.6运行界面 (5)2.6小结 (7)参考文献: (8)附录: (9)前言随着科学技术的不断发展,计算机已经成为我们工作学习和生活中不可缺少的工具。
文本编辑器是个人计算机最司空见惯的应用程序了,在学习了Java语言之后,我决定使用Java语言编写记事本,具有基本的文字编辑功能。
记事本是Windows 操作系统中常见自带的一款用于创建和编辑文本文件的附件工具,用户可以在其中方便地输入文字,从而进行编辑与操作。
由于记事本操作简单、小巧灵活。
因此非常适合用户在进行一些简单的文字处理时使用。
我们在日常的生活中非常普遍地去使用记事本,但是却很少去研究它的具体功能,更不会去考虑它的具体实现。
经过一个学期的学习,我学习了Java这门面向对象的程序设计语言, 对于面向对象的概念有了进一步的了解,这个学期的java课程也有很多机会遇到实际的课题和项目,特别是课后练习实验和上机的一些基本题目,这对于巩固所学的理论知识有很大的帮助。
特别是在学完理论的Java课程之后,进行这样一个课题设计,可以把整本书的知识进行融会贯通,更进一步地提高了我们的处理实际编程问题的能力。
最后决定做一个简易记事本程序并实现其中部分的功能。
摘要:该程序是一个记事本,具有良好的界面,使用人员能快捷简单地进行操作。
关键字:java、记事本、方法、事件。
正文1.1 课程设计的教学目的和任务(1) 使学生进一步理解和掌握所学的各种基本抽象数据类型的逻辑结构、存储结构和操作实现算法,以及它们在程序中的使用方法。
(2) 使学生初步掌握软件开发过程的问题分析、设计、编码、测试等基本方法和基本技能。
(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程序课程设计任务书一、主要任务与目标1.掌握java语言,能够学会使用JCreator开发具体的软件。
2.使用所学知识开发一个基于Java的记事本。
二、主要内容与基本要求本程序在执行后应能处理文本编辑的一些基本功能。
根据记事本的特点,程序主要功能设计有:打开文件,读取文件中的文本信息:对原有文件可实行打开操作,并能读取文件中的内容,以方便对文件的查看,修改等任务。
显示、编辑修改文本信息:记事本对文字信息的主要处理功能。
可对相关信息进行复制,剪切,粘贴等操作。
实现新建、保存文本文件:新建文本可以使用户写入新的信息,文件保存后再次打开仍可获得原有信息。
三、计划进度1.12月28日-- 12月28日:搜集资料、查阅文献,确定选题2.12月29日-- 12月30日:需求分析,系统设计,系统功能模块完善3.1月1日-- 1月3日:编程实现系统、系统测试与修改4.1月4日-- 1月5日:课程设计报告撰写5.1月6日-- 1月7日:课程设计报告答辩四、主要参考文献(1)洪维恩何嘉 java 2面向对象程序设计. 中国铁道出版社,2004.2(2)耿祥义张跃平 Java大学实用教程(第2版).电子工业出版社,2008.5(3)孙全党王吴迪赵枫朝 Java程序设计应用教程,电子工业出版社,2006.2摘要随时着科学技术的快速发展,计算机程序设计早已成为了趋势,JAV A是计算机专业的核心课程,是计算机科学的算法理论基础和软件设计的技术基础。
JA VA是实践性很强的课程。
课程设计是加强实践能力的一个强有力手段。
要求掌握JA V A的应用、编写、上机调试的基本方法。
本课程设计就是主要利用java 语言编写的一个模仿windows 记事本的较简单的程序,它能实现打开文件,读取文件中的文本信息;显示、编辑修改文本信息;实现新建、打开、保存文本文件以及控制保存文本信息到指定的文件的一些基本功能。
该记事本是一个基于JCreator的应用程序。
Java课程设计实验报告及全部源码流程图
课程设计一、实验目的1.加深对课堂讲授内容的理解,掌握解决实际应用问题时所应具有的查阅资料、技术标准和规范,以及软件编程、调试等能力,掌握面向对象的编程思想及Java语言程序设计的规律与技巧,为进一步学习web应用开发及今后从事专业工作打下基础。
2. 使用本学期学习的Java SE技术(也可以使用课堂教学中没有学习过的Java技术,但是应当以Java SE技术为主)完成多功能日历GUI程序的设计,使之具有如下基本功能:一年日历用12页显示,每页显示一个月的日历。
日历可以按年或月前后翻动,能够显示当前的日期,可以为每页日历选择背景图片。
3.在完成基本功能的基础上发挥自己的想象力与创造力,使程序凸显出与众不同的特点与功能,形成本小组的特性色。
二、实验要求1.问题描述准确、规范。
2.程序结构合理,调试数据准确、有代表性.。
3.界面布局整齐,人机交互方便。
4.输出结果正确。
5.正确撰写实验报告。
三、实验内容编写一个GUI程序实现日历的功能。
一年日历用12页显示,每页显示一个月的日历。
日历可以按年或月前后翻动,能够显示当前的日期以及当前农历,可以为每页日历选择背景图片。
可以实现显示时钟,时钟能进行整点报时。
可以实现备忘记事功能,能在每天添加、修改、删除记事等操作。
四、实验步骤1.在上机实验前,小组成员进行选题讨论,确定小组感兴趣而又伸缩性强的题目多功能日历。
2.在第一次上机实验时讨论分工,分工明确之后,分头合作进行。
3.各成员完成自己的任务后,最后进行统筹合并,以及程序最后的优化。
4. 根据实验结果,写出合肥工业大学实验报告。
实验报告应当包括:实验内容,程序流程图,类结构,程序清单,运行结果,以及通过上机取得的经验。
5.详细的上机实验步骤见任务分工及程序设计进度表。
五、实验结果经过小组成员的共同努力,最终我们小组设计的多功能日历程序能够实现实验的基本要求——一年日历用12页显示,每页显示一个月的日历。
日历可以按年或月前后翻动,能够显示当前的日期,可以为每页日历选择背景图片。
《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课程设计报告题目:简单记事本程序的设计年级专业:i ____ 学号: _________________________ 学生姓名: ______________________ 指导老师: ______________________完成时间:2010年6月8日目录摘要 (1)前言 (2)1需求分析 (2)1.1需求分析 (2)1.2功能设计 (3)2.概要设计 (3)2.1程序设计思路 (3)2.2程序运行界面 (3)2.3模块说明图 (4)2.4 程序流程图 (5)2.5程序相关说明 (6)3.程序详细设计与分析 (6)3.1.初始化组件 (6)3.2.构建菜单栏及其下拉菜单 (6)3.3.“文件”菜单的事件监听 (7)3.4.“编辑”菜单的事件监听 (8)3.5.异常处理 (9)4•测试分析 (10)5•源程序清单 (12)6•课程设计总结 (17)参考文献 (17)简单记事本程序的设计摘要该报告中的程序是使用Java 程序编写,能够进行输入文字操作,并具有新建文件,打开文件,保存文件,退出,复制,粘贴,剪切等功能,不同之处是本程序能够对文字的颜色进行设置。
该程序主要用到了Java swing 和事件监听等。
关键字:记事本程序;Java 语言;Jcreator.、八、一前言Java的前身是Oak,它一开始只是被应用于消费性电子产品中。
后来它的开发者们发现它还可以被用于更大范围的In ternet 上。
1995年,Java语言的名字从Oak编程了Java。
1997 年J2SE1.1 发布。
1998 年J2SE1.2 发布,标志Java2 的诞生。
十多年来, Java 编程语言及平台成功地运用在网络计算及移动等各个领域。
Java的体系结构由Java语言、Javaclass 、Java API 、Java 虚拟机组成。
它具有简单、面向对象、健壮、安全、结构中立、可移植和高效能等众多优点。
Java课程设计报告(记事本)
Java课程设计报告专业:班级:姓名:学号:系部:目录目录 (2)正文 (3)一、设计内容和要求 (3)二、设计思路 (4)三、具体实现 ............................................................ 错误!未定义书签。
四、运行调试与分析 .............................................. 错误!未定义书签。
3五、设计体会小结 (21)正文一、设计内容和要求Java文档编辑器是一个允许修改DefaultStyledDocument对象的应用程序。
这些对象用于管理Swing文本组件(例如JTextPane和JTextArea)的内容。
JTextPane用于显示DefaultStyledDocument的内容。
通过改变与DefaultStyledDocument相关联的Style对象,能够改变DefaultStyledDocument在JTextPane中的显示方式。
此应用程序也能够将DefaultStyledDocument存储到磁盘上和读入以前存储的DefaultStyledDocument。
读、写、操纵DefaultStyledDocument的所有选项都可以通过使用菜单项来实现。
当这些菜单项被选中时,它们生成事件。
使用ActionListener, ItemListener, UndoableEditListener和MenuDragMouseListener对象来处理这些事件。
要求通过课程设计,使学生将掌握的Java语言基本知识应用于实践中,在实际练习中加深对Java语言各方面的知识和概念的理解,掌Java程序设计中编程方法、编程思想,深入理解Java语言在实际中的应用。
要求学生动手上机编程,掌握Java程序设计思想和设计方法,设计实现一个简单Java文档编辑器,该编辑器由打开文件、新建文件、保存、复制、剪切、粘贴、撤销、删除等基本文本操作功能组件组成,有能力和时间的同学还可以设计实现如查找、时间、设置字体颜色、格式等功能,右键菜单响应,快捷键等功能,进一步加强自己的编程能力和编程思想。
java课程设计项目记事本
java课程设计项目记事本一、教学目标本章节的Java课程设计项目——记事本,旨在让学生掌握Java编程语言的基本语法、面向对象编程思想以及基本的GUI设计。
通过本章节的学习,学生将能够:1.熟练使用Java基本数据类型、运算符、控制结构进行简单的编程。
2.理解面向对象编程的基本概念,如类、对象、封装、继承和多态。
3.掌握Java常用类库,如String、ArrayList、HashMap等。
4.学会使用Java Swing库进行GUI设计,实现记事本的基本功能,如文本编辑、字体设置、颜色设置等。
5.培养学生独立思考、解决问题的能力,以及团队协作的精神。
二、教学内容本章节的教学内容主要包括以下几个部分:1.Java基本语法和数据结构:主要包括数据类型、运算符、控制结构等基础知识。
2.面向对象编程:讲解类、对象、封装、继承和多态等概念,并通过实例让学生理解面向对象编程的思想。
3.Java常用类库:介绍String、ArrayList、HashMap等常用类库的使用方法。
4.Java Swing库:讲解Swing库的基本概念,如容器、组件、事件处理等,并引导学生如何使用Swing库实现记事本的基本功能。
5.项目实践:分组让学生动手实践,完成一个简单的记事本项目,培养学生的实际编程能力和团队协作能力。
三、教学方法为了提高学生的学习兴趣和主动性,本章节将采用以下教学方法:1.讲授法:讲解Java基本语法、面向对象编程思想和常用类库。
2.案例分析法:通过分析实际案例,让学生理解面向对象编程的思想和Swing库的使用方法。
3.实验法:让学生动手实践,完成记事本项目,培养实际编程能力。
4.讨论法:分组讨论,引导学生主动思考问题,提高团队协作能力。
四、教学资源为了支持教学内容和教学方法的实施,丰富学生的学习体验,我们将准备以下教学资源:1.教材:Java编程基础,用于讲解基本语法和数据结构。
2.参考书:Java Swing编程,用于讲解Swing库的使用方法。
java记事本程序课程设计
java记事本程序 课程设计一、课程目标知识目标:1. 学生能理解Java语言的基本语法和程序结构,掌握面向对象编程的基本概念。
2. 学生能掌握使用Java编写文本处理程序的基本方法,了解文件读写操作。
3. 学生了解异常处理机制,并能在程序中正确使用try-catch结构处理异常。
技能目标:1. 学生能够运用所学知识,独立设计和编写一个具备基本功能的记事本程序。
2. 学生通过编程实践,提高问题分析能力,学会运用面向对象方法设计程序结构。
3. 学生能够运用调试工具检查和修正程序中的错误,提高程序调试能力。
情感态度价值观目标:1. 学生通过编程实践,培养对计算机科学的兴趣,激发主动学习和探索精神。
2. 学生在小组合作中学会沟通和协作,培养团队意识和集体荣誉感。
3. 学生通过解决实际问题,增强自信心,树立正确的技术价值观和社会责任感。
课程性质:本课程为信息技术学科,结合Java编程知识,以实践操作为主,注重培养学生的动手能力和实际应用能力。
学生特点:学生为初中年级,对计算机编程有一定的基础,好奇心强,喜欢探索新知识。
教学要求:注重理论与实践相结合,引导学生通过自主学习和小组合作,完成记事本程序的设计与实现。
在教学过程中,关注学生的个体差异,提供有针对性的指导。
二、教学内容1. Java基本语法复习:变量、数据类型、运算符、控制流程(条件语句、循环语句)。
相关教材章节:第一章 Java语言概述,第二章 Java基本语法。
2. 面向对象基础:类与对象、构造方法、封装、继承、多态。
相关教材章节:第三章 面向对象编程基础,第四章 类与对象。
3. 文件读写操作:File类、FileReader、FileWriter、BufferedReader、BufferedWriter。
相关教材章节:第六章 文件与I/O流。
4. 异常处理:异常的概念、try-catch语句、finally语句、自定义异常。
相关教材章节:第七章 异常处理。
用Java实现一个简单的记事本
用Java实现一个简单的记事本,使其可以通过给定文件的绝对路径打开文件,当该文件名是目录时,则打开一个目录并浏览该目录下的文件结构,即目录树形图。
实现原理也不难,如下:1、判断给定的绝对路径是否为文件,若为文件则直接在编辑区中显示文件里面的内容。
2、当绝对路径是目录时,则进入该目录,遍历目录内的每一个文件,并递归地打印出该目录的树形图。
3、保存文件是=时,则打开文件对话框,获取对话框当前的目录路径,以及对话框中用户输入的“文件名”,据此新建一个File对象,将编辑区中的内容写入到新建的文件中,即实现了保存文件的功能。
下面是实现之后的界面:代码实现如下:1import java.awt.*;2import java.awt.event.*;3import java.io.*;4import javax.swing.*;56public class FileEditor extends JFrame {78private JTextField selectField; //文件的绝对路径文本域9private JTextArea editArea; //编辑区10private JButton saveBtn; //“保存”按钮11private JButton openFileBtn; //“浏览”按钮1213private int level = 0; //记录目录层次数1415public FileEditor() {16this.init();17 }1819private void init() {20this.setTitle("简单记事本");21this.setBounds(300, 50, 600, 650);2223 /*24 * 面板的北边,即路径输入域、浏览按钮25 */26 selectField = new JTextField(40);27 openFileBtn = new JButton("浏览");28 openFileBtn.addActionListener(new ActionListener() {29public void actionPerformed(ActionEvent ae) {30 FileEditor.this.level = 0;31 String path = selectField.getText();32 // 浏览目录或者文件33 openDirOrFile(path.replaceAll("/", "\\"));34 }35 });36 JPanel upPanel = new JPanel(new FlowLayout(FlowLayout.LEFT));37 upPanel.setBackground(Color.CYAN);38 upPanel.add(selectField);39 upPanel.add(openFileBtn);40this.add(upPanel, BorderLayout.NORTH);4142 /*43 * 文本编辑区44 */45 editArea = new JTextArea();46 ScrollPane scollPanel = newScrollPane(ScrollPane.SCROLLBARS_AS_NEEDED);47 scollPanel.add(editArea);48this.add(scollPanel, BorderLayout.CENTER);4950 /*51 * 保存按钮52 */53 saveBtn = new JButton("保存");54 saveBtn.addActionListener(new ActionListener() {55public void actionPerformed(ActionEvent ae) {56 // 保存57 saveFile();58 }59 });60 JPanel southPanel = new JPanel();61 southPanel.setBackground(Color.green);62 southPanel.add(saveBtn);63this.add(southPanel, BorderLayout.SOUTH);6465this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);66this.setVisible(true);67 }6869 /**70 * 保存文件71 */72private void saveFile() {73 FileDialog fd = new FileDialog(this, "保存文件");74 fd.setFile("*.java");75 //设置为“保存”模式76 fd.setMode(FileDialog.SAVE);77 fd.setVisible(true);78 //获取文件名79 String fileName = fd.getFile();80 //获取对话框的当前目录81 String dir = fd.getDirectory();82 //根据目录名、文件名创建一个文件,即要保存的目标文件83 File newFile = new File(dir + File.separator + fileName);84 PrintWriter pw = null;85try {86 pw = new PrintWriter(new OutputStreamWriter(new FileOutputStream(87 newFile)));8889 String str = editArea.getText();90 pw.println(str);91 pw.flush();92 } catch (IOException e) {93 e.printStackTrace();94 } finally {95 pw.close();96 }97 }9899 /**100 * 打开目录或文件101 *102 * @param absolutePath : 指定目录或文件的绝对路径名103 */104private void openDirOrFile(String absolutePath) {105 File file = new File(absolutePath);106107if (!(file.exists())) {108 editArea.setText("文件不存在!");109 } else if (file.isDirectory()) {110 editArea.setText(null);111 showDir(file);112 } else if (file.isFile()) {113try {114 FileInputStream fis = new FileInputStream(file);115 BufferedReader br = new BufferedReader(new InputStreamReader(116 fis));117 String str = null;118 editArea.setText(null);119while ((str = br.readLine()) != null) {120 editArea.append(str + "\r\n");121 }122 br.close();123 } catch (IOException e) {124 e.printStackTrace();125 }126 }127128 }129130 /**131 * 浏览目录,建立树形图132 *133 * @param directory :需要打开的目录134 */135private void showDir(File directory) {136 File[] files = directory.listFiles();137int len = files.length;138for (int i = 0; i < len; i++) {139if (files[i].isDirectory()) {140for (int j = 0; j < this.level; j++) {141 editArea.append(" ");142 }143 editArea.append(this.level + 1 + " +" + files[i].getName() + " 文件夹\r\n");144this.level++;145 showDir(files[i]);146 } else if(files[i].isFile()){147for(int j = 0; j < this.level + 2; j++) { 148 editArea.append(" ");149 }150 editArea.append(this.level + " ┝┈" +files[i].getAbsolutePath() + "\r\n");151 }152 }153 }154155 /**156 * 测试157 * @param args158 */159public static void main(String[] args) {160new FileEditor();161 }162}测试:1、打印一个目录的树形图,如下:2、打开一个文本文件,如下:3、保存文件,如下:至此,一个简单记事本就完成了。
记事本_java课设_含可运行程序
记事本1.课程设计目的通过此次课程设计,掌握JDK、Editplus、Eclipse、JCreator等开发工具的运用,拓宽常用类库的应用。
把课堂学习内容和实践充分结合,全面掌握Java语言的编程思想及面向对象程序设计的方法。
使得自身知识更加丰富。
为以后工作打下良好的基础。
报告中的程序是使用Java程序编写,能够进行输入文字操作,并且有新建文件,打开文件,保存文件,退出,复制,粘贴,剪切等功能,不同之处是本程序能够对文字的颜色和背景颜色进行设置。
2.设计方案论证2.1设计思路2.1.1本记事本程序设计简单,主要参照WINDOWS自带记事本所设计,菜单中有“文件”,“编辑”,“格式”“查看”“帮助”五个主菜单。
2.1.2文件有“新建”“打开”“保存”“另存为”“打印”“退出”四个子菜单:分别用于新建文件,打开文件,保存文件,另存文件,打印文件,退出记事本。
2.1.3编辑中有“撤消”“剪切”“复制”“粘贴”“删除”“查找”等子菜单:分别用于剪切文字,复制文字,粘贴文字。
2.1.4“格式”菜单中有自动换行,颜色,字体三个子菜单。
用于改变字体。
字体颜色和背景颜色。
2.1.5“查看”和“帮助”菜单中分别有状态栏,帮助和关于子菜单。
2.2设计方法在设计记事本时,需要编写5个Java源文件:Notepad4.java、UndoHandler.java、MyFont.java、FileTransferHandler.java 和Clock.java。
2.2.1 Notepad4.java该文件是主类,调用其它各个类,实现软件功能。
2.2.2 UndoHandler.java该文件是实现了接口UndoableListener的类2.2.3MyFont.java该文件是用于设置字体的类2.2.4 FileTransferHandler.java该文件是TransferHandler 的子类,从键盘向记事本输入数据的类。
Java完整简单记事本源代码
版权所有请勿抄袭AboutDialog.javapackage notepad;import java.awt.Color;import java.awt.Font;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.ImageIcon;import javax.swing.JButton;import javax.swing.JDialog;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JPanel;public class AboutDialog implements ActionListener{public JDialog Dialog;public JButton OK,Icon;public JLabel Name,Version,Author,Java;public JPanel Panel;AboutDialog(JFrame notepad, int x, int y) {Dialog=new JDialog(notepad,"About Notepad...",true);OK=new JButton("OK");Icon=new JButton(new ImageIcon("Notepad.jpg"));Name=new JLabel("Notepad");Version=new JLabel("Version 1.0");Java=new JLabel("JRE Version 6.0");Author=new JLabel("Copyright (c) 2011 Sky. No rights reserved.");Panel=new JPanel();Color c=new Color(0,95,191);Name.setForeground(c);Version.setForeground(c);Java.setForeground(c);Panel.setBackground(Color.WHITE);OK.setFocusable(false);Dialog.setSize(280, 180);Dialog.setLocation(x, y);Dialog.setResizable(false);Dialog.setLayout(null);Panel.setLayout(null);OK.addActionListener(this);Icon.setFocusable(false);Icon.setBorderPainted(false);Author.setFont(new Font(null,Font.PLAIN,11));Panel.add(Icon);Panel.add(Name);Panel.add(Version);Panel.add(Author);Panel.add(Java);Dialog.add(Panel);Dialog.add(OK);Panel.setBounds(0, 0, 280, 100);OK.setBounds(180, 114, 72, 26);Name.setBounds(80, 10, 160, 20);Version.setBounds(80, 27, 160, 20);Author.setBounds(15, 70, 250, 20);Java.setBounds(80, 44, 160, 20);Icon.setBounds(16, 14, 48, 48);}public void actionPerformed(ActionEvent e) { Dialog.setVisible(false);}}ColorDialog.javapackage notepad;import java.awt.Color;import ponent;import java.awt.Font;import java.awt.GridLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.KeyEvent;import java.awt.event.KeyListener;import java.awt.event.WindowEvent;import java.awt.event.WindowListener;import javax.swing.JButton;import javax.swing.JDialog;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JPanel;import javax.swing.JTextArea;import javax.swing.JTextField;public class ColorDialog implements ActionListener, WindowListener{ public JDialog Dialog;public JLabel NFL,NBL,SFL,SBL;public JTextArea Normal,Selected;public JButton NFB,NBB,SFB,SBB,OK,Cancel,Reset;public Color NFC,NBC,SFC,SBC;public ColorChooser Chooser;public ColorDialog(JFrame notepad, int x, int y){NFC=new Color(0,0,0);NBC=new Color(249,249,251);SFC=new Color(0,0,0);SBC=new Color(191,207,223);Dialog=new JDialog(notepad,"Color...",true);NFL=new JLabel("Normal Foreground:");NBL=new JLabel("Normal Background:");SFL=new JLabel("Selected Foreground:");SBL=new JLabel("Selected Background:");Normal=new JTextArea("\n Normal 正常");Selected=new JTextArea("\n Selected 选中 ");NFB=new JButton("");NBB=new JButton("");SFB=new JButton("");SBB=new JButton("");OK=new JButton("OK");Cancel=new JButton("Cancel");Reset=new JButton("Reset");Chooser=new ColorChooser(Dialog, x+65, y-15);Normal.setEditable(false);Normal.setFocusable(false);Normal.setFont(new Font("新宋体", 0, 16));Normal.setForeground(NFC);Normal.setBackground(NBC);Selected.setEditable(false);Selected.setFocusable(false);Selected.setFont(Normal.getFont());Selected.setForeground(SFC);Selected.setBackground(SBC);NFB.setBackground(NFC);NBB.setBackground(NBC);SFB.setBackground(SFC);SBB.setBackground(SBC);Dialog.setLayout(null);Dialog.setLocation(x, y);Dialog.setSize(410, 220);Dialog.setResizable(false);Reset.setFocusable(false);OK.setFocusable(false);Cancel.setFocusable(false);Dialog.add(Normal);Dialog.add(Selected);Dialog.add(NFL);Dialog.add(NBL);Dialog.add(SFL);Dialog.add(SBL);Dialog.add(SBB);Dialog.add(SFB);Dialog.add(NBB);Dialog.add(NFB);Dialog.add(OK);Dialog.add(Cancel);Dialog.add(Reset);SBB.setBounds(144, 100, 60, 22);SFB.setBounds(144, 70, 60, 22);NBB.setBounds(144, 40, 60, 22);NFB.setBounds(144, 10, 60, 22);NFL.setBounds(10, 10, 130, 22);NBL.setBounds(10, 40, 130, 22);SFL.setBounds(10, 70, 130, 22);SBL.setBounds(10, 100, 130, 22);Normal.setBounds(220, 10, 174, 56);Selected.setBounds(220, 66, 174, 56);Reset.setBounds(10, 160, 74, 24);OK.setBounds(236, 160, 74, 24);Cancel.setBounds(320, 160, 74, 24);Dialog.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);Dialog.addWindowListener(this);NFB.addActionListener(this);NBB.addActionListener(this);SFB.addActionListener(this);SBB.addActionListener(this);Reset.addActionListener(this);OK.addActionListener(this);Cancel.addActionListener(this);}public void setTextAreaColor(){Normal.setForeground(NFB.getBackground());Normal.setBackground(NBB.getBackground());Selected.setForeground(SFB.getBackground());Selected.setBackground(SBB.getBackground());}public void cancel(){Normal.setForeground(NFC);Normal.setBackground(NBC);Selected.setForeground(SFC);Selected.setBackground(SBC);NFB.setBackground(NFC);NBB.setBackground(NBC);SFB.setBackground(SFC);SBB.setBackground(SBC);Dialog.setVisible(false);}public void actionPerformed(ActionEvent e) {Object obj=e.getSource();if(obj==Reset){NFB.setBackground(new Color(0,0,0));NBB.setBackground(new Color(249,249,251));SFB.setBackground(new Color(0,0,0));SBB.setBackground(new Color(191,207,223));setTextAreaColor();}else if(obj==OK){NFC=NFB.getBackground();NBC=NBB.getBackground();SFC=SFB.getBackground();SBC=SBB.getBackground();Dialog.setVisible(false);}else if(obj==Cancel)cancel();else{Chooser.init(((Component) obj).getBackground());Chooser.Dialog.setVisible(true);((Component) obj).setBackground(Chooser.New.getBackground());setTextAreaColor();}}public void windowClosing(WindowEvent e) {cancel();}public void windowActivated(WindowEvent arg0) {}public void windowClosed(WindowEvent arg0) {}public void windowDeactivated(WindowEvent arg0) {}public void windowDeiconified(WindowEvent arg0) {}public void windowIconified(WindowEvent arg0) {}public void windowOpened(WindowEvent arg0) {}}class ColorChooser implements ActionListener,WindowListener,KeyListener{ JDialog Dialog;JButton Choice[][],Old,New,OK,Cancel;JPanel Panel;JTextField R,G,B;JLabel OldLabel,NewLabel,RL,GL,BL;ColorChooser(JDialog color,int x, int y){Dialog=new JDialog(color,true);Choice=new JButton[8][8];Panel=new JPanel();Old=new JButton("");New=new JButton("");OldLabel=new JLabel("Old:");NewLabel=new JLabel("New:");RL=new JLabel("R:");GL=new JLabel("G:");BL=new JLabel("B:");R=new JTextField("");G=new JTextField("");B=new JTextField("");OK=new JButton("OK");Cancel=new JButton("Cancel");Panel.setLayout(new GridLayout(8,8,0,0));int i=0,j=0;Color c;Choice[0][7]=new JButton("");Choice[0][7].setBackground(new Color(255,255,255));Choice[1][7]=new JButton("");Choice[1][7].setBackground(new Color(255,223,191));Choice[2][7]=new JButton("");Choice[2][7].setBackground(new Color(255,207,207));Choice[3][7]=new JButton("");Choice[3][7].setBackground(new Color(223,191,255));Choice[4][7]=new JButton("");Choice[4][7].setBackground(new Color(207,207,255));Choice[5][7]=new JButton("");Choice[5][7].setBackground(new Color(191,223,255));Choice[6][7]=new JButton("");Choice[6][7].setBackground(new Color(207,255,207));Choice[7][7]=new JButton("");Choice[7][7].setBackground(new Color(223,255,191));for(i=0;i<8;i++){c=Choice[i][7].getBackground();for(j=0;j<8;j++){if(j!=7){Choice[i][j]=new JButton("");Choice[i][j].setBackground(newColor(c.getRed()*(j+1)/8,c.getGreen()*(j+1)/8,c.getBlue()*(j+1)/8));}Choice[i][j].setFocusable(false);Choice[i][j].addActionListener(this);Panel.add(Choice[i][j]);}}Dialog.setSize(280,250);Dialog.setLayout(null);Dialog.setLocation(x, y);Dialog.setResizable(false);Dialog.add(Panel);Panel.setBounds(10, 10, 160, 160);Dialog.add(Old);Dialog.add(OldLabel);Old.setEnabled(false);Old.setBorderPainted(false);Old.setBounds(214, 10, 44, 22);OldLabel.setBounds(180, 10, 44, 22);Dialog.add(New);Dialog.add(NewLabel);New.setEnabled(false);New.setBorderPainted(false);New.setBounds(214, 32, 44, 22);NewLabel.setBounds(180, 32, 44, 22);Dialog.add(R);Dialog.add(G);Dialog.add(B);R.setBounds(214, 97, 44, 22);G.setBounds(214, 123, 44, 22);B.setBounds(214, 149, 44, 22);Dialog.add(RL);Dialog.add(GL);Dialog.add(BL);RL.setBounds(196, 97, 16, 22);GL.setBounds(196, 123, 16, 22);BL.setBounds(196, 149, 16, 22);Dialog.add(OK);Dialog.add(Cancel);OK.setFocusable(false);Cancel.setFocusable(false);OK.setBounds(106, 190, 74, 24);Cancel.setBounds(190, 190, 74, 24);OK.addActionListener(this);Cancel.addActionListener(this);G.addKeyListener(this);R.addKeyListener(this);B.addKeyListener(this);}public void setText(Color c){R.setText(String.valueOf(c.getRed()));G.setText(String.valueOf(c.getGreen()));B.setText(String.valueOf(c.getBlue()));}public void init(Color c){New.setBackground(c);Old.setBackground(c);setText(c);}public void actionPerformed(ActionEvent e) { Object obj=e.getSource();if(obj==OK) Dialog.setVisible(false);else if(obj==Cancel){New.setBackground(Old.getBackground());Dialog.setVisible(false);}else{New.setBackground(((Component) obj).getBackground());setText(New.getBackground());}}public void windowClosing(WindowEvent e) {New.setBackground(Old.getBackground());Dialog.setVisible(false);}public void keyReleased(KeyEvent e) {try{int r,g,b;if(R.getText().length()==0) r=0;else r=Integer.valueOf(R.getText());if(G.getText().length()==0) g=0;else g=Integer.valueOf(G.getText());if(B.getText().length()==0) b=0;else b=Integer.valueOf(B.getText());New.setBackground(new Color(r,g,b));}catch(NumberFormatException nfe){setText(New.getBackground());}catch(IllegalArgumentException iae){setText(New.getBackground());} }public void keyPressed(KeyEvent e) {}public void keyTyped(KeyEvent e) {}public void windowActivated(WindowEvent arg0) {}public void windowClosed(WindowEvent arg0) {}public void windowDeactivated(WindowEvent arg0) {}public void windowDeiconified(WindowEvent arg0) {}public void windowIconified(WindowEvent arg0) {}public void windowOpened(WindowEvent arg0) {}}EnsureDialog.javapackage notepad;import java.awt.BorderLayout;import java.awt.Color;import java.awt.FlowLayout;import java.awt.Font;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.WindowEvent;import java.awt.event.WindowListener;import javax.swing.JButton;import javax.swing.JDialog;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JPanel;public class EnsureDialog implements WindowListener, ActionListener{ public int YES,NO,CANCEL,Status;public JDialog Ensure;public JButton Yes,No,Cancel;public JLabel Question;public JPanel ButtonPanel,TextPanel;EnsureDialog(JFrame notepad, int x, int y) {YES=0;NO=1;CANCEL=2;Status=CANCEL;Ensure=new JDialog(notepad,true);/** 这里的模式标志true的作用是使对话框处于notepad的上端,并且当对话框显示时进程处于停滞状态, * 直到对话框不再显示为止。
java记事本课程设计
测试方法:手动测试、自动化测 试
添加标题
添加标题
添加标题
添加标题
测试内容:新建、打开、保存、 编辑、查找、替换等操作
测试结果:记录测试过程中的问 题,并提出改进建议
性能测试
测试目的:验证Java记 事本的性能是否满足需求
测试工具:JMeter、 LoadRunner等
测试指标:响应时间、吞 吐量、资源利用率等
textArea.setLineWrap(true); textArea.setWrapStyleWord(true);
• ``` • JTextArea textArea = new JTextArea(); • textArea.setLineWrap(true); • textArea.setWrapStyleWord(true);
记事本功能需求
记录文本:能够记录和编辑文本内容 保存文件:能够保存文本内容为文件 打开文件:能够打开已保存的文本文件
查找替换:能够查找和替换文本内容
字体设置:能够设置文本的字体、大小、 颜色等
界面设计:简洁明了,易于操作
界面设计
主界面:简洁明 了,易于操作
功能按钮:清晰 可见,易于点击
文本编辑区:可 输入、编辑、保 存文本
测试场景:单用户、多用 户、高并发等
测试结果分析:找出性能 瓶颈,优化代码或配置
性能优化:优化算法、优 化数据库、优化网络等
兼容性测试
操作系统兼容性:测试在不同操作系统下的运行情况 浏览器兼容性:测试在不同浏览器下的运行情况 硬件兼容性:测试在不同硬件配置下的运行情况 软件兼容性:测试与其他软件的兼容性情况
查找替换功能
功能描述:在文本中查找指定的 字符串,并将其替换为另一个字 符串
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
浙江科技学院经济管理学院JAVA语言课程设计报告选题名称简单记事本开发学生学号专业班级学生姓名学生成绩指导教师朱军工作时间2012/06/27——2012/06/29目录第一章选题简介主要利用面向对象的程序设计语言Java来实现简单记事本,能够进行输入文字操作,并具有新建文件,打开文件,保存文件,退出,复制,粘贴,剪切,查找,替换等功能,区别于一般的记事本,本程序利用了Java swing和事件监听等能够对文字的颜色进行设置。
第二章需求分析1.系统要实现的目标分析菜单中有文件,编辑,格式,视图风格,帮助五个主菜单。
(1)“文件”有新建、打开、保存、另存为、退出五个子菜单:分别用于新建文件,打开文件,保存文件,更改存储地址,退出记事本。
(2)“编辑”中有复制、剪切、粘贴、删除、查找、查找下一个、替换、替换下一个、全选、日期/时间十个字菜单:用于复制文字,剪切文字,粘贴文字,删除文字,查找文字,查找下一个文字,替换文字,替换下一个文字,选择文字,添加日期和者时间。
(3)“格式”中有字体样式、字体大小、字体颜色,自动换行。
字体样式中又包含了正常、粗体、斜体3中字体样式,可以对文字的字体样式做修改。
字体大小中又包含了最大、较大、适中、较小、最小这5个大小范围。
字体颜色可以对字体进行颜色上的修改,是字体更加漂亮。
自动换行能够实现文档在编辑是需要的自动换行功能。
(4)“视图风格”中有MOTIF风格,默认风格,状态栏。
当用户选择MOTIF 风格,软件界面会切换成MOTIF风格界面。
当用户选择默认风格,软件界面会切换成默认风格界面。
点击状态栏时可以对状态栏进行显示和隐藏。
(5)“帮助”中有帮助主题和关于,可以解决用户在使用记事本中的一些问题。
(6)“快捷键”,在菜单栏下面增加了一排快捷键,可以对稳定进行快速的修改、操作等命令。
快捷键主要有新建、打开、保存、复制、剪切、黏贴、删除、查找、字体颜色、帮助主题、退出。
2.对输入输出数据及流程的分析本次设计中,设计了一个菜单栏和文本内容区。
设计过程中用到了JScrollPane,JMenu,JTextPane,JFileChooser等。
JMenu用来制作菜单,JTextPane主要用来输入文本。
为了加入颜色的设置,所以加了一个JColorChooser组件。
整个记事本分为2块:菜单栏和内容输入区。
本程序中首先定义一个myfr类继承JFrame作为最底层容器。
Textcontent为程序文本输入区。
Menu为菜单栏。
AboutDialog为关于对话框。
要想记事本完成需求分析中相应的功能,还必须添加事件监听器。
事件监听器不仅要添加在菜单栏和内容输入区,还需加在容器中。
本程序中ActListener实现了ActionListener接口,用来监听并处理所有菜单项和内容输入区为事件源的事件。
另外,还用来WindowListener来监听处理容器关闭触发的事件,WindowListener继承了WindowsAdapter类并覆盖了WindowsClosing方法。
3.开发环境及运行环境分析本记事本的开发环境是在windows XP的环境下开发,运用了JCreator Pro、JDK开发工具,运行环境是SUN的JDK下运行的。
第三章系统设计1.系统功能模块设计图3.1在图3.1中,构造一个note类是要做的3件事情,分别是初始化容器、初始化组件、设置事件监听器。
2.类设计(1).成员变量2.成员方法notfindmethodexit 退出windowClosing 关闭窗口mouseReleased 处理右键弹出菜单类3.界面设计3.1主界面:主界面包含文件、编辑、格式、视图风格、帮助、快捷键功能,用于选择相应的功能。
图3.1主窗口3.2文件:“文件”有新建、打开、保存、另存为、退出功能。
图3.2文件3.3编辑:“编辑”中有复制、剪切、粘贴、删除、查找、查找下一个、替换、替换下一个、全选、日期/时间功能。
图3.3 编辑3.4格式:“格式”中有字体样式、字体大小、字体颜色,自动换行。
图3.4格式3.5视图风格:“视图风格”中有MOTIF风格,默认风格,状态栏。
图3.5视图风格3.6帮助:“帮助”中有帮助主题和关于,可以解决用户在使用记事本中的一些问题。
图3.6帮助第四章测试1.测试用例及结果图4.1主窗口图4.1为运行程序的主窗口。
图4.2打开界面图4.2为打开电脑里的文件的窗口。
图4.3查找界面图4.3是利用软件的查找功能查找文字的界面。
图4.4字体颜色界面图4.4为软件改变字体颜色界面,可以更改成不同颜色的字体。
图4.5MOTIF风格图4.5为软件切换到MOTIF风格得效果图。
本次测试结果成功,基本功能可以实现!2.程序功能的评价本记事本实现了记事本常用的一些功能,文件的新建,可以打开电脑里的文档文件,进行修改和保存,例如可以对文字进行复制、粘贴、剪切、查找、替换、全选等功能。
还可以对字体的大小风格进行设置。
区别于常用记事本的不同之处是本记事本程序可以实现对记事本字体颜色的修改,用户可以自定义文字的颜色,而且本记事本还可以切换成2种不同风格的界面用于编辑。
总体来说本记事本已经实现了工作需要的功能,能够用于一般的编写文字。
不足之处是本记事本还未能设置好页面设置,方便用户进行设置页面的需求。
查找时没有向下查找功能。
不能对字体进一步设置,如设置不同的字体。
程序相对来说比较简单,需要进一步完善。
程序总代码:import java.awt.*;import java.awt.event.*;import java.io.*;import java.util.*;import javax.swing.*;public class note {public static void main(String[] args){myfr fr=new myfr("JA V A记事本");fr.setSize(560,395);}}///////////////////////////myfr主窗体类//////////////////////////////////////class myfr extends JFrame implements ActionListener{String str,strnext,path,fname; //部分变量的声明JPanel mainpane;JFileChooser choose = new JFileChooser(); //文件对话框Dialog find,replace; //find为查找对话框,replace对话框JTextField findtxt,repltxt; //find为查找对话框的输入文本区,replace对话框的输入文本区Font newfont;JButton findenter,replb; //find为查找对话框,replace对话框的确定按钮JLabel state=new JLabel(" JA V A记事本------未命名文档"); //状态栏JTextArea txt1; //主输入文本区File newfiles;JPopupMenu popm; //弹出菜单声明JMenu m1,m2,m3,m4,m5,m6; //各菜单项JMenuItemm61,m62,m26,m271,m34,m51,m52,m53,m54,p_copy,p_cut,p_paste,p_del;int startp,endp,nexttemp,newstartp,newendp; //查找替换时所用的临时变量JToolBar toolbar = new JToolBar(); //工具条JButton newf=new JButton(new ImageIcon("pic/new.gif")); //图标在PIC下JButton open=new JButton(new ImageIcon("pic/open.gif"));JButton save=new JButton(new ImageIcon("pic/save.gif"));JButton copy=new JButton(new ImageIcon("pic/copy.gif"));JButton cut=new JButton(new ImageIcon("pic/cut.gif"));JButton pp=new JButton(new ImageIcon("pic/pp.gif"));JButton del=new JButton(new ImageIcon("pic/del.gif"));JButton findc=new JButton(new ImageIcon("pic/find.gif"));JButton color=new JButton(new ImageIcon("pic/color.gif"));JButton help=new JButton(new ImageIcon("pic/help.gif"));JButton exit=new JButton(new ImageIcon("pic/exit.gif"));myfr(String sss) /////构造函数开始{super(sss);JMenuBar mb=new JMenuBar();fname=null; //初始文件名为空findenter=new JButton("确定");findenter.addActionListener(this); //声明对话框中上确定按钮,并注册事件replb=new JButton("确定");replb.addActionListener(this);mainpane=(JPanel)this.getContentPane();mainpane.setLayout(new BorderLayout());txt1=new JTextArea("",13,61);txt1.addMouseListener(new handlemouse(this));//注册鼠标右击事件txt1.setFont(new Font("宋体",Font.PLAIN,18));mainpane.add(txt1, BorderLayout.CENTER);mainpane.add("North",toolbar);mainpane.add("South",state);JScrollPane sll = new JScrollPane(); //创建滚动条mainpane.add("Center", sll); ;sll.getViewport().add(txt1); //将滚动条装入文本区popm=new JPopupMenu(); ////POPMeun 开始p_copy=new JMenuItem("复制");p_copy.addActionListener(this);KeyStrokekeycopyp=KeyStroke.getKeyStroke(KeyEvent.VK_C,Event.CTRL_MASK);p_copy.setAccelerator(keycopyp);p_cut=new JMenuItem("剪切");p_cut.addActionListener(this);KeyStrokekeycutp=KeyStroke.getKeyStroke(KeyEvent.VK_X,Event.CTRL_MASK);p_cut.setAccelerator(keycutp);p_paste=new JMenuItem("粘贴");p_paste.addActionListener(this);KeyStrokekeypp=KeyStroke.getKeyStroke(KeyEvent.VK_V,Event.CTRL_MASK);p_paste.setAccelerator(keypp);p_del=new JMenuItem("删除");p_del.addActionListener(this);KeyStroke keydelp=KeyStroke.getKeyStroke(KeyEvent.VK_DELETE,0);p_del.setAccelerator(keydelp);popm.add(p_copy);popm.add(p_cut);popm.add(p_paste);popm.add(p_del);txt1.add(popm); ////POPMenu 结束m1=new JMenu("文件(F)");m1.setMnemonic('F'); //定义快捷方式JMenuItem m10=new JMenuItem("新建");m10.addActionListener(this); //注册事件监听器KeyStrokekeynew=KeyStroke.getKeyStroke(KeyEvent.VK_N,Event.CTRL_MASK); //定义快捷键m10.setAccelerator(keynew);JMenuItem m11=new JMenuItem("打开");m11.addActionListener(this);KeyStrokekeyopen=KeyStroke.getKeyStroke(KeyEvent.VK_O,Event.CTRL_MASK);m11.setAccelerator(keyopen);JMenuItem m12=new JMenuItem("保存");m12.addActionListener(this);KeyStrokekeysave=KeyStroke.getKeyStroke(KeyEvent.VK_S,Event.CTRL_MASK);m12.setAccelerator(keysave);JMenuItem m13=new JMenuItem("另保存为");m13.addActionListener(this);JMenuItem m14=new JMenuItem("退出");m14.addActionListener(this);KeyStrokekeyexit=KeyStroke.getKeyStroke(KeyEvent.VK_F4,Event.ALT_MASK);m14.setAccelerator(keyexit);////////////////////////////////////////////m2=new JMenu("编辑(E)");m2.setMnemonic('E');JMenuItem m21=new JMenuItem("复制");m21.addActionListener(this);KeyStrokekeycopy=KeyStroke.getKeyStroke(KeyEvent.VK_C,Event.CTRL_MASK);m21.setAccelerator(keycopy);JMenuItem m22=new JMenuItem("剪切");m22.addActionListener(this);KeyStrokekeycut=KeyStroke.getKeyStroke(KeyEvent.VK_X,Event.CTRL_MASK);m22.setAccelerator(keycut);JMenuItem m23=new JMenuItem("粘贴");m23.addActionListener(this);KeyStrokekeyp=KeyStroke.getKeyStroke(KeyEvent.VK_V,Event.CTRL_MASK);m23.setAccelerator(keyp);JMenuItem m24=new JMenuItem("删除");m24.addActionListener(this);KeyStroke keydel=KeyStroke.getKeyStroke(KeyEvent.VK_DELETE,0);m24.setAccelerator(keydel);JMenuItem m25=new JMenuItem("查找");m25.addActionListener(this);KeyStrokekeyfind=KeyStroke.getKeyStroke(KeyEvent.VK_F,Event.CTRL_MASK);m25.setAccelerator(keyfind);m26=new JMenuItem("查找下一个");m26.addActionListener(this);KeyStroke keyfn=KeyStroke.getKeyStroke(KeyEvent.VK_F3,0);m26.setAccelerator(keyfn);m26.setEnabled(false);JMenuItem m27=new JMenuItem("替换");m27.addActionListener(this);KeyStrokekeyrepl=KeyStroke.getKeyStroke(KeyEvent.VK_H,Event.CTRL_MASK);m27.setAccelerator(keyrepl);m271=new JMenuItem("替换下一个");m271.setEnabled(false);m271.addActionListener(this);KeyStroke keyrepn=KeyStroke.getKeyStroke(KeyEvent.VK_F6,0);m271.setAccelerator(keyrepn);JMenuItem m28=new JMenuItem("全选");m28.addActionListener(this);KeyStrokekeyall=KeyStroke.getKeyStroke(KeyEvent.VK_A,Event.CTRL_MASK);m28.setAccelerator(keyall);JMenuItem m29=new JMenuItem("日期/时间");m29.addActionListener(this);m3=new JMenu("格式(O)");m3.setMnemonic('O');JMenu m31=new JMenu("字体样式");JMenuItem m311=new JMenuItem("正常");m311.addActionListener(this);JMenuItem m312=new JMenuItem("粗体");m312.addActionListener(this);JMenuItem m313=new JMenuItem("斜体");m313.addActionListener(this);JMenu m32=new JMenu("字体大小");JMenuItem m321=new JMenuItem("最大");m321.addActionListener(this);JMenuItem m322=new JMenuItem("较大");m322.addActionListener(this);JMenuItem m323=new JMenuItem("适中");m323.addActionListener(this);JMenuItem m324=new JMenuItem("较小");m324.addActionListener(this);JMenuItem m325=new JMenuItem("最小");m325.addActionListener(this);JMenuItem m33=new JMenuItem("字体颜色");m33.addActionListener(this);m34=new JMenuItem("自动换行");m34.addActionListener(this);m5=new JMenu("视图风格(V)");m5.setMnemonic('V');//m51=new JMenuItem("系统风格");//m51.addActionListener(this);m52=new JMenuItem("MOTIF风格");m52.addActionListener(this);m53=new JMenuItem("默认风格");m53.addActionListener(this);m54=new JMenuItem("状态栏");m54.addActionListener(this);m6=new JMenu("帮助(H)");m6.setMnemonic('H');m61=new JMenuItem("帮助主题");m61.addActionListener(this);m62=new JMenuItem("关于");m62.addActionListener(this);m1.add(m10); m1.add(m11); m1.add(m12); m1.add(m13); m1.addSeparator(); m1.add(m14);m2.add(m21); m2.add(m22); m2.add(m23); m2.add(m24); m2.addSeparator(); m2.add(m25);m2.add(m26); m2.add(m27); m2.add(m271); m2.addSeparator(); m2.add(m28);m2.add(m29); m3.add(m31); m31.add(m311); m31.add(m312); m31.add(m313);m3.add(m32); m32.add(m321); m32.add(m322); m32.add(m323); m32.add(m324);m32.add(m325); m3.add(m33); m3.addSeparator(); m3.add(m34); //m5.add(m51);m5.add(m52); m5.add(m53); m5.addSeparator(); m5.add(m54); m6.add(m61);m6.addSeparator(); m6.add(m62); mb.add(m1); mb.add(m2); mb.add(m3);mb.add(m5); mb.add(m6); this.setJMenuBar(mb); //设置菜单栏toolbar.add(newf); //工具栏各按钮newf.setToolTipText("新建");newf.addActionListener(this);toolbar.add(open);open.setToolTipText("打开");open.addActionListener(this);toolbar.add(save);save.setToolTipText("保存");save.addActionListener(this);toolbar.addSeparator();toolbar.add(copy);copy.setToolTipText("复制");copy.addActionListener(this);toolbar.add(cut);cut.setToolTipText("剪切");cut.addActionListener(this);toolbar.add(pp);pp.setToolTipText("粘贴");pp.addActionListener(this);toolbar.add(del);del.setToolTipText("删除");del.addActionListener(this);toolbar.addSeparator();toolbar.add(findc);findc.setToolTipText("查找");findc.addActionListener(this);toolbar.add(color);color.setToolTipText("字体颜色");color.addActionListener(this);toolbar.addSeparator();toolbar.add(help);help.setToolTipText("帮助主题");help.addActionListener(this);toolbar.add(exit);exit.setToolTipText("退出");exit.addActionListener(this);setVisible(true);pack();show();this.addWindowListener(new xxx(this));//toolbar.setBackground(new Color(150,150,240));//txt1.setBackground(new Color(170,180,245));}///构造函数结束///////////////////事件处理/////////////////////////////////////public void actionPerformed(ActionEvent p){if(p.getActionCommand()=="新建"||p.getSource()==newf) //响应菜单及工具栏事件{fname=null; //置文件名为空,便于判断文件是否保存过txt1.setText("");state.setText("JA V A记事本------未命名文档");}if(p.getActionCommand()=="打开"||p.getSource()==open){try {if(this.choose.APPROVE_OPTION==this.choose.showOpenDialog(this)){path=this.choose.getSelectedFile().getPath();fname=this.choose.getSelectedFile().getName();File file=new File(path);int flength=(int)file.length();FileReader fReader=new FileReader(file);char[] data=new char[flength];fReader.read(data,0,flength);txt1.setText(new String(data));state.setText("JA V A记事本------"+path+" 共"+flength+"字节");//状态栏统计文件字节数txt1.setCaretPosition(0);}}catch(IOException e){}}if(p.getActionCommand()=="保存"||p.getSource()==save)if(fname==null) //如果文件名为空,说明文件未被创建,弹出另存为对话框{ othersave(); }try {File savefile=new File(path);savefile.createNewFile();FileWriter fw=new FileWriter(savefile);fw.write(txt1.getText());fw.close();}catch(IOException e){}}if(p.getActionCommand()=="另保存为"){othersave();}if(p.getActionCommand()=="退出"||p.getSource()==exit){exit();}//////////////////编辑////////////////////if(p.getActionCommand()=="复制"||p.getSource()==copy){ txt1.copy(); }if(p.getActionCommand()=="剪切"||p.getSource()==cut){ txt1.cut(); }if(p.getActionCommand()=="粘贴"||p.getSource()==pp){ txt1.paste(); }if(p.getActionCommand()=="删除"||p.getSource()==del){txt1.replaceSelection("");}///////////////////////////////////////////////////////if(p.getActionCommand()=="查找"||p.getSource()==findc) // 创建查找对话框;{find=new Dialog(this,"查找");JPanel p1=new JPanel();JPanel p2=new JPanel();findtxt=new JTextField(7);p1.add(new JLabel("输入要查找字符:"));p1.add(findtxt);p2.add(findenter);find.add("Center",p1);find.add("South",p2);find.setSize(200,100);find.show();if(p.getSource()==findenter) ///点击查找对话框的确定按钮后的事件处理{if(findtxt.getText().equals("")){find.dispose();}else if(!findtxt.getText().equals("")){ find.dispose();str=txt1.getText();startp=str.indexOf(findtxt.getText());endp=startp+findtxt.getText().length();txt1.select(startp,endp);m26.setEnabled(true);newendp=endp;////////获取这次查找的终点notfindmethod();}}//////////////////////////////////////////////////////////if(p.getActionCommand()=="查找下一个"){nexttemp=newendp; /////获取上次查找的终点做为未查找字符串的起点String strall=txt1.getText();txt1.select(nexttemp,strall.length()); /////选中所有未查找的字符串strnext=txt1.getSelectedText();newstartp=strnext.indexOf(findtxt.getText())+nexttemp;/////在未查找的字符串里搜索对应字符的在TXT1中的位置newendp=newstartp+findtxt.getText().length();txt1.select(newstartp,newendp); ////找到相应文本,并选择notfindmethod();}if(p.getActionCommand()=="替换"){m271.setEnabled(true);replace=new Dialog(this,"替换"); // 创建替换对话框;JPanel p1=new JPanel();JPanel p2=new JPanel();JPanel p3=new JPanel();findtxt=new JTextField(7);repltxt=new JTextField(7);p1.add(new JLabel("输入原始字符:"));p1.add(findtxt);p2.add(new JLabel("输入替换字符:"));p2.add(repltxt);p3.add(replb);replace.add("North",p1);replace.add("Center",p2);replace.add("South",p3);replace.setSize(200,150);replace.show();}if(p.getSource()==replb) ///点击替换对话框的确定按钮后的事件处理{replace.dispose();str=txt1.getText();startp=str.indexOf(findtxt.getText());endp=startp+findtxt.getText().length();txt1.replaceRange(repltxt.getText(),startp,endp);newendp=endp; ///获取这次替换的终点}if(p.getActionCommand()=="替换下一个"){nexttemp=newendp; /////获取上次查找的终点做为未查找字符串的起点String strall=txt1.getText();txt1.select(nexttemp,strall.length()); /////选中所有未查找的字符串strnext=txt1.getSelectedText();newstartp=strnext.indexOf(findtxt.getText())+nexttemp;/////在未查找的字符串里搜索对应字符的在TXT1中的位置newendp=newstartp+findtxt.getText().length();txt1.select(newstartp,newendp);notfindmethod();txt1.replaceRange(repltxt.getText(),newstartp,newendp);//替换字符}if(p.getActionCommand()=="全选"){txt1.selectAll(); }if(p.getActionCommand()=="日期/时间") //用DATE类插入当前日期/时间,编译时会出现说明{ int inpoint=txt1.getCaretPosition();Date dt=new Date();String strdate=dt.toLocaleString();txt1.insert(strdate,inpoint);}if(p.getActionCommand()=="正常"){ newfont=txt1.getFont(); //得到当前应用字体,获得字体大小,创建相应样式int size=newfont.getSize();txt1.setFont(new Font("宋体",Font.PLAIN,size)); }if(p.getActionCommand()=="粗体"){ newfont=txt1.getFont();int size=newfont.getSize();txt1.setFont(new Font("宋体",Font.BOLD,size)); }if(p.getActionCommand()=="斜体"){ newfont=txt1.getFont();int size=newfont.getSize();txt1.setFont(new Font("宋体",Font.ITALIC,size)); }////////////字体大小/////////////////if(p.getActionCommand()=="最大"){ newfont=txt1.getFont(); ////得到当前应用字体,获得字体样式,创建相应字体的大小int sty=newfont.getStyle() ;txt1.setFont(new Font("宋体",sty,35)); }if(p.getActionCommand()=="较大"){ newfont=txt1.getFont();int sty=newfont.getStyle() ;txt1.setFont(new Font("宋体",sty,30)); }if(p.getActionCommand()=="适中"){ newfont=txt1.getFont();int sty=newfont.getStyle() ;txt1.setFont(new Font("宋体",sty,18)); }if(p.getActionCommand()=="较小"){ newfont=txt1.getFont();int sty=newfont.getStyle() ;txt1.setFont(new Font("宋体",sty,16)); }if(p.getActionCommand()=="最小"){ newfont=txt1.getFont();int sty=newfont.getStyle() ;txt1.setFont(new Font("宋体",sty,14)); }if(p.getActionCommand()=="字体颜色"||p.getSource()==color) //字体颜色{JColorChooser jColor=new JColorChooser(); //调用颜色面板,设置前景就可更改字体颜色Color fcolor=txt1.getForeground();txt1.setForeground( jColor.showDialog(txt1,"选择字体颜色",fcolor));}if(p.getActionCommand()=="自动换行"){ txt1.setLineWrap(true);m34.setEnabled(false);}//if(p.getActionCommand()=="系统风格") //不稳定,在不同编译平台下表现不一致// { }if(p.getActionCommand()=="MOTIF风格"){ this.dispose();myfr ww=new myfr("我的javaX记事本");try { //MOTIF界面UIManager.setLookAndFeel("com.sun.java.swing.plaf.motif.MotifLookAndFeel ");SwingUtilities.updateComponentTreeUI(ww);}catch ( Exception e ) {}}if(p.getActionCommand()=="默认风格"){this.dispose();myfr ww=new myfr("我的javaX记事本");try {UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassNa me());SwingUtilities.updateComponentTreeUI(ww);}catch ( Exception e ) {}}if(p.getActionCommand()=="状态栏") //状态栏的隐藏和显视{state.setVisible( !(state.isVisible()) );}/////////////////////帮助///////////////////////////////////////////if(p.getActionCommand()=="帮助主题"||p.getSource()==help){myhelp help=new myhelp();help.setSize(200,240);}if(p.getActionCommand()=="关于"){JLabel prompt=new JLabel("欢迎使用我的JA V AX记事本",JLabel.CENTER);JOptionPane.showMessageDialog(null,prompt,"关于我的JA V AX记事本",RMATION_MESSAGE);}}public void othersave() //另存为方法{if(choose.APPROVE_OPTION==choose.showSaveDialog(this)){path=choose.getSelectedFile().getPath();newfiles=new File(path);state.setText("JA V A记事本------"+path);fname=choose.getSelectedFile().getName();;try {newfiles=new File(path);newfiles.createNewFile();FileWriter fw=new FileWriter(newfiles);fw.write(txt1.getText());fw.close();}catch(IOException e){}}}public void notfindmethod() //提示查找不到的方法notfindmethod{if(!txt1.getSelectedText().equals(findtxt.getText())){ txt1.setCaretPosition(0); //光标返回文件头部JOptionPane.showMessageDialog(null,"查找不到对应的字符!","查找错误",JOptionPane.ERROR_MESSAGE);m26.setEnabled(false); }}public void exit(){ int value;String[] qq={"返回", "退出"};value=JOptionPane.showOptionDialog(null, "你确定退出吗?请注意保存文件!", "退出程序?",JOptionPane.DEFAULT_OPTION, JOptionPane.QUESTION_MESSAGE,null, qq, qq[0]);if(value==JOptionPane.YES_OPTION)return;else if(value==JOptionPane.NO_OPTION){ System.exit(0); }}}//主窗口类结束//class xxx extends WindowAdapter //关闭窗口XXX类////////////{myfr fx;xxx(myfr fxx){fx=fxx;}public void windowClosing(WindowEvent e){ JOptionPane.showMessageDialog(null,"欢迎使用本软件!","退出",RMATION_MESSAGE);fx.dispose();System.exit(0);}}class xxxhelp extends WindowAdapter //关闭帮助主题窗口类XXXhelp{myhelp fx;xxxhelp(myhelp fxx){fx=fxx;}public void windowClosing(WindowEvent e){fx.dispose();}}class myhelp extends JFrame //帮助主题类/////////////////{TextArea helparea;myhelp(){super("我的帮助主题");helparea=new TextArea("",45,25,TextArea.SCROLLBARS_NONE);//创建没有滚动条的帮助窗口helparea.setText(" ");helparea.append("JA V A记事本是一个用来创建简单的文档的基本的文本编辑器.可用于打开查看TXT文档。