java文本编辑器实验报告
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记事本实验报告(含源代码运行结果)嘉应学院计算机学院系/班别:指导老师:课程名称:实验内容:学生学号:学生姓名:实验地点:实验类型:实验时间:实验报告计算机学院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课程设计--文本编辑器

淮海工学院计算机工程学院课程设计报告设计名称:面向对象课程设计选题名称:文本编辑器的设计与实现姓名:俞凯学号: 2011123094 专业班级:中新软111 系(院):国际学院设计时间:2013.6.17~2013.6.30设计地点:软件实验室、教室zhuti zt=new zhuti();}class zhuti extends Frame implements ActionListener{Button btn;Label lab;zhuti(){setLayout(null);btn=new Button("确定");lab=new Label("这是一个简单的文本编辑器!");add(btn);add(lab);btn.addActionListener(this);setBounds(200,200,250,150);setVisible(true);lab.setBounds(20 ,60,220,30);lab.setFont(new Font("楷体",Font.BOLD,16));lab.setBackground(Color.cyan);btn.setBounds(100,100,50,30);btn.setBackground(Color.cyan);}public void actionPerformed(ActionEvent e){if(e.getSource()==btn){dispose();}}}对于帮助中关于主题部分的实现,我另构建了一个Frame框架,主要是由一个标签及一个按钮构成,由标签输出“这是一个简单的文本编辑器!”,按钮用dispose()方法实现退出功能。
1、调试分析:(1)关于打开和保存我运用了文件对话框, filedialog_save和filedialog_load以及文件输入输出流来实现,新建功能我选用了area.setText(null)方法.(2)对于剪贴,粘贴,复制的实现则用public void removeUpdate(DocumentEvent e)及public void insertUpdate(DocumentEvent e).(3)背景的运用也是调用了颜色对话框,需引用import javax.swing.JcolorChooser包用Color newColor=JColorChooser.showDialog(this,"调色板",area.getBackground())方法;(4)至于字体功能的实现,则是先创建一个下拉列表Choice list,再实现对它的监听list.addItemListener(this), 最后用public void itemStateChanged(ItemEvent e)方法实现,需注意的是这种方法的实现只对javax.swing包中的组件有效,对于java.awt包中的组件,系统则是采取默认的字体名称.2、用户使用说明:软硬件要求:软件方面:Java开发环境硬件方面:JDK软件抑或是Eclipse软件对硬件没有很高的要求。
用记事本编写一个java应用程序实习报告

用记事本编写一个java应用程序实习报告[Paragraph 1]IntroductionAs part of my java programming internship, I was tasked with creating a report on my experience using the Notepad application. In this report, I will discuss the process of writing a Java application using Notepad and share my thoughts on the overall effectiveness of this text editor in facilitating software development.作为我在java编程实习的一部分,我的任务之一是撰写一份关于使用记事本应用程序的实习报告。
在本报告中,我将讨论使用记事本编写Java应用程序的过程,并分享对这个文本编辑器在促进软件开发方面整体有效性的看法。
[Paragraph 2]Setting up the environmentThe first step in writing a Java program using Notepad is to ensure that your computer has the necessary software installed. This includes having the latest version of Java Development Kit (JDK) downloaded and installed on yourmachine. Once that is done, you can proceed to open Notepad and begin coding.在使用记事本编写Java程序之前,第一步是确保你的计算机上安装了必要的软件。
面向对象课程设计报告-文本编辑器

《面向对象程序设计》课程设计报告题目:java文本编辑器院(系):专业班级:学生姓名:学号:指导教师:20 14 年 12 月 29 日至20 15 年 1 月 9 日面向对象程序设计课程设计任务书目录1需求与总体设计 (4)1.1总体功能图 (4)1.2 总体设计思路 (4)(1)文件菜单 (4)(2)编辑菜单 (4)(3)右键菜单 (4)1.3 总体模块图 (5)1.4简要类图 (5)2详细设计 (6)2.1各类的功能及关键代码设计和类图表示 (6)(1)首先创建一个公共的类名为Bjq (6)(2)创建一个空的菜单条并添加两个菜单项(文件、编辑) (7)(3)先设计一个匿名内部类,为文件、编辑菜单添加其它下拉子菜单 (7)(4)右键快捷菜单的字体子菜单的创建 (8)(5)为鼠标创建监听器。
用于用鼠标点击右键时出现快捷菜单:复制、粘贴、字体大小、字体颜色。
(9)(6)为窗体添加监听器 (9)(7)设计main方法:为整个程序的开始提供了入口 (9)2.2程序流程图 (10)2.3 详细类图 (12)3编码实现 (12)3.1程序实现代码 (12)4系统测试 (19)4.1错误处理 (19)4.2主要的测试截图 (19)1. 程序运行界面 (19)2. 编辑菜单及其复制粘贴功能 (20)3. 右键菜单及其功能效果 (21)4. 文件菜单及其功能界面 (23)总结 (26)1需求与总体设计1.1总体功能图图1.01.2 总体设计思路在本程序中,设计了一个菜单栏和文本内容区。
要想记事本完成需求分析中相应的功能,还必须添加事件监听器。
事件监听器不仅要添加在菜单栏和内容输入区,还需加在容器中。
本程序中Act Listener实现了Action Listener接口,用来监听并处理所有菜单项和内容输入区为事件源的事件。
另外,还用来Window Listener来监听处理容器关闭触发的事件,Window Listener继承了Windows Adapter类并覆盖了Windows Closing方法。
文本编辑器实验报告

