精品资料(2021-2022年收藏)制作一个文本编辑器java课程设计报告_第1页
精品资料(2021-2022年收藏)制作一个文本编辑器java课程设计报告_第2页
精品资料(2021-2022年收藏)制作一个文本编辑器java课程设计报告_第3页
精品资料(2021-2022年收藏)制作一个文本编辑器java课程设计报告_第4页
精品资料(2021-2022年收藏)制作一个文本编辑器java课程设计报告_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Java语言程序设计课程设计报告Java语言程序设计课程设计报告设计题目: 制作一个文本编辑器 分 院: 电 信 分 院 班 级: 姓 名: 学 号: 指导教师: 黄建华 实验地点: 三教机六 课设时间: 2009-12-202009-12-25 二OO九 年 十二 月 二十五 日Java语言程序设计课程设计 目录 一、 设计思路2二、 设计过程3三、 测试结果12四、 心得体会13五、 程序代码14一、 设计思路(一)设计概念要制作一个文本编辑器,首先得理清思路,要做一个什么样的文本编辑器,做成的编辑器要求要实现哪些功能,要实现这些功能分别需要用到什么方法以及怎样组织编辑器的框架结构等等问题

2、。现把我的设计思路简要介绍如下:1、明确设计要求首先要创建了一个窗体,标题为“设计的文本编辑器”,设计要求是要编辑文件和编辑这两个菜单项,要求在文件菜单项上添加新建、打开、保存、退出四个下拉子菜单,要求当用户单击新建时就可以新建一个空白文档;当单击打开时可以从已有的目录下打开需要打开的文本文件,在原有文件中可以选择要打开的文件;当单击保存时可以出现保存的路径,选择自己要保存到的路径将文件保存到指定的文件夹中;单击退出菜单时退出文件的下拉菜单。在编辑菜单下的子菜单复制,可以进行对文本的复制。在文本区内要求当单击鼠标右键时可以弹出菜单,要求有两个子菜单为复制和字体,通过单击字体菜单可以实现对字体改

3、变。而且在窗体的右上方有三个按钮可以实现最小化、最大化、和关闭。而且用户也可以根据自己的需要改变窗体的大小。2、确定设计思路即设计步骤(必须想到要用到哪几个方面的程序、包、方法、以及基本的程序语言)(1)创建一个窗体,包括构造一个文本域为编辑器各种功能的实现提供一个伸展平台;(2)新建一个空的菜单条,然后添加菜单项(文件菜单和编辑菜单);(3)设计程序在菜单项下添加子菜单,文本菜单对应新建、打开、保存和退出,编辑菜单包括的子菜单为复制和粘贴;(4)添加右键快捷弹出式菜单,包括复制、字体等菜单项。3、上两步都完成以后,就进入程序的检测运行阶段即所谓的编译运行,看是否符合设计要求,是否达到理想中的

4、那种效果,在测验阶段,要一步一步完善自己的作品直至真正意义上的完成整个设计过程。(二)流程图新建打开Open保存Save退出Exit复制Copy字体大小复制Copy粘贴Paste字体颜色快捷菜单编辑Edit文件File空的菜单条文本域TextArea窗体Frame主方法Main()公共类Bjq粘贴Paste二、设计过程1、 功能介绍:通过记事本编辑器可以实现新建、打开、保存文本文件、以及退出;同时也有对字体的改变、对字的颜色的改变以及复制、粘贴等功能,根据自己的意愿改变窗体,实行对其的最小化、最大化、关闭等等。2、设计步骤:import javax.swing.*;import javax.s

5、wing.event.*;import java.awt.*;import java.awt.print.*;import java.awt.datatransfer.*;import java.applet.*;import javax.swing.JColorChooser;import javax.swing.event.*;import java.awt.event.*;import java.io.*;import javax.swing.*;import javax.swing.text.*;import javax.swing.colorchooser.*;引用两个包:javax

