java 记事本程序设计报告
java记事本实验报告doc

java记事本实验报告篇一:JAVA记事本实验报告(含源代码运行结果)嘉应学院计算机学院系/班别:指导老师:课程名称:实验内容:学生学号:学生姓名:实验地点:实验类型:实验时间:实验报告计算机学院1203班 Java语言程序设计用Java编写记事本第十四周至第十七周实验要求:能够通过使用JDK1.6安装开发windows 桌面应用程序。
实验目的:熟悉事件触发和事件监听以及组件和容器的界面安排,能够用java设计一个仿windows的标准型记事本。
实验过程描述:一、实验环境:网络实验室二、实验设备:PC机, 网络三、实验平台:winxp. JDK1.6过程描述:1.首先,安装JDK1.62.打开开始-》运行->输入cmd进入dos->cd 路径(原程序的路径)->javac NotepadTest.java(编绎)->java NotepadTest运行四、编写程序:import java.io.File;import .URLClassLoader;import .URL;import ng.InterruptedException;import java.io.FileInputStream;import java.io.FileOutputStream; import java.io.PrintStream;import java.util.Scanner;import java.util.Date;import java.util.Iterator;import java.util.List;import java.text.SimpleDateFormat; import javax.swing.JButton;import javax.swing.JCheckBox;import javax.swing.JCheckBoxMenuItem; import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JPanel;import javax.swing.JTextArea;import javax.swing.JMenu;import javax.swing.JMenuBar;import javax.swing.ImageIcon;import javax.swing.JScrollPane; import javax.swing.JToolBar; import javax.swing.JMenuItem; import javax.swing.KeyStroke; import javax.swing.JPopupMenu; import javax.swing.JFileChooser; import javax.swing.JOptionPane; import javax.swing.JFileChooser; import javax.swing.JColorChooser; import javax.swing.JDialog; import javax.swing.JTextField; import javax.swing.BorderFactory; import javax.swing.JList;import javax.swing.JComboBox; import javax.swing.UIManager; import javax.swing.JRadioButton; import javax.swing.JToggleButton;import javax.swing.ButtonGroup;import javax.swing.TransferHandler;import javax.swing.border.Border;import javax.swing.border.TitledBorder;import javax.swing.text.Document;import javax.swing.undo.UndoManager;import javax.swing.undo.UndoableEdit;import javax.swing.event.UndoableEditEvent; import javax.swing.event.UndoableEditListener; import javax.swing.event.DocumentListener;import javax.swing.event.DocumentEvent;import javax.swing.JComponent;import java.awt.Font;import java.awt.Window;import java.awt.Event;import java.awt.MediaTracker;import java.awt.Color;import java.awt.event.KeyListener;import java.awt.BorderLayout;import java.awt.FlowLayout;import java.awt.GridLayout;import java.awt.Container;import java.awt.Toolkit;import java.awt.Image;import java.awt.GraphicsEnvironment;import java.awt.datatransfer.*;import java.awt.datatransfer.DataFlavor;import java.awt.datatransfer.StringSelection; import java.awt.datatransfer.Clipboard;import java.awt.datatransfer.Transferable;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;import java.awt.event.WindowListener;import java.awt.event.KeyListener;import java.awt.event.KeyAdapter;import java.awt.event.ActionListener;import java.awt.event.MouseListener;import java.awt.event.MouseEvent;import java.awt.event.MouseAdapter;import java.awt.event.ActionEvent;class MyTransferHandler extends TransferHandler { JTextArea text=null;public MyTransferHandler(JTextArea text){this.text=text;}public boolean canImport(JComponent c, DataFlavor[] flavors)//在拖放操作期间重复调用此方法,判断是否可以输入{for (int i = 0; i if (DataFlavor.javaFileListFlavor.equals(flavors[i])){ return true;}}return false;}public boolean importData(JComponent com,Transferable t){try{篇二:记事本的设计与实现Java版实验报告报告编号:第九组JAVA课程设计报告记事本的设计与实现学生姓名:指导教师:所在系:电子信息系所学专业:计算机科学与技术年级:XX年12月目录摘要 ................................................ ................................................... .. (1)第1章前言 ................................................ ................................................... . (2)1.1研究背景................................................. ................................................... . (2)1.2 开发意义................................................. ................................................... (2)1.3 本文的组织结构 ................................................ ................................................... . (2)第2章需求分析 ................................................ ................................................... . (3)2.1系统功能分析 ................................................ ................................................... (3)2.2 设计目标................................................. ................................................... (4)第3章概要设计 ................................................ ................................................... . (5)第4章详细设计 ................................................ ................................................... ..................... (7)4.1文件模块的详细设计 ................................................ ................................................... (7)4.1.1新建模块的详细设计 ................................................ . (7)4.1.2打开模块的详细设计 ................................................ . (8)4.1.3保存、另存模块的详细设计 ................................................ . (8)4.1.4退出模块的详细设计 ................................................ . (9)4.2编辑模块的详细设计 ................................................ ................................................... (9)4.2.1撤销模块的详细设计 ................................................ . (9)4.2.2剪切模块的详细设计 ................................................ .. (10)4.2.3复制模块的详细设计 ................................................ .. (11)4.2.4粘贴模块的详细设计 ................................................ (11)4.2.5删除模块的详细设计 ................................................ .. (12)4.2.6全选模块的详细设计 ................................................ .. (12)4.2.7查找、替换模块的详细设计 ................................................ .. (13)4.3格式模块的详细设计 ................................................ ................................................... . (14)第5章系统测试 ................................................ ................................................... (15)5.1 程序主界面.................................................................................................... (15)5.2文件界面................................................. ................................................... .. (15)5.3编辑菜单................................................. ................................................... .. (17)第6章小结 ................................................ ................................................... .. (27)参考文献 ................................................ ................................................... . (27)摘要本组课程设计的课题是“记事本的设计与实现”,设计的记事本系统应具有新建、打开、保存、剪切、复制、粘贴、查找、字体设置等基本功能,满足用户对文件的处理,文本文档的编辑和字体的设置等要求。
java课程设计报告记事本

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

一、实验内容实验题目:记事本应用程序设计要求: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记事本实验报告(含源代码运行结果)嘉应学院计算机学院系/班别:指导老师:课程名称:实验内容:学生学号:学生姓名:实验地点:实验类型:实验时间:实验报告计算机学院1203班 Java语言程序设计用Java编写记事本第十四周至第十七周实验要求:能够通过使用JDK1.6安装开发windows 桌面应用程序。
实验目的:熟悉事件触发和事件监听以及组件和容器的界面安排,能够用java设计一个仿windows的标准型记事本。
实验过程描述:一、实验环境:网络实验室二、实验设备:PC机, 网络三、实验平台:winxp. JDK1.6过程描述:1.首先,安装JDK1.62.打开开始-》运行->输入cmd进入dos->cd 路径(原程序的路径)->javac NotepadTest.java(编绎)->java NotepadTest运行四、编写程序:import ;import ;import ;import ;import ;import ;import ;import ;import ;import ;import ;import ;import ;import ;import ;import ; import ; import ; import ; import ; import ; import ; import ; import ; import ; import ; import ; import ; import ; import ; import ; import ; import ; import ; import ; import ;import ;import ;import ;import ;import ;import ;import ;import ;import ; import ; import ; import ;import ;import ;import ;import ;import ;import ;import ;import ;import ;import ;import ;import ;import ;import ;import ;import ;import ; import ;import ;import ;import ;import ;import ;import ;import ;import ;import ;import ;import ;import ;class MyTransferHandler extends TransferHandler { JTextArea text=null;public MyTransferHandler(JTextArea text){this.text=text;}public boolean canImport(JComponent c, DataFlavor[] flavors)//在拖放操作期间重复调用此方法,判断是否可以输入{for (int i = 0; i if (return true;}}return false;}public boolean importData(JComponent com,Transferable t){try{篇二:记事本的设计与实现Java版实验报告报告编号:第九组JAVA课程设计报告记事本的设计与实现学生姓名:指导教师:所在系:电子信息系所学专业:计算机科学与技术年级:XX年12月目录摘要 ................................................ ................................................... .. (1)第1章前言 ................................................ ................................................... . (2)1.1研究背景................................................. ................................................... . (2)1.2 开发意义................................................. ................................................... (2)1.3 本文的组织结构 ................................................ ................................................... . (2)第2章需求分析 ................................................ ................................................... . (3)2.1系统功能分析 ................................................ ................................................... (3)2.2 设计目标................................................. ................................................... (4)第3章概要设计 ................................................ ................................................... . (5)第4章详细设................................................... ..................... (7)4.1文件模块的详细设计 ................................................ ................................................... (7).............................................. (7).............................................. (8).............................................. (8).............................................. (9)4.2编辑模块的详细设计 ................................................ ................................................... (9).............................................. (9) (10).............................................. . (11).............................................. . (11).............................................. . (12).............................................. . (12).............................................. . (13)4.3格式模块的详细设计 ................................................ ................................................... . (14)第5章系统测试 ................................................ ................................................... (15)5.1 程序主界面.................................................................................................... (15)5.2文件界面................................................. ................................................... .. (15)5.3编辑菜单................................................. ................................................... .. (17)第6章小结 ................................................ ................................................... .. (27)参考文献 ................................................ ................................................... . (27)摘要本组课程设计的课题是“记事本的设计与实现”,设计的记事本系统应具有新建、打开、保存、剪切、复制、粘贴、查找、字体设置等基本功能,满足用户对文件的处理,文本文档的编辑和字体的设置等要求。
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课程设计报告题目:简单记事本程序的设计年级专业: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 虚拟机组成。
它具有简单、面向对象、健壮、安全、结构中立、可移植和高效能等众多优点。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Xxx学校JAVA程序设计课程设计报告课题: 记事本姓名:学号:同组姓名:专业班级:指导教师:设计时间目录一、系统描述 (3)二、分析与设计 (4)1. 分析 (4)2. 功能模块划分 (4)3. 功能模块流程图 (5)4. 各模块的关键代码 (5)三、系统测试 (7)四、心得体会 (10)五、参考文献 (10)六、附录 (11)一、系统描述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是大多开发工具的基础。
以上的每种开发工具都有优缺点,对于开发者来说,重要的是要根据自己的开发规模、开发内容和软硬件环境等因素来选择一种合适的开发工具。
在本程序设计中,因为需要开发的是记事本程序,规模较小,内容较少,所以选择了适合初学者使用的eclipse开发工具。
二、分析与设计1. 分析现在网络上各种文档编辑器数不胜数,有EmEditor ,UEStudio ,GridinSoft Notepad ,Notepad++,win32pad ,SkimEdit,UniRed, xint 。
功能也是应有尽有,有能改变字体的,有能改变文字颜色的。
但是,这些软件又存在各种各样的瑕疵或问题:有的文件体积相对于一般文字编辑来说太大;有的功能太繁杂,使初级使用者一时难以掌握。
仅从日常应用方面来说,一个文本编辑器只需一些简单实用的功能就够了。
本程序设计就是依照这样一种使用需要设计了一个简单的记事本程序。
2. 功能模块划分程序要构建的记事本程序参照了Windows操作系统的记事本工具,其功能有以下几个方面:第一部分菜单栏(1)菜单中有“文件”,“编辑”,“设置”,“关于”四个主菜单。
(2)“文件”有“打开”“保存”“退出”三个子菜单:分别用于打开文件,保存文件,退出记事本。
(3)“编辑”中有“撤销”,“恢复”,“剪切”“复制”“粘贴”“剪贴”,“删除”六个子菜单:用于剪切文字,复制文字,粘贴文字等一系列操作。
(4)“设置”中有“自动换行”,“字体颜色”,“恢复设置”三个子菜单,分别用于设置是否自动换行,字体颜色等。
(5)“关于”菜单中有关于记事本程序的制作日期,作者等信息第二部分文本输入区用到了“JTextArea”,给用户输入文字.第三部分状态栏此栏主要功能是显示出字符总长、总行数、当前行、当前列。
第四部分右键菜单此部分为用户设计右键操作,方便用户进行一系列的编辑操作,增强本记事本的用户体验性能。
3. 功能模块流程图4. 各模块的关键代码1构造函数创建窗口界面主菜单,子菜单,并未每个子菜单添加监听器 public Note(){jf=new JFrame("无标题-记事本");jf.setSize(850,550);jf.setLocation(100, 100);mb=new JMenuBar();mb.setBackground(new Color(236,233,216));jf.setJMenuBar(mb);addMenu();addTextArea();addStatusBar();addPopupMenu();jf.setVisible(true);jf.addWindowListener(new WindowAdapter() {public void windowClosing(WindowEvent e) {Handler h=new Handler();h.windowExit();// super.windowClosing(e);}});}2 添加右键菜单并为其添加监听器private void addPopupMenu() { //右键菜单final PopupMenu jpm=new PopupMenu();jpm.setFont(new Font("宋体",0,12));for(int i=0;i<jpm_name.length;i++){MenuItem jpim=new MenuItem(jpm_name[i]);jpm.add(jpim);jpim.addActionListener(new PopupAction()); //创建右键监听}jf.add(jpm);ta.addMouseListener(new MouseAdapter(){public void mouseClicked(MouseEvent e){if(e.getButton()==MouseEvent.BUTTON3){jpm.show(ta,e.getX(), e.getY()); //设置显示区域}}});}3 两个事件处理类,分别是 Handler.java、PopupAction.java三、系统测试 1打开程序2 点击主菜单3输入文字下方有显示状态栏4 点击子菜单------关于- ------打开-------退出------设置字体颜色5 右键菜单四、心得体会此次课程设计有我们寝室一起共同合作完成,花费的时间整整两天。
在这期间我们共同协作,互帮互助取得了很好的效率,也为我们构建和谐寝室,学习气氛良好寝室做出了一定的贡献。
在这期间我领略到了团队协作的重要性,也看到了团队合作的高效率性。
还有通过这次试验我学习到了其他室友的一些学习方法,比如追查API,如何在短时间内学习一个自己不懂的东西那就是利用好所有的搜索引擎。
总之此次课程设计不仅在知识少我是长了见识,在生活上我也长了见识。
五、参考文献a.黄晓东等编著 Java课程设计案例精编(第二版)[M].北京:中国水利水电出版社,2007b.李兴华等编著 Java开发实战经典Java开发实战经典北京:清华大学出版社,2009C.李尊朝苏军 Java程序设计(第二版) 图形用户界面设计、Swing组件中国铁道出版社,2007六、附录public class Note{private JMenu jmenu;private JMenuBar mb;private JMenuItem jmi;private static JTextArea ta;private static JFrame jf;private static UndoManager um;private static JLabel jl1;private static JLabel jl2;private static JToolBar jb;private String[] menu_name=new String[] //菜单{"文件","编辑","设置","关于"};private String[][] menu_item=new String[][]{ //子菜单{"打开","保存","退出"},{"撤销","恢复","复制","粘贴","剪切","删除"},{"自动换行","字体颜色","恢复默认"},{"关于记事本"}};private String jpm_name[]={ //右键菜单"撤销","恢复","复制","粘贴","剪切","删除"};public Note(){jf=new JFrame("无标题-记事本");jf.setSize(850,550);jf.setLocation(100, 100);mb=new JMenuBar();mb.setBackground(new Color(236,233,216));jf.setJMenuBar(mb);addMenu(); //添加菜单addTextArea(); //添加文本输入区addStatusBar(); //添加状态栏addPopupMenu(); //添加右键菜单jf.setVisible(true);jf.addWindowListener(new WindowAdapter() { //监听关闭窗口动作public void windowClosing(WindowEvent e) {Handler h=new Handler();h.windowExit();// super.windowClosing(e);}});}private void addPopupMenu() { //右键菜单final PopupMenu jpm=new PopupMenu();jpm.setFont(new Font("宋体",0,12));for(int i=0;i<jpm_name.length;i++){MenuItem jpim=new MenuItem(jpm_name[i]);jpm.add(jpim);jpim.addActionListener(new PopupAction()); //创建右键监听}jf.add(jpm);ta.addMouseListener(new MouseAdapter(){public void mouseClicked(MouseEvent e){if(e.getButton()==MouseEvent.BUTTON3){jpm.show(ta,e.getX(), e.getY()); //设置显示区域}}});}private void addTextArea() {ta=new JTextArea();ta.addMouseListener(new MouseHandler());ta.addKeyListener(new MouseHandler() );um=new UndoManager();ta.getDocument().addUndoableEditListener(um);JScrollPane scroll = new JScrollPane(ta);scroll.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEED ED); //自动出现水平动条scroll.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED); //自动出现竖滚动条jf.getContentPane().add(scroll,BorderLayout.CENTER);}private void addMenu() {for(int i=0;i<menu_name.length;i++){jmenu=new JMenu(menu_name[i]);jmenu.setFont(new Font("宋体",0,12));for(int j=0;j<menu_item[i].length;j++){jmi=new JMenuItem(menu_item[i][j]);jmi.setFont(new Font("宋体",0,12));jmi.addActionListener(new Handler());jmenu.add(jmi);}mb.add(jmenu);}}private void addStatusBar() {jb=new JToolBar();jb.setBackground(new Color(236,233,216));jl1=new JLabel("字符总长:"+0 + " 总行数:"+1+" ");jl1.setFont(new Font("宋体",0,12));jb.add(jl1);JSeparator s = new JSeparator(); //设置分隔符s.setOrientation(SwingConstants.VERTICAL);jb.add(s);jl2=new JLabel("当前行:"+1+ " 当前列:"+0+" ");jl2.setFont(new Font("宋体",0,12));jb.add(jl2);jb.setFloatable(false);jf.getContentPane().add(jb,BorderLayout.SOUTH);}public static void main(String[] args) {SetFont();new Note();}public static JToolBar getJb() {return jb;}public static JFrame getJFrame() {return jf;}public static JLabel getLabel1() {return jl1;}public static JLabel getLabel2() {return jl2;}static UndoManager getUM(){return um;}static JTextArea getTextArea() {return ta;}源代码见我的那个记事本源代码文档。