综合性实验文本编辑器一.实验要求1.参考系统的写字板功能,编写一个小型的文字编辑工具;2.该文档编辑器,至少完成以下功能:A、文件操作:新建,打开,保存,退出;B、编辑操作:复制,剪切,黏贴,全选;C、查找与替换:查找,替换;D、格式操作:字体,颜色等。
3.界面设计应考虑美观,操作简便等问题,应有工具栏,右键菜单;二.设计思路1、首先,设计一个整体框架。
文本编辑器有一个主的窗体form1,文件的新建,打开,保存,退出;复制,剪切,黏贴,全选;字体,颜色等都是在这个窗体上进行的。
而这些操作的进行,都需要在richtextbox上进行,并且要允许用户打开多个窗口,所以我又增加了一个窗体newform(父窗体为form1),作为用户新建时调用的窗口。
其次,可以增加一个新的窗体searchform,作为查找、替换字符串的操作窗口。
所以,总的来说,有三个窗体,form1为主窗体,newform是用户在新建时调用的窗体,searchform为用户在操作查找、替换功能时需要调用的窗体。
2、接下来,就是对各个窗体的实现了。
Form1是主窗体,上面有菜单栏,工具栏,可以新建窗口,以及支持右键菜单。
3、Newform是用户新建时调用的。
它主要就是一个窗体中放了一个richtextbox,以及支持右键菜单。
4、Searchform是一个查询、替换窗体。
上面有2个label,2个textbox,3个button。
2个textbox的作用为获取要查找的字符串,已经要替换的字符串。
3个button的作用分别为“查询”、“单个替换”、“全部替换”。
5、此文本编辑器支持新建,打开,保存,退出,复制,剪切,黏贴,全选,查找,替换,字体,颜色以及支持右键菜单。
只要把鼠标放到主窗体上,就可支持右键新建、打开;把鼠标放到richtextbox上时,就可以支持右键复制、黏贴、剪切、关闭。
四则运算核心代码:private void打开ToolStripMenuItem1_Click(object sender, EventArgs e)//打开{//OpenFileDialog openfileDialog = new OpenFileDialog();openFileDialog1.Filter = "纯文本文件(*.txt)|*.txt|所有文件(*.*)|*.*";if (this.openFileDialog1.ShowDialog()== DialogResult.OK){s_FileName= openFileDialog1.FileName;NewForm nf = new NewForm();nf.MdiParent = thi s;nf.Text = s_FileName;using (StreamReader read = new StreamReader(s_FileName)){nf.richTextBox1.Text = read.ReadToEnd();}nf.Show();}}public void savefile()//保存文件{//SaveFileDialog saveFileDialog1 = new SaveFileDialog();saveFileDialog1.Filter = "纯文本文件(*.txt)|*.txt|所有文件(*.*)|*.*";saveFileDialog1.FilterIndex = 0;saveFileDialog1.RestoreDirectory = true;NewForm nf = (NewForm)this.ActiveMdiChild;if (nf == null){MessageBox.Show("没有文档可保存!");return;}if (s_FileName.Length != 0){if (File.Exists(@s_FileName)){StreamWriter sw = null;sw = new StreamWriter(s_FileName);sw.Write(nf.richTextBox1.Text);sw.Flush();sw.Close();return;}}if (saveFileDialog1.ShowDialog() == DialogResult.OK){if (s_FileName.Length != 0){nf.richTextBox1.SaveFile(s_FileName, RichTextBoxStreamType.PlainText);}else{s_FileName = saveFileDialog1.FileName;nf.richTextBox1.SaveFile(s_FileName, RichTextBoxStreamType.PlainText);}}}private void保存ToolStripMenuItem_Click(object sender, EventArgs e)//保存{savefile();}private void查找ToolStripMenuItem_Click(object sender, EventArgs e)//查找替换功能{if (searchform == null){searchform = new searchForm();searchform.SearchAction+=new searchForm.SearchEventHandle(OnSearch);}searchform.Show();}private void OnSearch(){NewForm nf=(NewForm)this.ActiveMdiChild;this.SearchString = searchform.SearchString;start = nf.richTextBox1.Find(SearchString,start,RichTextBoxFinds.MatchCase);if (searchform.two == 1){if (start >= 0){nf.richTextBox1.SelectedText = searchform.ReplaceStr;start += searchform.ReplaceStr.Length;}else{MessageBox.Show("已到文档末尾!");start = 0;}}else if (searchform.three == 1){string replaceall=nf.richTextBox1.Text.Replace(searchform.SearchString, searchform.ReplaceStr);nf.richTextBox1.Text = replaceall;start = 0;}else{if (start >= 0) start += thi s.SearchString.Length;else{MessageBox.Show("已到文档末尾!");start = 0;}}}private void全选ToolStripMenuItem_Click(object sender, EventArgs e)//后退{NewForm nf = (NewForm)this.ActiveMdiChild;nf.richTextBox1.Undo();}private void全选ToolStripMenuItem1_Click(object sender, EventArgs e)//全选{NewForm nf = (NewForm)this.ActiveMdiChild;nf.richTextBox1.SelectAll();}三.程序运行效果图1.开始运行的界面:2、新建文档:3、文本编辑:4、文档保存5、查找:6、替换:4实验总结教你如何用WORD文档(2012-06-27 192246)转载▼标签:杂谈1. 问:WORD 里边怎样设置每页不同的页眉?如何使不同的章节显示的页眉不同?答:分节,每节可以设置不同的页眉。
java案例分析与设计 实验1 文本编辑软件

综合实验一文本编辑软件一、实验目的掌握编写图形界面的方法,包括菜单、布局管理器、滚动条、弹出提示信息对话框、输入对话框、打开文件对话框、保存文件对话框、事件处理,以及文本文件的读写。
二、实验环境PC系列微机,Windows XP。
Eclipse、JDK150或更高版本。
三、实验内容利用8个学时的时间完成编写一个文本编辑软件,要求:1、具有菜单,包括如下菜单:文件:新建、打开、保存、退出编辑:复制、粘贴、查找、替换帮助:关于如图所示:2、刚运行时默认是新建状态,可以直接在文本去输入文字内容,单击保存时,如果还没有保存过则提示输入文件名,如果不是第一次保存,则直接保存到原来的文件名。
3、单击打开菜单时,要用户选择一个文本文件,然后把文件内容读取并显示到文本编辑区(用JTextArea实现),单击保存时,不用再提示输入文件名,直接保存到原来的打开时的文件名,文件名要显示到标题栏(同时文件名应该保存到属性变量中)4、单击保存菜单时,要判断是否是第一次新建或默认运行时的状态,如果是,则提示输入文件名,然后保存到文件中去;否则,直接保存到原来的文件名里即可。
5、单击退出菜单,直接退出系统。
6、单击复制菜单时,将选中的文本复制到粘贴板。
7、单击粘贴菜单时,将粘贴板中的内容复制到光标所在的文本位置。
8、单击查找菜单时,提示输入要查找的内容,并把查找到的内容选中。
9、单击替换菜单时,提示输入要替换成的内容,并进行替换(只替换第一个找到的结果即可,其他的可以多次替换来完成)10、单击关于菜单时,显示一个作者和版权信息即可。
提示,可能用到的类主要有:JFrameBorderLayoutJTextAreaJScrollPaneJMenuBarJMenuJMenuItemJFileChooserJOptionPaneFileReaderFileWriter可能用到的属性变量有:JMenuBar mb=null;//菜单栏JTextArea ta=null;//文本编辑区String fileName="";//当前文件名boolean isNewFile=true;//是否新建文件,true:是新建文件,没有保存过文件名,false:旧文件,或已经保存过String findValue="";//要查找的文字String replaceValue="";//替换成的目标文字四、实验报告写出合格的实验报告,至少包括以下内容1、实验目的2、源程序代码3、将涉及到的类和方法在本软件中的用法进行总结。
JAVA程序设计综合实验报告(文本编辑器)

