Java课程设计报告记事本源代码有流程图

合集下载

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简单记事本程序(源代码)课程设计

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课程设计报告记事本

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课程设计报告记事本程序

Java课程设计报告记事本程序

目录摘要................................................................................................................... 错误!未定义书签。

1设计分析......................................................................................................... 错误!未定义书签。

2.概要设计....................................................................................................... 错误!未定义书签。

2.1程序设计思路..................................................................................... 错误!未定义书签。

2.2程序模块说明图................................................................................. 错误!未定义书签。

2.3程序流程图......................................................................................... 错误!未定义书签。

2.4程序相关说明..................................................................................... 错误!未定义书签。

3.程序详细设计与分析................................................................................... 错误!未定义书签。

java记事本代码及实验报告

java记事本代码及实验报告

一、实验内容实验题目:记事本应用程序设计要求:1.分析WINDOWS “记事本程序”各主要菜单项的功能,画出详细的程序流程图2.设计完整的UI ,并实现“文件”菜单中“新建”“打开”“保存”“另存为”“退出”等 主要菜单项功能3.将各主要菜单项的程序流程图及主要代码写入实验报告二、实验过程1、写出程序的程序流程图,主要是各个功能的程序流程图 新建 打开NYN Y YN保存 另存N Y开始 isModifiedissave 调用保存函数初始化记事本 结束 开始是否打开文件 选择文件 将文件内容写入记事本 结束开始 开始 第一次保存 调用另存函数将记事本内容写入原文结束 弹出另存对话框 选择路径文件读入记事本内容设置记事本标题为文件名结束退出开始isModifiedY N调用保存函数结束2、根据程序流程图写出各个方法,新建,打开,保存,另存,退出。

三、实验结果(应先列出测试数据,要写明实验的现象,实验数据的处理等。

对于实验结果的表述,一般有三种方法:文字叙述(根据实验目的将实验结果系统化、条理化,用准确的专业术语客观地描述实验现象和结果,要有时间顺序以及各项指标在时间上的关系),图表(用表格或坐标图的方式使实验结果突出、清晰,便于相互比较,尤其适合于分组较多,且各组观察指标一致的实验,使组间异同一目了然;每一图表应有表目和计量单位,应说明一定的中心问题),屏幕截图(实验结果也可以是屏幕截图,充分表明实验的实际情况)。

在实验报告中,可任选其中一种或几种方法并用,以获得最佳效果。

)1、记事本界面布局2、功能描述a、新建:若记事本内容经过修改则提示保存;否则直接初始化记事本b、打开:选择打开的文件,将文件内容读出,写入记事本c、保存:若为第一次保存,调用另存函数;否则将文件内容存为新的记事本内容d、另存:选择另存路径,将记事本内容写入文件e、退出:若未保存或经过修改,则提示保存,调用保存函数,再退出;否则直接退出四、讨论与分析1、实验纠错:a、实验中,出现打开对话框出现两次的情况,即文件选择之后又弹出对话框,需要再选择一次,但是程序中并未出现两次调用。

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课程设计实验报告及全部源码流程图

课程设计一、实验目的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记事本程序课程设计报告

软件学院课程设计报告书课程名称面向对象课程设计设计题目记事本程序专业班级 xx学号 xx姓名 xx指导教师徐娇月201x年 6 月目录1 设计时间 (1)2 设计目的 (1)3设计任务 (1)4 设计内容 (1)需求分析 (1)需求说明 (1)功能需求 (1)概要设计 (2)程序设计思路 (2)程序运行环境及界面 (2)功能模块设计 (3)功能模块说明图 (3)自定义类及接口说明 (4)类中方法介绍 (5)异常处理 (10)程序运行与调试分析 (10)开始调试 (10)各菜单实现 (11)退出 (15)5 总结与展望 (16)程序源代码: (17)参考文献 (24)4.运行界面:如图4-1所示图4-1运行界面功能模块设计功能模块说明图首先创建一个名为NoteBook的类并继承Frame类实现监听接口作为最底层的容器(具体过程在“自定义类及接口说明”作说明)。

菜单栏中有“文件”、“编辑”、“作者”三项菜单,分别添加的相应的项,各实现其功能。

