记事本 课程设计报告标准格式.doc_第1页
记事本 课程设计报告标准格式.doc_第2页
记事本 课程设计报告标准格式.doc_第3页
记事本 课程设计报告标准格式.doc_第4页
记事本 课程设计报告标准格式.doc_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

淮 海 工 学 院 计算机工程学院课程设计报告设计名称: 面向对象课程设计 选题名称: 姓 名: 学 号: 专业班级: 系 (院): 计算机工程学院 设计时间: 2014.6.82014.6.21 设计地点: 软件实验室、教室 成绩:指导教师评语: 签名: 年 月 日面向对象课程设计报告 第 15 页,共 15 页1课程设计目的面向对象程序设计是一门实践性很强的计算机专业基础课程,课程设计是学习完该课程后进行的一次较全面的综合练习。其目的在于通过实践加深学生对面向对象程序设计的理论、方法和基础知识的理解,掌握使用Java语言进行面向对象设计的基本方法,提高运用面向对象知识分析实际问题、解决实际问题的能力,提高学生的应用能力。2课程设计任务与要求:文本编辑器的设计与实现要求:设计一个类似于Windows记事本(Notepad)的Java程序。可以打开、新建、保存一个文本文件;对选中的文本进行各种编辑操作(设置字体、字号、字型、对齐方式、背景、前景色、复制、粘贴、剪切、查找、替换等);在文本中能够插入对象。课程设计可选用NetBeans、Eclipse、JBuilder等作为开发平台以提高开发效率,尽可能熟练掌握其中一种集成开发环境。建议采用UML建模技术进行系统的分析设计,在Visio中画出系统用例图和类图,并将UML图复制到设计报告中。通过这次设计,要求掌握以下内容:1)面向对象技术中的继承与多态(重载和覆盖)机制、各种修饰符的使用2)类、包、接口的定义与使用3)常用工具类与算法的实现(数组、向量、字符串、链表)4)Java常用标准GUI组件及其事件处理5)Java的异常处理机制6)Java的数据库连接技术7)Java的多线程技术与动画制作8)Java的网络编程3课程设计说明书3.1程序基本功能概括文本编辑器文件打开编辑格式保存另存为关闭撤销剪切复制粘贴字体自动换行3.2附录:源程序(每句语言要有详细解释);import java.awt.Color;import java.awt.Dimension;import java.awt.FlowLayout;import java.awt.Font;import java.awt.GraphicsEnvironment;import java.awt.GridLayout;import java.awt.Toolkit;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.InputEvent;import java.awt.event.KeyEvent;import java.awt.event.MouseEvent;import java.awt.event.MouseListener;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.File;import java.io.FileReader;import java.io.FileWriter;import java.io.IOException;import javax.swing.JButton;import javax.swing.JColorChooser;import javax.swing.JComboBox;import javax.swing.JFileChooser;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JMenu;import javax.swing.JMenuBar;import javax.swing.JMenuItem;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JPopupMenu;import javax.swing.JScrollPane;import javax.swing.JTextArea;import javax.swing.KeyStroke;import javax.swing.filechooser.FileNameExtensionFilter;import javax.swing.undo.UndoManager;public class Notepad extends JFrame implements ActionListener, MouseListener private JMenu filemenu;private JMenuItem menuOpen;private JMenuItem menuSave;private JMenuItem menuSaveAs;private JMenuItem menuClose;private JTextArea text;private JMenuItem menunew;private JLabel stateBar;private JFileChooser fileChooser;private JPopupMenu popupmenu;private static UndoManager undoManger = new UndoManager();/ 第一步:构建文本框public Notepad() super(新建文本文件);Toolkit kit = Toolkit.getDefaultToolkit();Dimension dim = kit.getScreenSize(); / 获得屏幕分辨率this.setBounds(dim.width / 4, dim.height / 4, dim.width / 2,dim.height / 2); / 窗口居中setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);text = new JTextArea();text.addMouseListener(this); / 文本区注册鼠标事件监听器this.getContentPane().add(new JScrollPane(text); / 文本区添加到滚动窗格,滚动窗格添加到框架内容窗格中部/ 第二步:设置下拉菜单栏/ (1):文件菜单JMenuBar menubar = new JMenuBar();JMenu filemenu = new JMenu(文件);/ 2):打开menuOpen = new JMenuItem(打开);/ menuOpen.setFont(黑体);menuOpen.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O,InputEvent.CTRL_MASK);menuOpen.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) open();); /保存menuSave = new JMenuItem(保存);menuSave.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,InputEvent.CTRL_MASK);menuSave.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) savefile(););/另存为menuSaveAs = new JMenuItem(另存为);menuSaveAs.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) savefileAs();); /关闭menuClose = new JMenuItem(关闭);menuClose.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Q,InputEvent.CTRL_MASK);menuClose.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) closefile(););filemenu.add(menuOpen);filemenu.addSeparator(); / 分隔线filemenu.add(menuSave);filemenu.add(menuSaveAs);filemenu.addSeparator(); / 分隔线filemenu.add(menuClose);/ (2):编辑菜单JMenu menuedit = new JMenu(编辑);/ 1):撤销JMenuItem menuremov = new JMenuItem(撤销);menuremov.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Z,InputEvent.CTRL_MASK);text.getDocument().addUndoableEditListener(undoManger);menuremov.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) if (undoManger.canUndo() undoManger.undo(); else JOptionPane.showMessageDialog(null, 无法撤销, 警告,JOptionPane.WARNING_MESSAGE););/ 2):剪切JMenuItem menucut = new JMenuItem(剪切);menucut.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X,InputEvent.CTRL_MASK);menucut.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) text.cut(););/ 3):复制JMenuItem menucopy = new JMenuItem(复制);menucopy.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C,InputEvent.CTRL_MASK);menucopy.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) text.copy(););/ 4):粘贴JMenuItem menupaste = new JMenuItem(粘贴);menupaste.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V,InputEvent.CTRL_MASK);menupaste.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) text.paste(););/ 5):删除JMenuItem menudelete = new JMenuItem(删除);menudelete.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_DELETE,InputEvent.CTRL_MASK);menudelete.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) text.replaceSelection(); / 用给定字符串替换原字符串);/ 6):查找/ 7):查找下一个/ 8):全选JMenuItem menuselectall = new JMenuItem(全选);menuselectall.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A,InputEvent.CTRL_MASK);menuselectall.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) text.selectAll(););menuedit.add(menuremov);menuedit.addSeparator(); / 分隔线menuedit.add(menucut);menuedit.add(menucopy);menuedit.add(menupaste);menuedit.addSeparator(); / 分隔线menuedit.add(menudelete);menuedit.add(menuselectall);/ 字体JMenu menufont = new JMenu(格式);JMenuItem fontmenu = new JMenuItem(字体);fontmenu.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) font f = new font(text);f.setVisible(true););JMenuItem autommenu = new JMenuItem(自动换行);autommenu.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) text.setLineWrap(true););menufont.add(fontmenu);menufont.add(autommenu);/ 菜单 - 关于JMenu aboutMenu = new JMenu(关于);JMenuItem menuAbout = new JMenuItem(关于NotePad);menuAbout.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) / 显示对话框JOptionPane.showOptionDialog(null, 程序名称:n NotePad n+ 程序设计:n Java课程设计 n + 简介:n 一个简单的文字编辑器n+ 制作人:n 卜伏辉n ,关于NotePad, JOptionPane.DEFAULT_OPTION,JOptionPane.INFORMATION_MESSAGE, null, null, null););aboutMenu.add(menuAbout);menubar.add(filemenu);menubar.add(menuedit);menubar.add(menufont);menubar.add(aboutMenu);setJMenuBar(menubar);/右键弹出菜单popupmenu = new JPopupMenu(); / 快捷菜单对象String menuitemstr = 剪切, 复制, 粘贴 ;JMenuItem popmenuitem = new JMenuItemmenuitemstr.length;for (int i = 0; i popmenuitem.length; i+) popmenuitemi = new JMenuItem(menuitemstri); / 菜单项popupmenu.add(popmenuitemi); / 快捷菜单加入菜单项popmenuitemi.addActionListener(this);popmenuitem0.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X,InputEvent.CTRL_MASK);/ 设置快捷键Ctrl+Xpopmenuitem1.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C,InputEvent.CTRL_MASK);/ 设置快捷键Ctrl+Cpopmenuitem2.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V,InputEvent.CTRL_MASK);/ 设置快捷键Ctrl+Vtext.add(popupmenu);setVisible(true);public static void main(String args) new Notepad();/鼠标监听public void mouseClicked(MouseEvent e) / TODO Auto-generated method stubif (e.getModifiers() = MouseEvent.BUTTON3_MASK) / 单击的是鼠标右键popupmenu.show(text, e.getX(), e.getY(); / 在鼠标单击处显示快捷菜单public void mousePressed(MouseEvent e) / TODO Auto-generated method stubpublic void mouseReleased(MouseEvent e) / TODO Auto-generated method stubpublic void mouseEntered(MouseEvent e) / TODO Auto-generated method stubpublic void mouseExited(MouseEvent e) / TODO Auto-generated method stub/事件监听public void actionPerformed(ActionEvent e) / TODO Auto-generated method stubif (e.getActionCommand() = 退出)if (JOptionPane.showConfirmDialog(this, 终止当前程序运行?) = 0)System.exit(0); / 单击确认对话框中的“是”按钮,结束程序运行if (e.getActionCommand() = 剪切)text.cut(); / 将选中文本剪切送系统剪贴板if (e.getActionCommand() = 复制)text.copy(); / 将选中文本复制送系统剪贴板if (e.getActionCommand() = 粘贴)text.paste(); / 将剪贴板的文本粘贴在当前位置return;/ 打开private void open() / fileChooser 是 JFileChooser 的实例/ 显示文件选取的对话框fileChooser = new JFileChooser();try FileNameExtensionFilter filter = new FileNameExtensionFilter(文本文档, *.txt);fileChooser.setFileFilter(filter);int returnVal = fileChooser.showOpenDialog(this);if (returnVal = JFileChooser.APPROVE_OPTION) File b = fileChooser.getSelectedFile();BufferedReader c = new BufferedReader(new FileReader(b);text.read(c, b); catch (IOException e) JOptionPane.showMessageDialog(null, e.toString(), 开启文件失败,JOptionPane.ERROR_MESSAGE);/ 保存private void savefile() / fileChooser 是 JFileChooser 的实例/ 显示文件选取的对话框fileChooser = new JFileChooser();try FileNameExtensionFilter filter = new FileNameExtensionFilter(文本文档, *.txt);fileChooser.setFileFilter(filter);int returnVal = fileChooser.showSaveDialog(this);if (returnVal = JFileChooser.APPROVE_OPTION) File b = fileChooser.getSelectedFile();BufferedWriter c = new BufferedWriter(new FileWriter(b);text.write(c); catch (IOException e) JOptionPane.showMessageDialog(null, e.toString(), 开启文件失败,JOptionPane.ERROR_MESSAGE);/ 另存为private void savefileAs() / fileChooser 是 JFileChooser 的实例/ 显示文件选取的对话框fileChooser = new JFileChooser();fileChooser.setDialogTitle(另存为);FileNameExtensionFilter filter = new FileNameExtensionFilter(文本文档,*.txt);fileChooser.setFileFilter(filter);int returnVal = fileChooser.showSaveDialog(this);if (returnVal = JFileChooser.APPROVE_OPTION) File b = fileChooser.getSelectedFile();savefile();/ 关闭窗口private void closefile() dispose();class font extends JFrame implements ActionListener, MouseListener private JComboBox combox_name, combox_size;private JButton button;JPanel panel1, panel2, panel3;JComboBox toolbar, toolbar1, toolbar2;JTextArea text;JLabel label;Color color;JPanel panel;public font(JTextArea text) super(字体);this.text = text;Dimension dim = getToolkit().getScreenSize(); / 获得屏幕分辨率this.setBounds(dim.width * 3 / 8, dim.height * 3 / 8, dim.width / 4,dim.height / 3); / 窗口居中toolbar = new JComboBox();toolbar1 = new JComboBox();toolbar2 = new JComboBox();GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();String fontsName = ge.getAvailableFontFamilyNames(); / 获得系统字体for (int i = 0; i fontsName.length; i+) toolbar.addItem(fontsNamei);String fontsstyle = 粗体, 常规, 斜体 ;for (int i = 0; i fontsstyle.length; i+) toolbar1.addItem(fontsstylei);String sizestr = 10, 20, 30, 40, 50, 60, 70 ;for (int i = 0; i sizestr.length; i+) toolbar2.addItem(sizestri);JLabel label = new JLabel(颜色);label.addMouseListener(this);button = new JButton(确定);button.addActionListener(this);panel = new JPanel(new GridLayout(5, 1, 0, 10);panel.add(toolbar);panel.add(toolbar1);panel.add(toolbar2);panel2 = new JPanel(new FlowLayout();panel2.add(label);panel1 = new JPanel(new FlowLayout();panel1.add(button);panel.add(panel1);panel.add(panel2);this.add(panel);/鼠标监听public void mouseClicked(MouseEvent e) / TODO Auto-generated method stubpublic void mousePressed(MouseEvent e) color = JColorChooser.showDialog(this, 颜色, Color.black);public void mouseReleased(MouseEvent e) / TODO Auto-generated method stubpublic void mouseEntered(MouseEvent e) / TODO Auto-generated method stubpublic void mouseExited(MouseEvent e) / TODO Auto-generated method stub/事件响应public void actionPerformed(ActionEvent e) / TODO Auto-generated method stub/对button按钮的响应if (e.getSource() = button) String name = toolb

温馨提示

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

评论

0/150

提交评论