6、、java、以及对应的方法 (1) 首先创建一个公共的类名为Bjq为文本编辑器创建一个窗体并设计标题为:08通信(2)班骆玉春设计的文本编辑器Bjq;并创建编辑器的文本域,具体代码如下;/设计标题JFrame f = new JFrame();f.setTitle(08通信(2)班骆玉春设计的文本编辑器Bjq);/构造文本域JTextArea aa = new JTextArea(, 20, 50);/构造一个文本域(2) 创建一个空的菜单条并添加两个菜单项(文件、编辑)JMenuBar cc = new JMenuBar();/创建一个空的菜单条/创建文件和编辑这两个菜单项JMenu fil

7、e = new JMenu(文件);JMenu edit = new JMenu(编辑);(3) 先设计一个匿名内部类,为文件、编辑菜单添加新建和其他下拉子菜单 “新建”子菜单:创建OpenL类实现了ActionLister并实现其读取文件的功能以匿名内部类的形式创建菜单监听器这些代码的作用是实现对新建、保存、打开、退出、复制进行监听,/ 实现文本文件的打开功能-即文件菜单下的子菜单打开class openL implements ActionListener public void actionPerformed(ActionEvent e) JFileChooser fc = new JF

8、ileChooser();int returnVal = fc.showDialog(Bjq.this, 打开); “退出”子菜单:/实现文本文件的退出功能-即文件菜单下的子菜单退出class exitL implements ActionListener public void actionPerformed(ActionEvent e) System.exit(0);/新建、保存、复制、粘贴与之相类似就不做说明(4) 右键快捷菜单的字体子菜单的创建:字体包括字体的大小和字体的颜色等等/ 设计字体大小class fontsize implements ActionListener publi

9、c void actionPerformed(ActionEvent e) int n;String no;no=JOptionPane.showInputDialog(请输入你想要的字体大小:);n=Integer.parseInt(no);Font ft; ft=new Font(,Font.BOLD,n);aa.setFont(ft);通过用户输入所需的字号的大小来调节字体大小以满足不同需要,/ 设计字体颜色class fontcolor implements ActionListener public void actionPerformed(ActionEvent e) Color

10、a=new Color(0,192,191); JColorChooser c=new JColorChooser(); a=c.showDialog(Bjq.this, 颜色选择框,a); aa.setForeground(a); (5)为鼠标创建监听器。用于用鼠标点击右键时出现快捷菜单:复制、粘贴、字体大小、字体颜色。popup = new JPopupMenu();JMenuItem copy = new JMenuItem(复制);JMenuItem word = new JMenuItem(字体);public void mouseEntered(MouseEvent e) publ