如图4-2所示图4-2功能模块说明图自定义类及接口说明类继承Dialog类实现ActionListene接口实现查找替换功能class MyFindDialog extends Dialog implements ActionListener{…}定义查找和替换的标签和文本域Label lFind=new Label("查找字符串");Label lReplace=new Label("替换字符串");TextField tFind=new TextField(10);TextField tReplace=new TextField(10);Button bFind=new Button("查找");Button bReplace=new Button("替换");TextArea ta;类继承Frame类实现ActionListener接口作为程序的整体框架class No te extends Frame implements ActionListener{…}定义菜单,菜单项,对话框等。

《Java》课程设计》记事本

《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毕业课程设计报告记事本程序

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程序编写一个记事本程序的设计报告

用Java程序编写一个记事本程序的设计报告学习中心(点):榆林子洲专业:计算机科学与技术层次:专升本姓名:张航批次: 112目录一、设计分析 (1)二、程序结构 (1)三、各模块的功能及程序说明 (2)1、类设计 (2)2、主要功能代码实现 (4)四、源程序 (9)五、操作方法 (20)六、试验结果 (20)七、设计体会 (22)编写一个记事本程序的设计报告一、设计要求1.用图形用户界面实现。

2.能实现编辑、保存、另存为、查找替换等功能。

二、程序结构流程图:图1基本流程图本Java文本编辑器功能设计如下:图2基本功能图三、各模块的功能及程序说明1、类设计(1)类MiniText ,包括initTextPane方法初始化面板,initMenu()方法初始化菜单,initAboutDialog()方法初始化关于对话框,initToolBar()方法初始化工具栏,initRightKey()方法初始化右键设置,等方法。