JDesktopPane desk;
FirstWindow(String s){
setTitle(s);
setSize(800,600);
setLocation(120,120);
setVisible(true);
GraphicsEnvironment ge=GraphicsEnvironment.getLocalGraphicsEnvironment();
MyInternalFrame internalFrame=(MyInternalFrame)desk.getSelectedFrame();
JTextArea text=internalFrame.getJTextArea();
String str;
op1.setVisible(true);
try{
item1_New.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N,InputEvent.CTRL_MASK ));
item1_Open.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O,InputEvent.CTRL_MASK ));
public void actionPerformed(ActionEvent e){
System.exit(0);
}
});
//剪切
item2_Cut.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
addInternalFrameListener(new InternalFrameAdapter(){
13031401 鲍旭(JAVA实验报告一)-14 )

实验一使用文本编辑器实现Java语言程序班级学号13031401 姓名鲍旭一、实验目的:掌握JDK的安装与调试以及环境变量的设置,会写简单的Java application程序和Java Applet程序.二、实验要求:1.掌握JDK的安装与调试2.熟练掌握环境变量的设置3.利用文本编缉器写Java应用程序和Java Applet小程序三、实验内容与程序代码1.利用文本编辑器编写Java应用程序,要求在命令行上输出以下一行信息。
(参考P7代码)Welcome to the Java world!程序代码:public class sample{public static void main(String[] args){System.out.println("Welcome to the java world!");}}运行结果:(截图保存)2.利用文本编辑器编写Java Applet小程序,在浏览器中运行显示输出以下一行信息(参考P9代码)Welcome to the Java Applet world!程序代码:import java.awt.Graphics;public class WelcomeApplet extends java.applet.Applet{public void paint(Graphics g){g.drawString("Welcome to java!",10,10);}}<html><head><title>鲍旭</title></head><body><applet code="WelcomeApplet.class" width=200 height=40></applet></body></html>运行结果:(截图保存)3.选做题:编写Java应用程序实现输入一个十进制整数转换成对应的二进制数,八进制数,十六进制数.(提示利用Scanner类的nextInt()方法实现数据的输入功能,Integer类toBinaryString()方法实现二进制转换)程序代码:import java.util.Scanner;public class change {public static void main(String[] args){System.out.println("Please enter an integer:");Scanner in = new Scanner(System.in);int number = in.nextInt();System.out.println("The binary of your number is "+Integer.toBinaryString(number));System.out.println("The Oct of your number is "+Integer.toOctalString(number));System.out.println("The hex of your number is "+Integer.toHexString(number));}}运行结果:(截图保存)四、实验分析与总结。
java文本编辑器实验报告

Java考核课程名称Java程序设计题目名称文本编辑器的设计与实现学生学院计算机学院专业班级计算机17(2)班学号**********学生姓名李泽豪指导教师赵锐2018 年12 月11 日一、课程题目编程实现一个文本编辑器使其具有新建、打开、保存,编辑(查找、替换、大小写转换等)、统计(字数、行数、字符数等)、格式(字体设置、字体大小、字体颜色、背景颜色等)等功能。
要求:基于JFrame窗体设计、使用菜单进行功能选择。
提示:字体颜色,背景颜色的设置,可使用javax.swing包中的JColorChooser类的静态方法showDialog()调用标准颜色对话框来完成;文件操作可通过javax.swing包中JColorChooser类中的showSaveDialog()、showOpenDialog()方法调用标准的的文件对话框来完成。
二、题目分析与设计2.1开发环境使用Eclipse开发软件2.2需求分析简单的文本编辑器提供给用户基本纯文本的文字编辑功能,能够读取计算机本地磁盘中的文本内容,将用户文本导入到磁盘中之中,以及实现基本的字体设置(字体,字号,字体颜色)简单的编辑字体的功能,以及统计(字数,行数,字符数),增强视觉体验的背景颜色功能等,简单而实用。
而网络上的各种编辑器,有的功能不足(如自带的记事本),而有些编辑器功能太繁杂,仅以日常应用方面来说,一个文本编辑器只需要简单的功能就够了。
2.3功能构架本程序要构建的文本编辑器按照题目要求,分为四个方面:(1)“文件”菜单:包括“新建”并提示是否保存已编辑内容,“打开”计算机本地磁盘的文本文件,主动“保存”自己已经编辑好的内容到电脑的磁盘或“另存为”新的文件之中,以及“退出”并提示是否保存已编辑的内容。
(2)“编辑”菜单:包括对已编辑文本的一个“查找与替换”功能,对已编辑英文文本的一个“大小写转换”功能。
(3)“格式”菜单:实现对文本的“字体”设置,“字体大小”以及“字体颜色”,还有能优化视觉体验的“背景颜色”的改变。
文本编辑器 java课程设计实验报告 完整 预览显示不全 含全部代码

淮 海 工 学 院 计算机工程学院课程设计报告设计名称: 选题名称: 姓 名: 面向对象课程设计文本编辑器的设计与实现学号:专业班级: 系 (院) : 设计时间: 设计地点: 计算机工程学院 2010.6.21~2010.7.2 软件实验室、教室指导教师评语:成绩:签名:年 月 日面向对象课程设计报告第2页,共24页1.设计要求设计一个类似于 Windows 记事本(Notepad)的 Java 程序。
可以打开、新建、保存一个文本文件;对 选中的文本进行各种编辑操作(设置字体、字号、字型、对齐方式、背景、前景色、复制、粘贴、剪切、 查找、替换等) ;在文本中能够插入对象。
2.总体设计打开文 件保存另存为查找 红色 复制 字 体 颜 色退出编 辑蓝色剪切文 本 编 辑 器宋体绿色 粘贴字仿宋体楷体字 形粗体 斜体 常规字 号面向对象课程设计报告第3页,共24页3.详细设计JTextArea textarea;//建立文本 JRadioButtonMenuItem rbmi_red,rbmi_blue,rbmi_green;//鼠标右击改变颜色JMenuItem menuitem_copy,menuitem_cut,menuitem_paste,menuitem_seek;//复制, 剪切,粘贴 JMenuItem menuitem_song,menuitem_fang,menuitem_kai;//字体变量 JMenuItem menuitem_normal,menuitem_bold,menuitem_italic;//字形变量 JMenuItem menuitem_12,menuitem_24,menuitem_36;//字号变量 JMenuItem menuitem_exit,menuitem_infor; JPopupMenu popupmenu;//文本快捷键 JMenuItem menuitem_red,menuitem_green,menuitem_blue;//颜色变量 JDialog dialog;//调用对话框 JButton button_seek;//查找 JTextField textfield_seek; JLabel label_seek,label_infor;4.代码调试面向对象课程设计报告 程序代码: import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.io.*; import javax.swing.JColorChooser; import javax.swing.event.*; public class Notepad extends第4页,共24页JFrameimplementsActionListener,ItemListener,MouseListener { File file; JTextArea textarea; JRadioButtonMenuItem rbmi_red,rbmi_blue,rbmi_green;JMenuItem menuitem_copy,menuitem_cut,menuitem_paste,menuitem_seek; JMenuItem menuitem_song,menuitem_fang,menuitem_kai;//字体变量 JMenuItem menuitem_normal,menuitem_bold,menuitem_italic;//字形变量 JMenuItem menuitem_12,menuitem_24,menuitem_36;//字号变量 JMenuItem menuitem_exit,menuitem_infor; JMenuItem menuitem_zidingyi; JPopupMenu popupmenu; JMenuItem menuitem_red,menuitem_green,menuitem_blue; JDialog dialog; JButton button_seek; JTextField textfield_seek; JLabel label_seek,label_infor; String seek;public Notepad() { super("文本编辑器"); this.setSize(600,400); this.setLocation(250,150); this.setDefaultCloseOperation(HIDE_ON_CLOSE); textarea = new JTextArea();面向对象课程设计报告 Container ss=this.getContentPane();第5页,共24页JScrollPane dd=new JScrollPane(textarea); ss.add(dd); this.textarea.addMouseListener(this); this.addMenu(); this.setVisible(true); this.Dialog(); this.file = null; } public Notepad(String filename) { this(); if (filename!=null) { this.file = new File(filename); this.setTitle(filename); this.textarea.setText(this.readFromFile()); } } public Notepad(File file) { this(); if (file!=null) { this.file = file; this.setTitle(this.file.getName()); this.textarea.setText(this.readFromFile()); } } public void Dialog() { dialog=new JDialog(this,"查找",true); dialog.setLayout(new FlowLayout()); //建立对话框的方法面向对象课程设计报告 dialog.setSize(200,90); label_seek=new JLabel("关键字"); dialog.add(label_seek); textfield_seek=new JTextField(10); dialog.add(textfield_seek); button_seek=new JButton("查找"); dialog.add(button_seek); button_seek.addActionListener(this); } public void addMenu() { JMenuBar menubar = new JMenuBar(); this.setJMenuBar(menubar); JMenu menu_file = new JMenu("文件"); menubar.add(menu_file);第6页,共24页//文件菜单JMenuItem menuitem_open = new JMenuItem("打开"); menu_file.add(menuitem_open); menuitem_open.addActionListener(this); JMenuItem menuitem_save = new JMenuItem("保存"); menu_file.add(menuitem_save); menuitem_save.addActionListener(this); JMenuItem menuitem_saveas = new JMenuItem("另存为"); menu_file.add(menuitem_saveas); menuitem_saveas.addActionListener(this); menuitem_exit=new JMenuItem("退出" ); menu_file.add(menuitem_exit); menuitem_exit.addActionListener(this); JMenu menu_editor=new JMenu("编辑");//编辑菜单 menubar.add(menu_editor); menuitem_seek=new JMenuItem("查找"); menu_editor.add(menuitem_seek); menuitem_seek.addActionListener(this); menuitem_copy=new JMenuItem("复制");面向对象课程设计报告 menuitem_copy.addActionListener(this); menu_editor.add(menuitem_copy); menuitem_cut=new JMenuItem("剪切"); menu_editor.add(menuitem_cut); menuitem_cut.addActionListener(this); menuitem_paste=new JMenuItem("粘贴"); menu_editor.add(menuitem_paste); menuitem_paste.addActionListener(this);第7页,共24页JMenuItem menu_color=new JMenu("颜色");//颜色菜单 menu_editor.add(menu_color); ButtonGroup buttongroup=new ButtonGroup();rbmi_red=new JRadioButtonMenuItem("红",true); buttongroup.add(rbmi_red); menu_color.add(rbmi_red); rbmi_red.addItemListener(this); rbmi_blue=new JRadioButtonMenuItem("蓝",true); buttongroup.add(rbmi_blue); menu_color.add(rbmi_blue); rbmi_blue.addItemListener(this); rbmi_green=new JRadioButtonMenuItem("绿",true); buttongroup.add(rbmi_green); menu_color.add(rbmi_green); rbmi_green.addItemListener(this); JMenu menu_font=new JMenu("设置字体");//设置字体菜单 menubar.add(menu_font); menuitem_song=new JMenuItem("宋体"); menu_font.add(menuitem_song); menuitem_song.addActionListener(this); menuitem_fang=new JMenuItem("仿宋"); menu_font.add(menuitem_fang); menuitem_fang.addActionListener(this); menuitem_kai=new JMenuItem("楷体"); menu_font.add(menuitem_kai);面向对象课程设计报告 menuitem_kai.addActionListener(this);第8页,共24页JMenu menu_style=new JMenu("设置字形");//设置字形菜单 menubar.add(menu_style); menuitem_bold=new JMenuItem("粗体"); menu_style.add(menuitem_bold); menuitem_bold.addActionListener(this); menuitem_italic=new JMenuItem("斜体"); menu_style.add(menuitem_italic); menuitem_italic.addActionListener(this); menuitem_normal=new JMenuItem("常规"); menu_style.add(menuitem_normal); menuitem_normal.addActionListener(this); JMenu menu_size=new JMenu("设置字号"); menubar.add(menu_size); menuitem_12=new JMenuItem("12"); menu_size.add(menuitem_12); menuitem_12.addActionListener(this); menuitem_24=new JMenuItem("24"); menu_size.add(menuitem_24); menuitem_24.addActionListener(this); menuitem_36=new JMenuItem("36"); menu_size.add(menuitem_36); menuitem_36.addActionListener(this); popupmenu=new JPopupMenu(); JMenuItem menuitem_red=new JMenuItem("红色"); popupmenu.add(menuitem_red); menuitem_red.addActionListener(this); JMenuItem menuitem_green=new JMenuItem("绿色"); popupmenu.add(menuitem_green); menuitem_green.addActionListener(this); menuitem_blue=new JMenuItem("蓝色"); popupmenu.add(menuitem_blue); menuitem_blue.addActionListener(this); //快捷菜单 //设置字号菜单面向对象课程设计报告 textarea.add(popupmenu); }第 9 页,共 24 //向文本区内添加快捷菜单页public void writeToFile(String lines) { try {//写文件FileWriter fout = new FileWriter(this.file); fout.write(lines+"\r\n"); fout.close(); } catch (IOException ioex) { return; } } public String readFromFile() { try { FileReader fin = new FileReader(this.file); BufferedReader bin = new BufferedReader(fin); String aline="", lines=""; do { aline = bin.readLine(); if (aline!=null) lines += aline + "\r\n"; } while (aline!=null); bin.close(); fin.close(); return lines; } catch (IOException ioex) //读文件面向对象课程设计报告 { return null; } } public boolean openDialog() {第10页,共24页//打开对话框FileDialog filedialog = new FileDialog(this,"Open",FileDialog.LOAD); filedialog.setVisible(true); if ((filedialog.getDirectory()!=null) && (filedialog.getFile()!=null)) { this.file filedialog.getFile()); return true; } else return false; } public boolean saveDialog() { FileDialog filedialog = new FileDialog(this,"SaveAs",FileDialog.SAVE); filedialog.setFile(this.file.getName()); filedialog.setVisible(true); if ((filedialog.getDirectory()!=null) && (filedialog.getFile()!=null)) { this.file = new File(filedialog.getDirectory(), //保存对话框 = new File(filedialog.getDirectory(),filedialog.getFile()+".txt"); return true; } else return false; } public void actionPerformed(ActionEvent e) { //事件处理面向对象课程设计报告 if(e.getActionCommand()=="打开") { if (this.openDialog()) {第11页,共24页this.setTitle(this.file.getName()); this.textarea.setText(this.readFromFile()); } } if(e.getActionCommand()=="保存" && this.file!=null) { this.writeToFile(this.textarea.getText()); } if(e.getActionCommand()==" e.getActionCommand()=="另存为") { if (this.saveDialog()) { this.writeToFile(this.textarea.getText()); this.setTitle(this.file.getName()); } } if(e.getActionCommand()=="退出") { System.exit(0); } if(e.getSource()==menuitem_copy) { textarea.copy(); } if(e.getSource()==menuitem_paste) { textarea.paste(); } //编辑菜单的事件处理 保 存 " && this.file==null ||面向对象课程设计报告 if(e.getSource()==menuitem_cut) { textarea.cut(); } if(e.getSource()==menuitem_red) { textarea.setForeground(Color.red); } if(e.getSource()==menuitem_blue) { textarea.setForeground(Color.blue); } if(e.getSource()==menuitem_green) { textarea.setForeground(Color.green); } Font font=textarea.getFont(); int style=font.getStyle(); if(e.getSource()==menuitem_song) { textarea.setFont(new第12页,共24页//颜色菜单的事件处理//设置字体变量java.awt.Font("宋体",java.awt.Font.PLAIN,font.getSize())); } if(e.getSource()==menuitem_fang) { textarea.setFont(new java.awt.Font(" 仿 宋",java.awt.Font.PLAIN,font.getSize())); } if(e.getSource()==menuitem_kai) { textarea.setFont(new java.awt.Font(" 楷 体",java.awt.Font.PLAIN,font.getSize()));面向对象课程设计报告 } if(e.getSource()==menuitem_bold) { style=style^1;第13页,共24页//设置字形菜单的事件处理textarea.setFont(new java.awt.Font("",style,font.getSize())); } if(e.getSource()==menuitem_italic) { style=style^2; textarea.setFont(new java.awt.Font("",style,font.getSize())); } if(e.getSource()==menuitem_normal) { style=style^3; textarea.setFont(new java.awt.Font("",style,font.getSize())); } if(e.getSource()==menuitem_12) { textarea.setFont(new java.awt.Font(font.getName(),style,12)); } if(e.getSource()==menuitem_24) { textarea.setFont(new java.awt.Font(font.getName(),style,24)); } if(e.getSource()==menuitem_36) { textarea.setFont(new java.awt.Font(font.getName(),style,36)); } if(e.getSource()==menuitem_seek) { dialog.setVisible(true); } seek=textarea.getText(); //查找菜单项的处理事件面向对象课程设计报告 第 String tseek=textfield_seek.getText(); if(e.getSource()==button_seek) { int i=textfield_seek.getText().length(); int j=seek.indexOf(tseek); textarea.setSelectionStart(j); textarea.setSelectionEnd(i+j); textfield_seek.setText(""); } } public void itemStateChanged(ItemEvent e) { if(e.getSource()==rbmi_red) { textarea.setForeground(java.awt.Color.red); } if(e.getSource()==rbmi_blue) { textarea.setForeground(java.awt.Color.blue); } if(e.getSource()==rbmi_green) { textarea.setForeground(java.awt.Color.green); } } public void mouseClicked(MouseEvent mec) { if (mec.getModifiers()==mec.BUTTON3_MASK)14页,共24页//ItemListener 事件处理方法//鼠标处理事件popupmenu.show(textarea,mec.getX(),mec.getY()); } public void mousePressed(MouseEvent mep) public void mouseReleased(MouseEvent mer) public void mouseEntered(MouseEvent mee) { { { } } }面向对象课程设计报告 public void mouseExited(MouseEvent mex) public void mouseDragged(MouseEvent med) public static void main(String arg[]) { new Notepad("文本编辑器"); } }第 { {15 页,共 } }24页//main 方法编译代码实现各种功能:打开任意目录下一文本文件:文件目录下“另存为”功能:面向对象课程设计报告第16页,共24页编辑目录下“查找”功能:编辑目录下“复制” “剪切” “粘贴”功能:面向对象课程设计报告第17页,共24页面向对象课程设计报告第18页,共24页字体设置功能:面向对象课程设计报告第19页,共24页编辑目录下“颜色“功能:设置字型功能:面向对象课程设计报告第20页,共24页设置字号功能:面向对象课程设计报告第21页,共24页运行完毕,可关闭窗口退出程序或点击文件目录下的“退出”功能面向对象课程设计报告第22页,共24页5. 软件发布面向对象课程设计报告 首先制作 Manifest 文件,代码如下; Manifest-Version:1.0 Mani-Class: notepad Created-Boy:1.6(Sun Microsystems Inc.) 保存为 Manifest.mf,保存在 D:\java 打开 CMD 在 DOS 下生成 jar 文件:第23页,共24页D:\java\jar cmf Notepad.jar Manifest.mf notepad.class 生成 JAR 文件,双击运行。
虚拟的java编辑器课程设计报告

虚拟的Java编辑器设计报告一、需求分析此次课程设计名称为JAVA编辑器。
需要设计一个图形界面的文本编辑器,能编辑Java语言源程序,界面和功能类似Editplus。
演示程序为计算机和用户的对话形式执行,即在计算机的终端显示图形界面的文档编辑器,然后用户就可以实现编辑,保存等像记事本一样的功能。
(1)打开以有文件,保存编辑文件,退出编辑器并提醒保存;(2)查找编辑区中的字符串,用已知字符串替换查找的字符串;(3)显示文件的存取路径;(4)剪切,复制,粘贴,删除等;(5)改变文本区字体的颜色,字体大小和形状的功能;(6)关键字显示蓝色、类库类名显示红色。
二. 设计1.设计思想Java编辑器是用来编写java程序的源代码。
Java程序编辑器是:图形界面、线程、流与文件等技术的综合应用。
图形界面的实现:就选择了swing来完成实现,在选择组件上,文本编辑区就选用了JTextPane作为主要的部件。
由于Java的特性,可能用任何一个编辑器来编辑,于是就将Windows中的记事本作为模仿对象,根据实现情况删减了其中的一些功能,如自动换行,设置字体,打印等功能。
在设计类的时候,考虑到简单明了,一个主类,一个默认属性myfr类,染色类SyntaxHighlighter 作为程序的整体框架,所有的对象和方法都是在默认属性类和染色类中创建和实现的,以及为各组件注册事件监听程序也是在默认属性类染色类中实现的。
本程序主类完成对象的实例化及显示。
2.功能设计本程序涉及到了对图形用户界面的设计与实现和菜单的设计与实现。
用户可以通过此编辑器对java文件进行文字的复制、剪切、粘贴、删除、查找、替换、时间的插入、设置字体颜色和关键字、类库名着色等。
本程序主要有以下3个模块组成:(1)主体模块由窗口、功能菜单、文本框组成。
为用户选择编辑的功能提供了简单、方便的界面。
Java的窗口由JFrame类生成,我们可以在创建的空白窗口上添加组件。
Java实训报告书-文本编辑器

public void addmyMenu() // 菜单函数,生成菜单 { JMenuBar menubar = new JMenuBar();// 菜单栏添加 若干菜单 this.setJMenuBar(menubar); String menustr[] = { "文件", "编辑", "工具", "帮 助" };//菜单栏字符串数组 JMenu menu[] = new JMenu[menustr.length]; for (int i = 0; i < menu.length; i++) {//为菜 单栏赋值 menu[i] = new JMenu(menustr[i]); menubar.add(menu[i]); } String menuitemstr0[] = { "新建", "打开", "保 存", "另存为", "退出" };// 文件菜单中添加若干菜单项 JMenuItem menuitem0[] = new JMenuItem[menuitemstr0.length]; for (int i = 0; i < menuitem0.length; i++)
2.3
文本编辑区 监视文本内容是否改变、监听光标所在位置 数据库结构设计
文件 编辑 工具 帮助
1.程序E-R图 菜单栏
文件 新建 打开 保存 另存为 退出
编辑 剪切 复制 粘贴 帮助 帮助
关于
3
主要代码清单
3.1生成菜单栏及菜单项
在窗体初始化时,自动添加菜单及其菜单项,用于在文本编辑 器中对文本去内容进行操作,使用for语句循环生成菜单栏和 菜单项。
java实验 文本编辑器

考查报告课程名称:java实验姓名:学号:一.开发环境描述及其相关配置描述J2SDK1.6或以上版本, 程序编辑环境EditPlus,UltraEdit,或其他Java集成开发环境二.程序的模块功能描述和涉及到的关键Java API列表模块:记事本:一)、菜单1、文件:新建,打开,保存,另存为,退出2、编辑:剪切,复制,粘贴,替换,全部替换,插入文本,删除3、格式:自动换行,颜色,字体4、查找5、帮助二)、界面1、编辑区三、程序源代码(关键部分附带注释)import java.awt.*;import java.awt.event.*;import java.awt.datatransfer.*;import javax.swing.*;import java.io.*;import ng.*;public class Notepad extends JFrame{private final Color colorvalues[] ={ Color.black, Color.blue, Color.red, Color.green }; //定义颜色数组String styleNames[] = { "Bold", "Italic" };//定义风格数组String fontNames[] = { "宋体", "华文行楷", "隶书" };//字体数组String[] sizeString = new String[30];//字号数组int[] size = new int[30];//与字号数组对应的字号整数,用于设置文字大小private JRadioButtonMenuItem colorItems[], fonts[];private JCheckBoxMenuItem styleItems[];private JTextArea displayText;//定义文本编辑区private ButtonGroup fontGroup, colorGroup;//字体组,跟字色组private int style;//字体风格private JScrollPane scroll;//为文本编辑区提供滚动条private String selectText = "";//存放文本编辑区中选中的文本内容private int rowNumber = 0;private FileDialog fd = new FileDialog(this);// set up GUIpublic Notepad(){super( "记事本" );//标题//创建菜单条JMenuBar bar = new JMenuBar();setJMenuBar( bar );// 设置文件菜单及其菜单项JMenu fileMenu = new JMenu( "文件(F)" );fileMenu.setMnemonic( 'F' );// 设置新建菜单项JMenuItem newItem = new JMenuItem( "新建(N)" );newItem.setMnemonic( 'N' );fileMenu.add( newItem );newItem.addActionListener(new ActionListener() {public void actionPerformed( ActionEvent event ){displayText.setText("");}});// 设置打开菜单项JMenuItem openItem = new JMenuItem( "打开(O)" );openItem.setMnemonic( 'O' );fileMenu.add( openItem );openItem.addActionListener(new ActionListener() {public void actionPerformed( ActionEvent event ){fd.setTitle("打开"); //设置标题fd.show();if (fd.getFile() != null) {File file = new File(fd.getFile()); //用从fd中取得的文件建立新文件,即打开的文件displayText.setText( "");try {FileReader f = new FileReader(file);BufferedReader b = new BufferedReader(f);//按行读打开的文件,然后传入文本域String s;try {while ((s = b.readLine()) != null) {displayText.append(s + "\n");//将给定文本追加到文本域的当前文本(即把读的内容加入文本域)}f.close();b.close();} catch (IOException ex) {}} catch (FileNotFoundException ex) {}}else {return;}}});fileMenu.addSeparator(); //加分隔线// 设置保存菜单项JMenuItem saveItem = new JMenuItem( "保存(S)" );saveItem.setMnemonic( 'S' );fileMenu.add( saveItem );saveItem.addActionListener(new ActionListener() {public void actionPerformed( ActionEvent event ){ fd.setFile("*.java");fd.setMode(FileDialog.SAVE);fd.setTitle("保存");fd.show();if (fd.getFile() != null) {File file = new File(fd.getFile());try {PrintWriter pw = new PrintWriter(file);pw.print(displayText.getText());//这一部分用于把textArea1中的内容打印到pw指定的文件file中去,file围在对话框中选定的文件pw.flush(); //刷新该流的缓冲,然后关闭该流pw.close();} catch (FileNotFoundException ex){ex.printStackTrace();}}else {return;}}});// 设置另存为菜单项JMenuItem saveAsItem = new JMenuItem( "另存为(Z)" );saveAsItem.setMnemonic( 'Z' );fileMenu.add( saveAsItem );saveAsItem.addActionListener(new ActionListener() {public void actionPerformed( ActionEvent event ){ fd.setFile("*.java");fd.setMode(FileDialog.SAVE);fd.setTitle("另存为");fd.show();if (fd.getFile() != null) {File file = new File(fd.getFile());try {PrintWriter pw = new PrintWriter(file);pw.print(displayText.getText());//这一部分用于把textArea1中的内容打印到pw指定的文件file中去,file围在对话框中选定的文件pw.flush(); //刷新该流的缓冲,然后关闭该流pw.close();} catch (FileNotFoundException ex){ex.printStackTrace();}}else {return;}}});fileMenu.addSeparator(); //加分隔线// 设置退出菜单项JMenuItem exitItem = new JMenuItem( "退出(X)" );exitItem.setMnemonic( 'x' );fileMenu.add( exitItem );exitItem.addActionListener(new ActionListener() {public void actionPerformed( ActionEvent event ){System.exit( 0 );}});bar.add( fileMenu );//创建编辑菜单及其菜单项JMenu editMenu = new JMenu( "编辑(E)" );editMenu.setMnemonic( 'E' );//剪切菜单选项JMenuItem cutItem = new JMenuItem( "剪切(T)" );cutItem.setMnemonic( 'T' );editMenu.add( cutItem );cutItem.addActionListener(new ActionListener(){public void actionPerformed( ActionEvent event ){selectText = displayText.getSelectedText();//取得选定的文本int start = displayText.getSelectionStart();//选定的文本的开始位置int end = displayText.getSelectionEnd();//选定的文本的结束位置displayText.replaceRange("", start, end);/*用指定替换文本替换指定开始位置与结束位置之间的文本。
java简易记事本实验报告

java简易记事本实验报告Java简易记事本实验报告一、实验目的•学习使用Java编程语言•熟悉图形用户界面(GUI)的设计与实现•掌握文件读写操作二、实验背景近年来,随着信息技术的快速发展,电子设备普及程度日益增加。
人们习惯使用记事本软件记录临时笔记、备忘、任务清单等信息。
因此,本次实验旨在通过Java编写一个简易的记事本应用程序,以满足人们的基本需求。
三、实验过程1.学习Java编程语言基础知识,包括变量、数据类型、循环、条件语句等。
2.了解图形用户界面(GUI)设计原理和相关组件。
3.使用Java Swing库设计记事本的用户界面,包括菜单栏、工具栏、文本框等。
4.实现文件读写功能,使得用户可以保存和打开文本文件。
5.添加其他功能,如剪切、复制、粘贴、查找、替换等。
四、实验结果通过以上实验过程,我们成功设计并实现了一个简易的记事本应用程序。
这个程序具备了基本的文本编辑功能,并支持文件的保存和打开。
五、实验总结本次实验是一个较为基础的Java编程实践,通过设计和开发一个简易的记事本应用程序,我们熟悉了Java编程语言的使用,掌握了图形用户界面的设计与实现,加深了对文件读写操作的理解。
在实验过程中,我们遵循了一定的规则和步骤,通过列点方式对实验目的、过程和结果进行了总结。
这样的总结方式清晰明了,便于读者理解和回顾。
通过本次实验,我们不仅提升了Java编程能力,还培养了问题解决和团队合作的能力。
我们相信,通过不断实践和学习,我们的能力会不断提高,创造出更加优秀的应用程序。
六、改进方向虽然我们已经成功实现了一个简易的记事本应用程序,但仍有一些改进的方向可以考虑:1.添加更多的编辑功能:除了基本的剪切、复制、粘贴功能,可以考虑添加撤销、重做、全选、自动保存等功能,以提升用户的编辑体验。
2.改善用户界面设计:可以进一步优化用户界面的布局和样式,提升用户的使用感受。
可以考虑添加主题切换功能,让用户可以根据自己的喜好选择不同的界面风格。
JAVA程序设计实验2(编辑器)报告

private JMenuItem Help;
private JFileChooser chooser;
private Font
font;
public static void main(String[] args)
{
new Text(); } public Text() {
super("文本编辑器"); A = new JTextArea(5, 30); A.setLineWrap(true); this.add(A, BorderLayout.CENTER); Container mContainer = getContentPane(); JScrollPane scrollPane = new JScrollPane(A);//滚动条 mContainer.add(scrollPane); MenuBar = new JMenuBar(); New = new JMenuItem("新建"); File = new JMenu("文件"); Open = new JMenuItem("打开"); Save = new JMenuItem("保存"); Close = new JMenuItem("关闭"); File.add(New); File.add(Open); File.add(Save); File.addSeparator(); File.add(Close); MenuBar.add(File); New.addActionListener(this); Open.addActionListener(this); Save.addActionListener(this); Close.addActionListener(this); Eidt = new JMenu("编辑"); Cut = new JMenuItem("剪切 (Ctrl+X)"); Copy = new JMenuItem("复制 (Ctrl+C)"); Paste = new JMenuItem("粘贴 (Ctrl+V)");
java实验报告实验2答案(共5篇)

java实验报告实验2答案(共5篇)第一篇:java实验报告实验2答案互联网软件应用与开发实验指导书实验二熟悉Applet,GUI编程实验目的:本实验旨在巩固同学们对上课所讲Applet,异常处理,java的控制加深理解,图形用户界面基本组件窗口、按钮、文本框、选择框、滚动条等的使用方法,对java的语法和编程有一个更加深入的理解,为同学们以后的能够用Java进行独立地编写桌面程序打下一定的基础。
了解如何使用布局管理器对组件进行管理,以及如何使用Java的事件处理机制。
实验内容:创建一个java项目,命名为experiment2。
(如何创建项目参考《实验一》的项目创建方法。
)(一)创建图形用户界面图形用户界面(Graphic User Interface,简称GUI)是为方便用户使用设计的窗口界面,在图形用户界面中用户可以看到什么就操作什么,取代了在字符方式下知道是什么后才能操作什么的方式。
组件(Component)是构成GUI的基本要素,通过对不同事件的响应来完成和用户的交互或组件之间的交互。
组件一般作为一个对象放置在容器(Container)内,容器是能容纳和排列组件的对象,如Applet、Panel(面板)、Frame(窗口)等。
通过容器的add方法把组件加入到容器中。
1.在Applet中添加标签、按钮并使用网格布局(1)程序功能在Applet 容器中添加组件标签、按钮,并使用网格布局管理器排列组件在容器中的位置。
(2)编写LX6_1.java 程序文件,源代码如下:import java.awt.*;import java.applet.Applet;public class LX6_1 extends Applet { Label l1;Button b1, b2, b3, b4, b5,b6;public void init(){互联网软件应用与开发实验指导书setLayout(new GridLayout(3,3));// 设置网格布局(3 行3 列共9 个网格)l1=new Label(“标签1”);b1 = new Button(“按钮1”);b2 = new Button(“按钮2”);b3 = new Button(“按钮3”);b4 = new Button(“按钮4”);add(l1);add(b1);add(b2);add(b3);add(newLabel());add(b4);add(new Button(“按钮5”));add(new Button(“按钮6”));add(new Label(“标签2”));} }(3)编译程序LX6_1.java。
Java课程报告

Java课程设计报告课目:计算器、文本编辑器学院:管理学院专业班级:信息管理与信息系统11-2*名:***学号: ******** 学生:李海振,袁骋麒,施凯翔辅导教师:李应朱方义伍章俊文本编辑器一、实验目的:综合掌握Java编程技巧及Java开发环境。
二、实验要求:能够进行输入文字操作,并具有新建文件,打开文件,保存文件,退出,复制,粘贴,剪切等功能,可以设置文本的字体、大小、颜色等基本参数,可以读取计算机中TXT文件,可以生成一个新的TXT文件。
其他功能参照windows的文本编辑器。
三、实验内容:字体,大小,颜色等基本信息的编辑,可以读取计算机中TXT文件,同时生成一个新的TXT 文件。
其他功能同WINDOWS的文本编辑器。
四、实验步骤:1)文本编辑器窗口界面布局设计;2)各种编辑功能的算法分析;3)编程实现具体的编辑功能;4)运行测试程序,调试纠正运行错误。
5)调试无误,运行,测试具体编辑功能。
五、实验结果:设计简易文本编辑器,使其可以实现字体,大小,颜色等基本信息的编辑,可以读取计算机中TXT文件。
六、实验体会:Java编程文本编辑器就是微软记事本的“缩略版”,为什么这么说呢,文本编辑器的功能之一就是实现文本的录入,像记事本一样写入字体,以及字体的颜色、大小和字型的改变,最主要的功能就是实现TXT文件的生成,即生成文件的格式是TXT格式。
当然不单单只有这些功能,本编辑器还能实现文件的打开和保存等功能。
在本次实验中按钮功能的实现必须依靠监听器的功能,菜单栏中“文件”的功能就包括本地文件的打开和保存,当监听器接受到“文件——打开”这个指令时,就会弹出一个的对话框,列出本地的文件菜单。
当监听器接到“格式——颜色——RED”这个指令时,就会改变文本编辑区的文字颜色,由原来的黑色变为红色。
但是这是有缺点的,文字颜色的改变是所有文字颜色的改变,而不能改变其中的某些文字,所有的字体、字型的改变都是整体性的改变,不能局部发生变化,这也是我们在实验中唯一没有做好的一部分,也是所有同学都没法解决的问题,就是微软的记事本也没有解决这个问题。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Java考核
课程名称Java程序设计
题目名称文本编辑器的设计与实现学生学院计算机学院
专业班级计算机17(2)班
学号**********
学生姓名李泽豪
指导教师赵锐
2018 年12 月11 日
一、课程题目
编程实现一个文本编辑器
使其具有新建、打开、保存,编辑(查找、替换、大小写转换等)、统计(字数、行数、字符数等)、格式(字体设置、字体大小、字体颜色、背景颜色等)等功能。
要求:基于JFrame窗体设计、使用菜单进行功能选择。
提示:字体颜色,背景颜色的设置,可使用javax.swing包中的JColorChooser类的静态方法showDialog()调用标准颜色对话框来完成;文件操作可通过javax.swing包中JColorChooser类中的showSaveDialog()、showOpenDialog()方法调用标准的的文件对话框来完成。
二、题目分析与设计
2.1开发环境
使用Eclipse开发软件
2.2需求分析
简单的文本编辑器提供给用户基本纯文本的文字编辑功能,能够读取计算机本地磁盘中的文本内容,将用户文本导入到磁盘中之中,以及实现基本的字体设置(字体,字号,字体颜色)简单的编辑字体的功能,以及统计(字数,行数,字符数),增强视觉体验的背景颜色功能等,简单而实用。
而网络上的各种编辑器,有的功能不足(如自带的记事本),而有些编辑器功能太繁杂,仅以日常应用方面来说,一个文本编辑器只需要简单的功能就够了。
2.3功能构架
本程序要构建的文本编辑器按照题目要求,分为四个方面:
(1)“文件”菜单:包括“新建”并提示是否保存已编辑内容,“打开”计算机本地磁盘的文本文件,主动“保存”自己已经编辑好的内容到电脑的磁盘或“另存为”新的文件之中,以及“退出”并提示是否保存已编辑的内容。
(2)“编辑”菜单:包括对已编辑文本的一个“查找与替换”功能,对已编辑英文文本的一个“大小写转换”功能。
(3)“格式”菜单:实现对文本的“字体”设置,“字体大小”以及“字体颜色”,还有
能优化视觉体验的“背景颜色”的改变。
(4)“统计”菜单:实现对中文字符的“字数”统计,以及“行数”的统计,“字符数”的统计。
以下是软件功能的构架图:
2.4界面设计
整个文本编辑器分成:JFrame程序主体框架,Jmenu菜单栏,JTextArea文本输入区,JscrollPane滚动条,FonDialog字体,JDiolog对话框与框架等。
首先定义一个TxtEditor类继承JFrame作为最底层容器,因为是编辑器,所以最重要的是使用JTextArea建立一个空白的文本域,还有顶部根据功能分成四类的菜单栏以及其中的菜单项,以及考虑到文本输出超过所示范围所需要滑动因此而添加的滚动条。
在查找与替换功能,为了使用方便,合并查找与替换功能在同一个对话框。
创新:考虑到使用者会不小心按到关闭按钮,所以添加了一个退出监听,JOptionPane 导入类确定对话框,“否”会.返回,“是”会弹出文件保存界面,操作之后会退出。
在字体、字体大小的处理中,也采用了JOptionPane导入类的输入对话框,输入自己想要的字体或者字体大小按“确定”键就能完成更改,使得可选择的字号和字体会更多。
2.5程序的实现
(1)菜单的制作
首先定义所有菜单项(例:JMenuItem itemBuilt = new JMenuItem("新建");),创建菜单条及置于顶部(JMenuBar menubar = new JMenuBar(); this.setJMenuBar(menubar);
menubar.setOpaque(true);),添加菜单栏及菜单项(例:JMenu menuFile = new JMenu("文件");menuFile.add(itemBuilt);)
要进行操作就要添加监听(例:itemBuilt.addActionListener(this);),然后对这一监听进行方法的重写(例:public void actionPerformed(ActionEvent e) {
String actionCommand = e.getActionCommand();
if (e.getSource() instanceof JMenu)
;
{
if (e.getSource() == itemBuilt) {
builtfile();
})
然后public一个对应的函数(例:
public void builtfile() {
savefile();
wen.setText(null);
fileName = "";
})
(2)打开/保存/另存为/退出
通过FileDialog文件处理对话框对文件进行读取及保存,通过识别fileName是否为空确定文件是否保存过来确定是否弹出保存窗口。
退出时通过添加窗口监听addWindowListener来监听退出,从而添加JOptionPane导入类确定框,确定后弹出保存对话框操作后实现退出。
(3)查找与替换
创建一个MyJDialog继承JDialog临时对话框类,识别想查找的内容及长度,输入为空或无此字符会有反馈。
使用indexof查找内容,用select选择住查找的内容,使用replace对内容进行替换。
(4)大小写转换
获得文本内容,然后使用toUpperCase和toLowerCase方法实现大小写转换。
(5)字体设置及背景颜色
字号及字体用JOptionPane.showInputDialog获取接下来用户输入的内容(字号或字体),代入font(””,font.plain,n)来修改文本的格式;颜色通过JColorChooser进行选择,使用setBackground,setForeground方法作用在文本域和字体上。
(6)统计
分别通过getLineCount,getText().length()方法,以及正则表达式对文本进行进行统计,以消息对话框展示。
三、测试分析
(1)新建
点击“新建”会弹出保存对话框,不管是否保存都会完成新建,清除已有的内容
(2)打开
弹出打开对话框并能实现打开文本文件
(3)保存(另存为…)
对已经保存过的文件点击“保存”会直接保存到上次的文件中,“另存为”则再次打开保存对话框重新选择
(4)退出(关闭)
弹出导入类选择对话框,点击“是”弹出保存对话框,“否”则取消退出
(5)查找与替换
再次点击“查找”可查找下一个
(6)大小写转换
(7)字体格式
通过输入来更改文字字体的样式,字号,用颜色对话框完成对文字,背景颜色的更改
(8)统计
以上是文本编辑器的测试情况,基本符合预计的结果。
四、设计体会
首先在总体函数实现方面,为避免直接使用一些方法而出现困难错乱,采用点击监听并
重写方法,再对每一个板块的方法进行定义调用,让我体会到许多功能实现工程的制作也可以使用这种方法,定义框架再对每一个部分进行单独的操作。
在字体设置板块,使用的方法是用户自主输入,可改变的字号和字体会和系统有的字体同步,会避免出现陈列选择的代码过于复杂,以及增大可选择可改变的空间。
体会到设计过程中不一定要循规蹈矩按照他人的思路去做,要有属于自己独特的想法去做,才能做出一个比较符合自己心水的东西。
附录:源代码。