11、ic void mouseExited(MouseEvent e) public void mousePressed(MouseEvent e)public void mouseReleased(MouseEvent e)当单击右键时可以弹出复制、粘贴和字体菜单,实现功能,实现鼠标的控制来完成弹出菜单的操作。(6)为窗体添加监听器当用户按关闭按钮时就可以将窗口关闭,实现了对窗体的控制。/ 关闭窗口protected static final class appCloseL extends WindowAdapter public void windowClosing(WindowEvent e

12、) System.exit(0); f.setSize(800, 500); f.setVisible(true);(这两个代码是设计窗体的的大小和窗口的可见性。)(7)设计main方法:为整个程序的开始提供了入口,public static void main(String args) JFrame f = new JFrame();Bjq applet = new Bjq();f.setTitle(08通信(2)班骆玉春设计的文本编辑器Bjq);f.setBackground(Color.red);f.getContentPane().add(applet, BorderLayout.CE

13、NTER);f.addWindowListener(new appCloseL();f.setSize(800, 500);f.setVisible(true);f.pack();为静态的主函数。三、测试效果1:两个菜单项:文件和编辑的截图:2:编辑菜单以及子菜单的截图:3:右键弹出快捷菜单的截图:4:新建并通过快捷键复制和设置字体颜色为红色的截图:5:保存文件并从保存到的目录下打开文件的截图:6:打开其他目录下的文件的截图:7: 设置字体的大小和颜色的截图:四、设计体会Java语言是很神奇的一门课程,我喜欢编程。喜欢最后编完的一刹那的成功,自从我进了学校选择了通信专业后就更加喜欢了,更是备感

14、Java的重要性,天天接触Java时,越来越着迷于它。尤其是进行课程设计,我更加深刻体会到了Java的诡异,无法掌控,最后的程序虽没有实现所有功能,但也可以运行了,这次课程设计中我独立完成了程序的绝大多数部分,很开心。不过有太多不会,总是蒙一些东西。有些一知半解的东西还是不了解,有些东西是会用了,但对其工作原理却很模糊。这些都是以后在学Java用Java的路上需要解决的,Java的魅力真的让人着迷。在课程设计的过程我遇到了好多的麻烦,有些是自己的马虎,有些也是因为程序太长有时会出一些小的问题,都是自己不应该发生的。但有些是不可以避免的啊,所以说我们在进行Java课程设计的时候要认真仔细不要只图

15、快,要认真每一个环节的输入,否则会给我们带来许多不必要的麻烦,因此要想做好一个好的完整的Java程序一定要有足够的耐心,只有这样你才会有好的结果,才会感觉到成功的喜悦,理解到认真和粗心的后果。总之,这次设计还是教了我很多,包括做人的道理,以及一些在平时生活中不可能遇见的一些问题,使我领略到一些人生道理,这些是在现实生活中难以解决的,下学期就要考二级,很想学好计算机,更想把Java掌握的更加熟练,因为它总能给我意外的收获,使我对人生有新的认识,让我感受到最后成功那一刻的美妙、开心!结语就用:“谢谢Java!”结束吧!是她给了我对计算机的进一步了解,我更加热爱学习她了。附:源程序代码/Bjq.ja

16、vaimport java.awt.*;import java.awt.print.*;import java.awt.datatransfer.*;import java.applet.*;import javax.swing.JColorChooser;import javax.swing.event.*;import java.awt.event.*;import java.io.*;import javax.swing.*;import javax.swing.text.*;import javax.swing.colorchooser.*;public class Bjq exten

17、ds JPanel private JPopupMenu popupMenu = new JPopupMenu();JTextArea aa = new JTextArea(, 20, 50);/构造一个文本域JScrollPane bb = new JScrollPane(aa);JMenuBar cc = new JMenuBar();/创建一个空的菜单条JMenu file = new JMenu(文件); /创建文件和编辑这两个菜单项JMenu edit = new JMenu(编辑);/ 菜单内容JMenuItem dd;/ 实例化剪切板Clipboard clipbd = getT

18、oolkit().getSystemClipboard();/JMenu fileMenu; JPopupMenu jPopupMenuOne; JMenuItem openFile,closeFile,exit; JRadioButtonMenuItem copyFile,pasteFile; ButtonGroup buttonGroupOne; public Bjq() /新建一个内部类class newL implements ActionListener public void actionPerformed(ActionEvent e) aa.setDocument(new Pla

19、inDocument(); / 实现文本文件的打开功能-即文件菜单下的子菜单打开class openL implements ActionListener public void actionPerformed(ActionEvent e) JFileChooser fc = new JFileChooser();int returnVal = fc.showDialog(Bjq.this, 打开);if (returnVal = JFileChooser.APPROVE_OPTION) String file = fc.getSelectedFile().getPath();if (file

20、 = null) return;/ 读取文件try Reader in = new FileReader(file);char buff = new char4096;int nch;while (nch = in.read(buff, 0, buff.length) != -1) aa.setDocument(new PlainDocument();aa.append(new String(buff, 0, nch); catch (IOException io) System.err.println(IOException: + io.getMessage(); else return;/

21、 实现文本文件的保存功能-即文件菜单下的子菜单保存class saveL implements ActionListener public void actionPerformed(ActionEvent e) JFileChooser fc = new JFileChooser();int returnVal = fc.showSaveDialog(Bjq.this);if (returnVal = JFileChooser.APPROVE_OPTION) String savefile = fc.getSelectedFile().getPath();if (savefile = null

22、) return; else String docToSave = aa.getText();if (docToSave != null) FileOutputStream fstrm = null;BufferedOutputStream ostrm = null;try fstrm = new FileOutputStream(savefile);ostrm = new BufferedOutputStream(fstrm);byte bytes = null;try bytes = docToSave.getBytes(); catch (Exception e1) e1.printSt

23、ackTrace();ostrm.write(bytes); catch (IOException io) System.err.println(IOException: + io.getMessage(); finally try ostrm.flush();fstrm.close();ostrm.close(); catch (IOException ioe) System.err.println(IOException: + ioe.getMessage(); else return;/实现文本文件的退出功能-即文件菜单下的子菜单退出class exitL implements Acti

24、onListener public void actionPerformed(ActionEvent e) System.exit(0);/ 实现文本文件的粘贴功能-即编辑菜单下的子菜单粘贴class copyL implements ActionListener public void actionPerformed(ActionEvent e) String selection = aa.getSelectedText();StringSelection clipString = new StringSelection(selection);clipbd.setContents(clipS

25、tring, clipString);/ 粘贴class pasteL implements ActionListener public void actionPerformed(ActionEvent e) Transferable clipData = clipbd.getContents(Bjq.this);try String clipString = (String) clipData.getTransferData(DataFlavor.stringFlavor);aa.replaceRange(clipString, aa.getSelectionStart(), aa.getS

26、electionEnd(); catch (Exception ex) / 设计字体大小class fontsize implements ActionListener public void actionPerformed(ActionEvent e) int n;String no;no=JOptionPane.showInputDialog(请输入你想要的字体大小:);n=Integer.parseInt(no);Font ft; ft=new Font(,Font.BOLD,n);aa.setFont(ft);/ 设计字体颜色class fontcolor implements Act

27、ionListener public void actionPerformed(ActionEvent e) Color a=new Color(0,192,191); JColorChooser c=new JColorChooser(); a=c.showDialog(Bjq.this, 颜色选择框,a); aa.setForeground(a); / 注册一个事件监听器class jtaL implements ActionListener public void actionPerformed(ActionEvent e) /define popmenu 定义弹出菜单 JMenuIte

28、m cut = new JMenuItem(粘贴); JMenuItem FontSize = new JMenuItem(字体大小); JMenuItem FontColor = new JMenuItem(字体颜色);JMenuItem copy = new JMenuItem(复制); popupMenu.add(copy); copy.addActionListener(new copyL(); popupMenu.add(cut); cut.addActionListener(new pasteL(); popupMenu.add(FontSize); FontSize.addAct

29、ionListener(new fontsize(); popupMenu.add(FontColor); FontColor.addActionListener(new fontcolor(); aa.addMouseListener(new MouseAdapter() public void mousePressed(MouseEvent e)checkForTriggerEvent(e); public void mouseReleased(MouseEvent e)checkForTriggerEvent(e); private void checkForTriggerEvent(M

30、ouseEvent e) if(e.isPopupTrigger() popupMenu.show(e.getComponent(),e.getX(),e.getY(); ); /文本区添加快捷菜单/ 快捷键设置file.add(dd = new JMenuItem(新建, KeyEvent.VK_N);dd.addActionListener(new newL();file.add(dd = new JMenuItem(打开, KeyEvent.VK_O);dd.addActionListener(new openL();file.add(dd = new JMenuItem(保存, KeyEvent.VK_S);dd.addActionListener(new saveL();f

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论