类成员如下:(2)类Loading (实现登陆)类成员如下:(3)类runtime (实现时间同步)类成员如下:(4)类MainFunction (包含主函数)类成员如下:2、主要功能代码实现(1)登陆界面:class Loading extends JWindow implements Runnable {Thread dluThread=null;private JProgressBar progress;public Loading() {setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));//设置光标为等待状态JPanel dlu = new JPanel(new BorderLayout());URL url = getClass().getResource("/images/loading.jpg");if(url != null){dlu.add(new JButton(new ImageIcon(url)), BorderLayout.CENTER);}progress = new JProgressBar(1,100);progress.setStringPainted(true);progress.setBorderPainted(true);progress.setBackground(Color.white);progress.setForeground(Color.green);dlu.add(progress,BorderLayout.SOUTH);setContentPane(dlu); //设置窗口属性为登陆面板属性Dimension screen = getToolkit().getScreenSize();pack(); //显示登陆界面setLocation(screen.width/4,screen.height/4); //设置登陆界面始终在屏幕中间显示}public void start(){// this.toFront();dluThread=new Thread(this);dluThread.start(); }public void run(){show();try {for (int i=0;i<100;i++){Thread.sleep(100);progress.setValue(progress.getValue() + 1);progress.setString("欢迎进入迷你编辑,请稍后... ... "+i+"%"); } }catch (Exception ex) {ex.printStackTrace(); }dispose();//关闭登陆界面} }(2).时间标签:class runtime extends JButton implements Runnable{Thread datetime=null;public runtime(){}public void run(){for(;;){//java.util.Date timeer=new java.util.Date();Calendar now=Calendar.getInstance();int year1=now.get(Calendar.YEAR);int month1=now.get(Calendar.MONTH);int day1=now.get(Calendar.DAY_OF_MONTH);int hour1=now.get(Calendar.HOUR);int minute1=now.get(Calendar.MINUTE);int sec=now.get(Calendar.SECOND);setText(year1+"年"+month1+"月"+day1+"日"+hour1+":"+minute1+":"+sec);//System.out.println(now.get(Calendar.DAY_OF_MONTH)-60);try{Thread.currentThread().sleep(1000);}catch(InterruptedException e){} } }}(3)右键的实现:void initRightKey (){filepopup=new JPopupMenu();uundo=new JMenuItem("撤消(U)");uundo.setMnemonic('U');ccut=new JMenuItem("剪切(T)");ccut.setMnemonic('T');ccopy=new JMenuItem("复制(C)");ccopy.setMnemonic('C');ppaste=new JMenuItem("粘贴(V)");ppaste.setMnemonic('V');ddelete=new JMenuItem("删除(D)");ddelete.setMnemonic('D');sselectall=new JMenuItem("全选(A)");sselectall.setMnemonic('A');filepopup.add(uundo);filepopup.addSeparator();filepopup.add(ccut);filepopup.add(ccopy);filepopup.add(ppaste);filepopup.add(ddelete);filepopup.addSeparator();filepopup.add(sselectall);uundo.addActionListener(action);ccut.addActionListener(action);ccopy.addActionListener(action);ppaste.addActionListener(action);ddelete.addActionListener(action);sselectall.addActionListener(action);text.addMouseListener(new MouseAdapter(){public void mousePressed(MouseEvent event){checkForTriggerEvent(event);}public void mouseReleased(MouseEvent event){checkForTriggerEvent(event);}public void checkForTriggerEvent(MouseEvent event){if(event.isPopupTrigger()){filepopup.show(event.getComponent(),event.getX(),event.getY());} }}); }(4)打开、保存、复制、粘贴、撤销等功能事件响应实现://事件处理ActionListener action = new ActionListener(){public void actionPerformed(ActionEvent e){ JMenuItem mi = (JMenuItem)e.getSource();String id = mi.getText();if(id.equals("新建")){Date date=new Date();text.setText(date.toString());file = null;}else if(id.equals("打开...")){if(file != null)filechooser.setSelectedFile(file);//为用户选择文件提供了一种简单的机制int returnVal = filechooser.showOpenDialog(MiniText.this);if(returnVal == JFileChooser.APPROVE_OPTION){file = filechooser.getSelectedFile();openFile(); } }else if(id.equals("保存...")){if(file != null)filechooser.setSelectedFile(file);int returnVal = filechooser.showSaveDialog(MiniText.this);if(returnVal == JFileChooser.APPROVE_OPTION){file = filechooser.getSelectedFile();saveFile();JOptionPane.showMessageDialog(null,"已保存");}}else if(id.equals("另存为")){if(file != null)filechooser.setSelectedFile(file);int returnVal = filechooser.showSaveDialog(MiniText.this);if(returnVal == JFileChooser.APPROVE_OPTION){file = filechooser.getSelectedFile();saveFile();JOptionPane.showMessageDialog(null,"已保存"); } } else if(id.equals("打印")){prt.printDialog();}else if(id.equals("打印页面设置")){try {prt.print();} catch(Exception ew){JOptionPane.showMessageDialog(null,"打印出错!","错误",JOptionPane.ERROR_MESSAGE); } }else if(id.equals("退出")){ System.exit(0); }else if(id.equals("剪切")||id.equals("剪切(T)")){ text.cut();}else if(id.equals("复制")||id.equals("复制(C)")){text.copy();}else if(id.equals("粘贴")||id.equals("粘贴(V)")){text.paste(); }else if(id.equals("删除")||id.equals("删除(D)")){text.replaceSelection(""); }else if(id.equals("选择全部")||id.equals("全选(A)")){text.selectAll();}else if(id.equals("字体颜色...")){color = JColorChooser.showDialog(MiniText.this,"字体颜色设置",color);text.setForeground(color);} else if(id.equals("自动换行")){ }else if(id.equals("撤销")||id.equals("撤消(U)")){text.setText("");text.selectAll();}else if(id.equals("查找")){String find="查找";find=JOptionPane.showInputDialog("查找:"); }else if(id.equals("时间")){time.setFont(new Font("Times New Roman",Font.PLAIN,12));text.insertComponent(time); }else if(id.equals("系统记事本")){try{String command = "notepad.exe";Process child = Runtime.getRuntime().exec(command);//从系统进程中调用记事本}catch (IOException ex) { }}else if(id.equals("系统计算器")){try{String command = "calc.exe";Process child = Runtime.getRuntime().exec(command);//调用系统计算器}catch (IOException ex) { }}else if(id.equals("关于")){about.setSize(250,150);about.show();} } };四、源程序import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.io.*;public class Notepad extends JFrame {// 系统组件声明private JMenuBar menuBar = new JMenuBar();private JEditorPane content = new JEditorPane();private JScrollPane scroll = new JScrollPane(content);private JFileChooser filechooser = new JFileChooser() ;private BorderLayout bord = new BorderLayout();private JLabel statusBar = new JLabel();private JPanel pane = new JPanel();private File file = null;// 定义文件菜单private JMenu fileMenu = new JMenu();private JMenuItem newMenuItem = new JMenuItem();private JMenuItem openMenuItem = new JMenuItem();private JMenuItem saveMenuItem = new JMenuItem();private JMenuItem saveAsMenuItem = new JMenuItem();private JMenuItem pageSetupMenuItem = new JMenuItem();private JMenuItem printMenuItem = new JMenuItem();private JMenuItem exitMenuItem = new JMenuItem();// 定义风格菜单private JMenu styleMenu = new JMenu();private ButtonGroup styleMenuGroup = new ButtonGroup();private JRadioButtonMenuItem javaStyleMenuItem = new JRadioButtonMenuItem(); private JRadioButtonMenuItem metalStyleMenuItem = new JRadioButtonMenuItem(); private JRadioButtonMenuItem windowsStyleMenuItem = new JRadioButtonMenuItem();// 定义帮助菜单private JMenuItem aboutMenuItem = new JMenuItem();private JMenuItem helpTopicMenuItem = new JMenuItem();private JMenu helpMenu = new JMenu();// 构造函数public Notepad(){initComponents();}private void initComponents(){// 添加子菜单项到文件菜单fileMenu.setText("\u6587\u4ef6 (F)");newMenuItem.setText("新建(N)Ctrl+N");openMenuItem.setText("打开(O)...Ctrl+O");saveMenuItem.setText("保存(S)Ctrl+S");saveAsMenuItem.setText("另存为(A)...");pageSetupMenuItem.setText("页面设置(U)...");printMenuItem.setText("打印(P)...Ctrl+P");exitMenuItem.setText("退出");fileMenu.add(newMenuItem);fileMenu.add(openMenuItem);fileMenu.add(saveMenuItem);fileMenu.add(saveAsMenuItem);fileMenu.addSeparator();fileMenu.add(pageSetupMenuItem);fileMenu.add(printMenuItem);fileMenu.addSeparator();fileMenu.add(exitMenuItem);// 添加子菜单项到风格菜单styleMenu.setText("风格(S)");javaStyleMenuItem.setText("Java默认");metalStyleMenuItem.setText("Metal风格");windowsStyleMenuItem.setText("Windows风格");styleMenuGroup.add(javaStyleMenuItem);styleMenuGroup.add(metalStyleMenuItem);styleMenuGroup.add(windowsStyleMenuItem);styleMenu.add(javaStyleMenuItem);styleMenu.add(metalStyleMenuItem);styleMenu.add(windowsStyleMenuItem);// 添加子菜单项到帮助菜单helpMenu.setText("帮助(H)");helpTopicMenuItem.setText("帮助主题(H)");aboutMenuItem.setText("关于记事本(A)");helpMenu.add(helpTopicMenuItem);helpMenu.addSeparator();helpMenu.add(aboutMenuItem);// 定义文件菜单下的事件监听newMenuItem.addActionListener(new newMenuItem_actionAdapter(this)); openMenuItem.addActionListener(new openMenuItem_actionAdapter(this)); saveMenuItem.addActionListener(new saveMenuItem_actionAdapter(this)); saveAsMenuItem.addActionListener(new saveAsMenuItem_actionAdapter(this)); pageSetupMenuItem.addActionListener(new pageSetupMenuItem_actionAdapter(this)); printMenuItem.addActionListener(new printMenuItem_actionAdapter(this)); exitMenuItem.addActionListener(new exitMenuItem_actionAdapter(this));// 定义风格菜单下的事件监听javaStyleMenuItem.addActionListener(new javaStyleMenuItem_actionAdapter(this)); metalStyleMenuItem.addActionListener(new metalStyleMenuItem_actionAdapter(this)); windowsStyleMenuItem.addActionListener(new windowsStyleMenuItem_actionAdapter(this));// 定义帮助菜单下的事件监听helpTopicMenuItem.addActionListener(new helpTopicMenuItem_actionAdapter(this));aboutMenuItem.addActionListener(new aboutMenuItem_actionAdapter(this));// 填加菜单到菜单栏menuBar.add(fileMenu);menuBar.add(styleMenu);menuBar.add(helpMenu);// 对主窗口的一些设置this.setDefaultCloseOperation(EXIT_ON_CLOSE);this.setTitle("无标题- \u8bb0\u4e8b\u672c");this.setSize(640,480);setJMenuBar(menuBar);pane.setLayout(bord);pane.add("Center",scroll);setContentPane(pane);}// 定义新建菜单项方法public void newMenuItemActionPerformed(ActionEvent evt){file = null;if(!("".equals(content.getText()))){Object[] options = { "是(Y)", "否(N)","取消" };int s = JOptionPane.showOptionDialog(null, "\u6587\u4ef6 "+getTitle()+" \u7684\u6587\u5b57\u5df2\u7ecf\u6539\u53d8\u3002\n\u60f3\u4fdd\u5b58\u6587\u4ef6\u5417\uff 1f", "\u8bb0\u4e8b\u672c",JOptionPane.DEFAULT_OPTION, JOptionPane.W ARNING_MESSAGE,null, options, options[0]);switch(s){case 0:int returnVal=filechooser.showSaveDialog(this);if(returnVal == JFileChooser.APPROVE_OPTION) {file=filechooser.getSelectedFile();try{FileWriter fw=new FileWriter(file);fw.write(content.getText());setTitle(filechooser.getSelectedFile().getName()+" - \u8bb0\u4e8b\u672c");fw.close();}catch(Exception e){e.printStackTrace();}break;}case 1:content.setText("");setTitle("无标题- \u8bb0\u4e8b\u672c");}}}// 定义打开菜单项方法public void openMenuItemActionPerformed(ActionEvent evt){try {file = null;int returnVal = filechooser.showOpenDialog(this);if(returnVal == JFileChooser.APPROVE_OPTION){file = filechooser.getSelectedFile();FileReader fr = new FileReader(file);int len = (int)file.length();char[] buffer = new char[len];fr.read(buffer,0,len);fr.close();content.setText(new String(buffer));}}catch(Exception e){e.printStackTrace();}}// 定义退出菜单项方法public void exitMenuItem_actionPerformed(ActionEvent e){if(!("".equals(content.getText()))){Object[] options = { "是(Y)", "否(N)","取消" };int s = JOptionPane.showOptionDialog(null, "文件的文字已经改变。

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章引言 (1)1.1背景 (1)1.2课程设计容 (1)第2章记事本系统 (2)2.1记事本概述 (2)2.2 记事本的任务及目的 (3)2.3本章小结 (3)第3章记事本的设计 (3)3.1系统需求分析 (4)3.2系统开发及运行环境.......................................... 错误!未定义书签。

3.3记事本总体结构(流程图) (4)3.4 记事本系统各模块介绍 (5)3.5本章小结 (5)第4章系统的具体实现 (6)4.1窗口设计 (6)4.2程序功能设计及调试运行 (7)4.2.1在下拉菜单中加入子菜单并进行监听,分别实现对文件的操作功能。

点击不同菜单项时,显示不同接口。

(8)4.2.2加入工具栏的功能键,通过工具栏实现对文本的基本操作。

(11)4.3本章小结 (20)第5章改进部分 (20)5.1加登陆界面 (20)5.1.1登陆界面设计 (20)5.1.2 系统主界面 (26)第6章结束语 (27)附录源代码 (29)第1章引言1.1 背景在文本编辑器出现前,人们用打孔机把计算机文字打到穿孔卡片上。

文字存放于一个装着这样的薄卡片的盒子里,可以用读卡器来阅读它。

第一个文本编辑器是一种行编辑器,它运行在打字机型的终端上,这种编辑器并不具备在窗口和屏幕中显示的功能。

它包含了一些非常短的命令(为了减少打字量)。

其中一个命令能够把文件的指定部分通过打字机打印出来。

编辑光标是想象中的一个插入点,通过特殊命令,可以把它移动到特定容字符串所在的行。

随后,容字符串又被扩展成正则表达式。

如果想看到文件的变化,你需要把它打印出来。

相对于穿孔机来说,人们认为这种基于行的文本编辑器具有革命性的进步。

如果没有它,用户就需要把那些处理文本的命令打成专用的卡片,并在编辑文件时使用这些卡片。

当带有显示屏的计算机终端出现后,基于显示屏的文本编辑器开始流行起来。

最早的全屏编辑器中,有一种叫做O26,它是于1967年为CDC 6000系列机器的操作控制台而作的。

记事本_java课设_含可运行程序

记事本_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 的子类,从键盘向记事本输入数据的类。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Java课程设计报告题目:简单记事本程序的设计年级专业:计算机科学与技术学号:学生姓名:指导老师:完成时间: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.源程序清单.............................................................................................. 错误!未定义书签。

6.课程设计总结.. (17)参考文献 (17)简单记事本程序的设计前言Java的前身是Oak,它一开始只是被应用于消费性电子产品中。

后来它的开发者们发现它还可以被用于更大范围的Internet上。

1995年,Java语言的名字从Oak编程了Java。

1997年J2SE1.1发布。

1998年J2SE1.2发布,标志Java2的诞生。

十多年来,Java编程语言及平台成功地运用在网络计算及移动等各个领域。

Java的体系结构由Java语言、Java class、Java API、Java虚拟机组成。

它具有简单、面向对象、健壮、安全、结构中立、可移植和高效能等众多优点。

Java支持多线程编程,Java运行时系统在多线程同步方面具有成熟的解决方案。

Java的平台标准有Java ME,Java SE和Java EE。

Java发展到今天,它的卓越成就及在业界的地位毋庸置疑。

目前在众多的支持Java的开发工具中主要的7有Java Development Kit,NetBeans,Jcreator,JBuilder,JDeveloper和Eclipse等。

其中Java Development Kit 简称JDK是大多开发工具的基础。

以上的每种开发工具都有优缺点,对于开发者来说,重要的是要根据自己的开发规模、开发内容和软硬件环境等因素来选择一种合适的开发工具。

在本程序设计中,因为需要开发的是记事本程序,规模较小,内容较少,所以选择了适合初学者使用的JCreator开发工具。

2.3模块说明图在图1中,首先创建一个名为mynotepad的类并继承JFrame类作为最底层的容器。

别是初始化容器(initTextContent)、初始化组件(initMenu、initAboutDialog)、设置事件监听器。

2.4程序流程图图33.5.异常处理在运行程序代码是有可能会产生异常情况或异常事件,为了避免这种情况,就需要在程序中用到Java异常处理机制。

本程序中选用的异常处理机制是try,catch。

捕获处理异常的第一步是用try选定要监控的异常范围,try后跟随catch代码块。

saving(){try{FileWriter Writef=new FileWriter(file);Writef.write(content.getText());Writef.close();}catch(Exception e){e.printStackTrace();}}void unfold(){try{FileReader Readf=new FileReader(file);int len=(int)file.length();char []buffer=new char[len];Readf.read(buffer,0,len);Readf.close();content.setText(new String(buffer));}catch(Exception e){e.printStackTrace();}}第 5 页共11 页6.课程设计总结经过差不多两个星期的努力,基本上完成我的Java课程设计—简单的记事本程序,也基本上实现了我在需求分析时所预期的功能。

通过这次的课程设计,使将我从书本上学习到的理论知识用到了实践上,从而进一步巩固和丰富了我所学过的知识,让我更深层次地认识到Java及其强大的功能。

同时,做这门课程设计也进一步加强了我的动手能力。

为了完成好这次课程设计,我提前做了较多的准备,一边上网查找相关资料,另一方面查阅相关书籍。

在这过程中也无形中锻炼了我的思维分析、遇到问题及想方设法通过各种途径解决问题的能力。

但是,设计过程中也存在一些问题,本来一开始想给这个记事本程序加上一张背景图片,以及添加字体设置功能,但是由于本人知识浅陋以及各种其他原因,使得这些想法没有实现,这是这次课程设计的一点遗憾。

参考文献[1].孙全党王吴迪赵枫朝,Java程序设计应用教程,电子工业出版社,2006.2[2].雷之宇,Java项目开发实践—网络篇,中国铁道出版社,2005.5[3].赵玉阳,Java从入门到精通,清华大学出版社,2006.8[4].李茏怡,Java编程实例讲解,高等教育出版社,2005.11完整代码:import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.io.*;class mynotepad extends JFrame{File file=null;Color color=Color.red;mynotepad(){initTextContent();initMenu();initAboutDialog();}void initTextContent(){getContentPane().add(new JScrollPane(content));}JTextPane content=new JTextPane(); JFileChooser openfile=new JFileChooser(); JColorChooser opencolor=new JColorChooser(); JDialog about=new JDialog(this);JMenuBar menu=new JMenuBar();JMenu[] menus=new JMenu[]{new JMenu("文件"),new JMenu("编辑"),new JMenu("关于")};JMenuItem optionofmenu[][]=new JMenuItem[][]{{ new JMenuItem("新建"),new JMenuItem("打开"),new JMenuItem("保存"),new JMenuItem("退出")},{new JMenuItem("复制"),new JMenuItem("剪切"),new JMenuItem("粘贴"),new JMenuItem("颜色")},{第7 页共11 页new JMenuItem("关于")}};void initMenu(){for(int i=0;i<menus.length;i++){menu.add(menus[i]);for(int j=0;j<optionofmenu[i].length;j++){menus[i].add(optionofmenu[i][j]);optionofmenu[i][j].addActionListener( action );}}this.setJMenuBar(menu);}ActionListener action=new ActionListener(){public void actionPerformed(ActionEvent e){String name = e.getActionCommand();JMenuItem MI=(JMenuItem)e.getSource();if("新建".equals(name)){content.setText("");file=null;}else if("打开".equals(name)){if(file !=null)openfile.setSelectedFile(file);int returnVal=openfile.showOpenDialog(mynotepad.this);if(returnVal==JFileChooser.APPROVE_OPTION){file=openfile.getSelectedFile();unfold();}}else if("保存".equals(name)){if(file!=null) openfile.setSelectedFile(file);int returnVal=openfile.showSaveDialog(mynotepad.this);if(returnVal==JFileChooser.APPROVE_OPTION){file=openfile.getSelectedFile();saving();}}else if("退出".equals(name)){mynotepad f=new mynotepad();int s=JOptionPane.showConfirmDialog(f,"退出?","退出",JOptionPane.YES_NO_OPTION);if(s==JOptionPane.YES_OPTION)System.exit(0);}else if("剪切".equals(name)){content.cut();}else if("复制".equals(name)){content.copy();}else if("粘贴".equals(name)){content.paste();}else if("颜色".equals(name)){color=JColorChooser.showDialog(mynotepad.this,"",color);content.setForeground(color);}else if("关于".equals(name)){about.setSize(300,150);about.show();}}};第9 页共11 页void saving(){try{FileWriter Writef=new FileWriter(file);Writef.write(content.getText());Writef.close();}catch(Exception e){e.printStackTrace();}}void unfold(){try{FileReader Readf=new FileReader(file);int len=(int)file.length();char []buffer=new char[len];Readf.read(buffer,0,len);Readf.close();content.setText(new String(buffer));}catch(Exception e){e.printStackTrace();} }void initAboutDialog(){about.setLayout(new GridLayout(3,1));about.getContentPane().setBackground(Color.white);about.getContentPane().add(new JLabel("我的记事本程序"));about.getContentPane().add(new JLabel("制作者:liuhui"));about.getContentPane().add(new JLabel("2010年6月"));about.setModal(true);about.setSize(100,100);about.setLocation(250,170);};}public class Notepad{public static void main(String args[]){mynotepad noted=new mynotepad();noted.addWindowListener(new WindowAdapter(){});noted.setTitle("我的记事本程序");noted.setSize(640,320);noted.show();noted.setLocation(150,100);}}第11 页共11 页。

相关文档
最新文档