Java记事本课程设计报告
- 格式:doc
- 大小:271.00 KB
- 文档页数:36
java课程设计报告记事本一、教学目标本课程旨在通过学习Java编程语言,使学生掌握Java编程的基本语法、面向对象编程思想,以及常用数据结构和算法。
通过本课程的学习,使学生能够独立完成简单的Java程序,培养学生的编程能力和逻辑思维能力。
同时,通过实践操作,使学生掌握Java开发工具的使用,提高学生的动手能力。
在学习过程中,培养学生积极思考、合作探讨的学习态度,提高学生的自主学习能力。
二、教学内容本课程的教学内容主要包括Java基本语法、数据类型、运算符、控制结构、数组、字符串、面向对象编程、异常处理、文件操作、集合框架、多线程编程等。
具体到教材,我们将按照教材的章节顺序进行教学,每个章节都会讲解相应的知识点,并通过实例进行讲解和演示。
在讲解过程中,我们会结合实际的编程案例,使学生能够更好地理解和掌握Java编程的知识。
三、教学方法为了提高教学效果,我们将采用多种教学方法进行教学。
首先,通过讲授法,向学生传授Java编程的基本知识和技巧。
其次,通过讨论法,引导学生进行思考和讨论,培养学生的逻辑思维能力。
再次,通过案例分析法,让学生通过分析实际案例,掌握Java编程的实际应用。
此外,我们还会安排实验课,让学生亲自动手编写代码,提高学生的动手能力。
通过多种教学方法的运用,激发学生的学习兴趣,提高学生的学习主动性。
四、教学资源为了保证教学质量,我们将准备丰富的教学资源。
教材和参考书将作为主要的学习材料,我们将选择内容丰富、讲解详细的教材和参考书。
此外,我们还会收集和整理多媒体教学资料,如教学视频、PPT课件等,以丰富教学手段,提高学生的学习兴趣。
在实验课上,我们将使用实验室的计算机进行教学,并配备相应的实验设备,以保证学生能够顺利进行实验操作。
五、教学评估为了全面、客观地评估学生的学习成果,我们将采取多种评估方式。
首先,通过平时表现评估,观察学生在课堂上的参与程度、提问回答等情况,了解学生的学习态度和理解能力。
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、复习、巩固Java语言的基础知识,进一步加深对Java语言的理解和掌握;2、课程设计为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼学生的分析解决实际问题的能力。
提高学生适应实际,实践编程的能力;3、培养学生在项目开发中团队合作精神、创新意识及能力。
四、设计小组五、指导老师六、设计课题文本编辑器的设计与实现要求:设计一个类似于Windows记事本(Notepad)的Java程序。
可以打开、新建、保存一个文本文件;对选中的文本进行各种编辑操作(设置字体、字号、字型、对齐方式、背景、前景色、复制、粘贴、剪切、查找、替换等);在文本中能够插入对象。
七、基本思路及关键问题的解决方法;设计一个类似于Windows记事本的Java程序,首先,设计一个窗体面板,对其进行布局管理、尺寸、位置以及可见性的设置,然后,对其菜单项添加,最后,实现事件监听,同时也是最关键的部分,充分利用课堂所学知识、API帮助文档、课外资料以及网上的相关资料,解决了一些自认为棘手的问题。
八、算法及截图涉及到的算法如下:打开:是文件输入流读入文件到特定的地方比如Textarea。
保存:是文件的输出流输出到目标路径下的文件。
另存为:把文件的输出到另一个目标路径下是的文件。
剪切、复制、粘贴、撤销、删除:是对字符串的操作。
字体:是对文本的操作。
自动换行:是对文本的操作。
九、调试过程中出现的问题及相应解决办法;编写字体类时,运行的窗口里面的组件的布局,开始我自己是用的FlowLayout布局,但是排出来的布局感觉很乱,最后使用的GridLayout布局,感觉布局好一点。
写删除按钮时,找不到删除的方法,最后使用text.replaceSelection(""); // 用给定字符串替换原字符串才解决。
十、课程设计心得体会;十一、源程序(有详细解释)import java.awt.*;import java.awt.event.*;import java.io.*;import javax.swing.*;import javax.swing.filechooser.FileNameExtensionFilter;import javax.swing.undo.UndoManager;public class NoteBookD 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 NoteBookD() {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_D ELETE,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.V K_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(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,RMATION_MESSAGE, null, null, null);}});menubar.add(filemenu);menubar.add(menuedit);menubar.add(menufont);menubar.add(aboutMenu);setJMenuBar(menubar);// 右键弹出菜单popupmenu = new JPopupMenu(); // 快捷菜单对象String menuitemstr[] = { "剪切", "复制", "粘贴" };JMenuItem popmenuitem[] = new JMenuItem[menuitemstr.length];for (int i = 0; i < popmenuitem.length; i++) {popmenuitem[i] = new JMenuItem(menuitemstr[i]); // 菜单项popupmenu.add(popmenuitem[i]); // 快捷菜单加入菜单项popmenuitem[i].addActionListener(this);}popmenuitem[0].setAccelerator(KeyStroke.getKeyStroke(KeyEvent. VK_X,InputEvent.CTRL_MASK));// 设置快捷键Ctrl+Xpopmenuitem[1].setAccelerator(KeyStroke.getKeyStroke(KeyEvent. VK_C,InputEvent.CTRL_MASK));// 设置快捷键Ctrl+Cpopmenuitem[2].setAccelerator(KeyStroke.getKeyStroke(KeyEvent. VK_V,InputEvent.CTRL_MASK));// 设置快捷键Ctrl+Vtext.add(popupmenu);setVisible(true);}public static void main(String[] args) {new NoteBookD();}// 鼠标监听public void mouseClicked(MouseEvent e) {if (e.getModifiers() == MouseEvent.BUTTON3_MASK) // 单击的是鼠标右键popupmenu.show(text, e.getX(), e.getY()); // 在鼠标单击处显示快捷菜单}public void mousePressed(MouseEvent e) {}public void mouseReleased(MouseEvent e) {}public void mouseEntered(MouseEvent e) {}public void mouseExited(MouseEvent e) {}// 事件监听public void actionPerformed(ActionEvent e) {if (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 = newFileNameExtensionFilter("文本文档","*.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(fontsName[i]);}String[] fontsstyle = { "粗体", "常规", "斜体" };for (int i = 0; i < fontsstyle.length; i++) {toolbar1.addItem(fontsstyle[i]);}String sizestr[] = { "10", "20", "30", "40", "50", "60", "70"};for (int i = 0; i < sizestr.length; i++) {toolbar2.addItem(sizestr[i]);}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) {}public void mousePressed(MouseEvent e) {color = JColorChooser.showDialog(this, "颜色", Color.black);}public void mouseReleased(MouseEvent e) {}public void mouseEntered(MouseEvent e) {}public void mouseExited(MouseEvent e) {}// 事件响应public void actionPerformed(ActionEvent e) {// 对button按钮的响应if (e.getSource() == button) {String name = toolbar.getSelectedItem().toString();// 获取toolbar的内容String font1 = toolbar1.getSelectedItem().toString();// 获取toolbar1的内容int size = Integer.parseInt(toolbar2.getSelectedItem().toString());// 获取toolbar的内容text.setForeground(color);// 设置字体颜色if (font1.equals("粗体")) {text.setFont(new Font(name, Font.BOLD, size));}if (font1.equals("常规")) {text.setFont(new Font(name, Font.PLAIN, size));}if (font1.equals("斜体")) {text.setFont(new Font(name, Font.ITALIC, size));}this.setVisible(false);}}public void main(String[] args) {new font(text);}}参考文献[1] Bruce Eckel. Java编程思想[M]. 北京:机械工业出版社,2009.[2] FLANAGAN. Java技术手册[M]. 北京:中国电力出版社,2002.[3] 孙一林,彭波. Java数据库编程实例[M]. 北京:清华大学出版社,2002.[4] 孙涌. 现代软件工程[M]. 北京:北京希望电子出版社,2003:92-135.。
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记事本实验报告(含源代码运行结果)嘉应学院计算机学院系/班别:指导老师:课程名称:实验内容:学生学号:学生姓名:实验地点:实验类型:实验时间:实验报告计算机学院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编程的基本概念和方法,培养学生的编程能力和解决问题的能力。
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课程设计报告记事本软件设计学生姓名:学号:年级专业:指导老师:张峰学院:山东·提交日期:年月目录1. 前言 (2)2.概要设计 (3)2.1 开发环境 (3)2.2 记事本功能 (3)2.3 界面设计 (3)3. 详细设计 (3)3.1 使用的JAVA类的说明 (3)3.1.1 主要的类 (3)3.1.2 类的主要方法 (4)3.2 设计总体认识 (5)3.3 程序流程图 (6)4. 运行结果 (6)5. 测试分析 (7)6. 源程序 (7)7. 总结 (10)1 前言随着科学技术的不断发展,计算机已经成为我们工作学习和生活中不可缺少的工具。
文本编辑器是个人计算机最司空见惯的应用程序了,在学习了Java语言之后,我决定使用Java语言编写记事本,具有基本的文字编辑功能。
Java是由Sun公司开发的新一代纯面向对象的网络编程语言。
其目标是建立一种在任意种机器、任一种操作系统的网络环境中运行的软件,实行所谓的“程序写一次,到处运行”的目标。
正因为如此,Java已成为当今Internet上最流行、最受欢迎的一种程序开发语言。
Java开发小组把Java按特性分为基本版、移动版、企业版,每个版本有一个软件开发包。
Java基本版本叫Java 2标准版(Java 2 Standard Edition,J2SE),它包含建立Java应用程序或者是Applet所需的应用程序编程接口(API)。
Java 2移动版(The Java 2 Mobile Edition,J2ME)包含创建无线Java应用程序的API。
还有Java 2企业版(The Java 2 Enterprise,J2EE)是J2SE的增强版本,包含建立多层架构应用程序API。
Java语言是由C++语言发展起而来的,是一种彻底的面向对象的程序设计语言。
作为一种纯面向对象的程序设计语言,它非常适合大型软件的开发。
Java 语言去掉了C++语言的一些容易引起错误的特性。
《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记事本一、课程目标知识目标:1. 理解Java基本语法结构,掌握面向对象编程的基本概念;2. 学会使用Java编写简单的记事本程序,理解程序的基本结构;3. 了解Java事件处理机制,掌握基本的用户界面设计方法。
技能目标:1. 能够运用所学知识,独立编写、调试和运行Java记事本程序;2. 培养良好的编程习惯,编写结构清晰、易于维护的代码;3. 学会使用集成开发环境(IDE)进行Java程序开发,提高编程效率。
情感态度价值观目标:1. 培养学生对编程的兴趣,激发学习积极性,增强自信心;2. 培养学生的团队协作能力,学会与他人分享和交流编程经验;3. 引导学生认识到编程在生活中的实际应用,培养创新意识和实践能力。
课程性质:本课程为实践性较强的Java编程课程,通过编写记事本程序,让学生掌握Java编程的基本知识和技能。
学生特点:学生处于初中或高中年级,具备一定的计算机操作能力和逻辑思维能力。
教学要求:结合学生特点,注重实践操作,激发学生的学习兴趣,培养编程技能,同时关注情感态度价值观的培养。
在教学过程中,将课程目标分解为具体的学习成果,便于教学设计和评估。
二、教学内容1. Java基本语法:变量、数据类型、运算符、控制语句(条件语句、循环语句);2. 面向对象编程:类与对象、构造方法、封装、继承、多态;3. Java事件处理机制:事件监听器、事件适配器、事件处理方法;4. 用户界面设计:窗口、标签、文本框、按钮等组件的使用;5. Java文件操作:文件的读取与写入、文件的保存与打开;6. 集成开发环境(IDE)的使用:Eclipse或IntelliJ IDEA的基本操作与调试技巧。
教学大纲:第一周:Java基本语法及控制语句学习;第二周:面向对象编程基本概念及实现;第三周:Java事件处理机制及用户界面设计;第四周:Java文件操作及记事本程序编写;第五周:实践与调试,完善记事本程序。
课程设计(大作业)报告课程名称:面向对象程序设计设计题目:设计一个记事本院系:信息技术学院课程设计(大作业)任务书课程设计(大作业)报告一、需求分析如今有关记事本的软件种类繁多。
功能也是应有尽有,但是,软件并不是十全十美的:有的文件体积相对于一般文字编辑来说太大;有的功能太繁杂,使初级使用者一时难以掌握。
仅从日常应用方面来说,实现输入、保存、编辑等简单实用的功能就够了。
本程序的设计就是依照这样一种需要设计了一个简单的记事本程序。
本程序要构建的记事本程序参照了Windows操作系统的记事本工具,具体其功能有以下几个方面:(1)菜单中有“文件”,“编辑”,“关于”三个主菜单。
(2)“文件”有“新建”“打开”“保存”“退出”四个子菜单:分别用于新建文件,打开文件,保存文件,退出记事本。
(3)“编辑”中有“剪切”“复制”“粘贴”“颜色”三个字菜单:用于剪切文字,复制文字,粘贴文字。
增加了“颜色”子菜单来对文字的颜色进行设置。
(4)“关于”菜单中有关于记事本程序的制作日期,作者等信息。
二、系统总体设计在本程序中,设计了一个菜单栏和文本内容区。
设计过程中用到了JScrollPane,JMenu,JTextPane,JFileChooser等。
JMenu用来制作菜单,菜单包括“文件”“编辑”“关于”。
JTextPane主要用来输入文本。
为了加入颜色的设置,所以加了一个JColorChooser组件。
1.系统功能结构图设计2.系统文件结构图设计3.系统编辑结构图设计UML图:三、软件平台1、使用JDK配置环境在JAVA编辑器下进行编辑JAVA源程序2、EditPlus 3四、模块的分析与实现构建菜单以及下拉菜单:JMenu[] menus=new JMenu[]{new JMenu("文件"),new JMenu("编辑"),new JMenu("关于")};J MenuItem optionofmenu[][]=new JMenuItem[][]{{new JMenuItem("新建"),new JMenuItem("打开"),new JMenuItem("保存"),new JMenuItem("退出")},{new JMenuItem("复制"),new JMenuItem("剪切"),new JMenuItem("粘贴"),new JMenuItem("颜色")},{new JMenuItem("关于")}};文件菜单事件监听:ActionListener action=new ActionListener(){public void actionPerformed(ActionEvent e){String name = e.getActionCommand();JMenuItem MI=(JMenuItem)e.getSource();if("新建".equals(name)){content.setText("");file=null;}else if("打开".equals(name)){if(file !=null)openfile.setSelectedFile(file);int returnVal=openfile.showOpenDialog(mynotepad.this);if(returnVal==JFileChooser.APPROVE_OPTION){file=openfile.getSelectedFile();unfold();}}else if("保存".equals(name)){if(file!=null) openfile.setSelectedFile(file);int returnVal=openfile.showSaveDialog(mynotepad.this);if(returnVal==JFileChooser.APPROVE_OPTION){file=openfile.getSelectedFile();saving();}}else if("退出".equals(name)){mynotepad f=new mynotepad();int s=JOptionPane.showConfirmDialog(f,"退出?","退出",JOptionPane.YES_NO_OPTION);编辑菜单的事件监听:else if("剪切".equals(name)){content.cut();}else if("复制".equals(name)){content.copy();}else if("粘贴".equals(name)){content.paste();}else if("颜色".equals(name)){color=JColorChooser.showDialog(mynotepad.this,"",color);content.setForeground(color);异常处理:void saving(){try{FileWriter Writef=new FileWriter(file);Writef.write(content.getText());Writef.close();}Catch (Exception e){e.printStackTrace();}}关于部分:void initAboutDialog(){about.setLayout(new GridLayout(3,1));about.getContentPane().setBackground(Color.white);about.getContentPane().add(new JLabel("简单记事本程序设计"));about.getContentPane().add(new JLabel("11级计算机1班"));about.getContentPane().add(new JLabel("制作者:彭磊"));about.getContentPane().add(new JLabel("2012年12月27日"));about.setModal(true);about.setSize(200,100);about.setLocation(250,150);}五、调试分析各部分调试功能如图所示:六、总结在完成记事本合格程序中,基本上实现了我在需求分析时所预期的功能。
java课程设计 记事本一、课程目标知识目标:1. 学生能理解记事本软件的基本功能需求,掌握Java编程语言实现文本编辑器的基础知识。
2. 学生能掌握Java中文件I/O操作,学会如何读取和保存文件。
3. 学生了解并掌握Java事件处理机制,实现对记事本界面上各种操作(如打开、保存、复制、粘贴等)的响应。
4. 学生理解MVC设计模式,并能应用于记事本程序的设计中。
技能目标:1. 学生能够独立设计并编写出一个具备基本功能的记事本程序,实现文本的打开、编辑、保存和另存为功能。
2. 学生通过实践,提高问题分析能力,掌握运用Java编程解决问题的方法和技巧。
3. 学生能够运用所学知识,对记事本程序进行扩展,增加如查找替换、字体设置等高级功能。
情感态度价值观目标:1. 学生在课程学习过程中,培养解决问题的耐心和毅力,增强对编程学习的兴趣。
2. 学生通过小组合作完成项目,培养团队协作能力和沟通技巧。
3. 学生学会分享编程心得,树立正确的学习态度,认识到编程对个人发展和社会进步的重要性。
本课程旨在让学生通过实际操作,掌握Java编程的基础知识和技能,培养实际编程能力。
考虑到学生年级的特点,课程内容设计将注重知识点的逐步深入和实际应用,使学生在完成课程学习后,能够具备独立设计和开发简单Java应用程序的能力。
二、教学内容1. Java基础知识回顾:包括数据类型、控制结构、类与对象、继承与多态等基础概念,以教材相关章节为参考,确保学生对Java基础知识有扎实的掌握。
2. 文件I/O操作:教学文件读写的基本方法,涉及File类、InputStream和OutputStream等类的使用,对应教材中文件操作相关章节。
3. Java事件处理机制:介绍事件监听器、事件源、事件对象等概念,以及如何使用AWT和Swing库处理图形用户界面事件,参考教材中图形用户界面设计相关内容。
4. MVC设计模式:讲解模型-视图-控制器设计模式的原理和应用,引导学生将设计模式应用于记事本程序设计,与教材中设计模式章节相结合。
Java课程设计报告专业:班级:姓名:学号:系部:目录目录 (2)正文 (3)一、设计内容和要求 (3)二、设计思路 (4)三、具体实现 ............................................................ 错误!未定义书签。
四、运行调试与分析 .............................................. 错误!未定义书签。
3五、设计体会小结 (21)正文一、设计内容和要求Java文档编辑器是一个允许修改DefaultStyledDocument对象的应用程序。
这些对象用于管理Swing文本组件(例如JTextPane和JTextArea)的内容。
JTextPane用于显示DefaultStyledDocument的内容。
通过改变与DefaultStyledDocument相关联的Style对象,能够改变DefaultStyledDocument在JTextPane中的显示方式。
此应用程序也能够将DefaultStyledDocument存储到磁盘上和读入以前存储的DefaultStyledDocument。
读、写、操纵DefaultStyledDocument的所有选项都可以通过使用菜单项来实现。
当这些菜单项被选中时,它们生成事件。
使用ActionListener, ItemListener, UndoableEditListener和MenuDragMouseListener对象来处理这些事件。
要求通过课程设计,使学生将掌握的Java语言基本知识应用于实践中,在实际练习中加深对Java语言各方面的知识和概念的理解,掌Java程序设计中编程方法、编程思想,深入理解Java语言在实际中的应用。
要求学生动手上机编程,掌握Java程序设计思想和设计方法,设计实现一个简单Java文档编辑器,该编辑器由打开文件、新建文件、保存、复制、剪切、粘贴、撤销、删除等基本文本操作功能组件组成,有能力和时间的同学还可以设计实现如查找、时间、设置字体颜色、格式等功能,右键菜单响应,快捷键等功能,进一步加强自己的编程能力和编程思想。
java记事本 课程设计一、课程目标知识目标:1. 理解Java基本语法和编程结构,掌握面向对象编程的基本概念;2. 学会使用Java编写简单的记事本程序,包括文件的读取、写入和保存功能;3. 掌握基本的异常处理和文件操作方法,了解其在实际编程中的应用。
技能目标:1. 能够运用所学知识,独立设计和编写简单的Java程序;2. 能够运用调试工具检查和修正程序中的错误,提高程序的稳定性;3. 培养良好的编程习惯,如合理的命名、注释和代码组织。
情感态度价值观目标:1. 培养学生对编程的兴趣,激发主动探索和实践的精神;2. 培养学生的团队合作意识,学会在编程过程中相互帮助、共同解决问题;3. 增强学生的自信心,让他们在编程实践中体验成功,认识到自己的潜力。
分析课程性质、学生特点和教学要求,本课程旨在帮助学生在掌握Java基本知识的基础上,通过编写记事本程序,深入理解编程原理,提高编程实践能力。
课程目标具体、可衡量,便于教学设计和评估。
在此基础上,将目标分解为具体的学习成果,使学生能够在课程结束后具备实际编程能力,为后续学习打下坚实基础。
二、教学内容1. Java基本语法和编程结构:变量、数据类型、运算符、控制流程(条件语句、循环语句)、数组等基本概念;2. 面向对象编程:类与对象、构造方法、封装、继承、多态等基本概念及其应用;3. 文件操作:文件读取、写入、保存等方法,异常处理机制;4. 简单记事本程序设计:界面设计、功能模块划分、代码编写与调试;5. 教学大纲:- 第一周:Java基本语法和编程结构学习,完成相关练习;- 第二周:面向对象编程概念学习,案例分析;- 第三周:文件操作方法学习,编写简单的文件读写程序;- 第四周:记事本程序设计,分模块编写代码,进行调试与优化;- 第五周:课程总结,学生展示作品,相互交流与评价。
教学内容的选择和组织确保了科学性和系统性,与课本关联紧密,符合教学实际。
教学大纲的制定明确了教学内容的安排和进度,便于教师授课和学生学习。
.. . .学院课程设计题目:记事本程序设计院〔系〕:数学与计算机学院年级专业:姓名:000000学号:指导教师:二〇一三年十二月三十日学院教务处制学院本科学生课程设计任务书课程设计〔论文〕指导教师成绩评定表摘要目前,很多新的技术领域都涉及到了Java语言,Java语言是面向对象编程,并涉及到网络、多线程等重要的根底知识,因此Java语言也是学习面向对象编程和网络编程的首选语言。
按照教学培养方案要求,学生在学习完课本中指定课时的知识后,应安排一定课时的课程设计。
其主要目的是使学生深入理解并实践在本课程中所学的有关JAVA程序设计方面的语言根底、异常处理、事件处理、小应用程序以及图形用户界面设计等。
故此“记事本〞应运而生。
该报告中的程序是简易记事本。
使用Java程序编写,能够进展输入文字操作,并具有新建文件,翻开文件,保存文件,退出,复制,粘贴,剪切等功能,不同之处是本程序能够对文字的颜色进展设置。
该程序主要用到了Java swing和事件监听等。
关键字:记事本,Java,Java swing目录摘要 (I)1 前言 (2)2 需求分析 (3)2.1需求分析 (3)2.2功能设计 (3)3 概要设计 (4)3.1程序设计思路 (4)3.2程序运行界面 (4)3.3模块说明图 (5)3.4程序流程图 (6)3.5程序相关说明 (7)4 程序详细设计与分析 (7)4.1初始化组件 (7)4.2.构建菜单栏及其下拉菜单 (8)4.3 “文件〞菜单的事件监听 (8)4.4 “编辑〞菜单的事件监听 (9)5 测试分析 (10)结论 (13)参考文献 (14)附录 (14)1 前言Java的前身是Oak,它一开场只是被应用于消费性电子产品中。
后来它的开发者们发现它还可以被用于更大围的Internet上。
1995年,Java语言的名字从Oak编程了Java。
1997年J2SE1.1发布。
1998年J2SE1.2发布,标志Java2的诞生。
河南工程学院《Java语言程序设计》课程设计记事本的设计与实现学生姓名: X X X学院:计算机学院专业班级:软件工程1242专业课程:《Java语言程序设计》指导教师: X X X2014 年 6 月 13 日目录第1章系统设计目的 (1)1.1题目与要求 (1)1.2设计目的 (1)第2章系统实现思路 (2)2.1 实现思路 (2)2.2系统流程图 (3)第3章系统详细设计 (6)3.1界面设计 (6)3.2功能设计 (7)3.3功能实现 (8)第4章系统调试运行 (13)4.1界面测试 (13)4.2 功能测试 (13)第5章课程设计体会 (17)参考文献 (18)第1章系统设计目的1.1题目与要求设计一个简单的Windows记事本,可以实现以下功能: 1:文件的新建,打开,保存;2:对文件的编辑,如复制,剪切,粘贴;3:执行完操作后,能够顺利关闭记事本。
1.2设计目的1:提高对Java语言设计的掌握能力;2:理论联系实际,进一步提高学生的软件开发技术;3:培养学生分析、解决问题的能力。
第2章系统实现思路2.1 实现思路1、首先设计出整个记事本的主体框架,添加菜单栏(JMenu),添加菜单选项(JMenuItem)。
这部分应用到了JMenuBar、JMenu、JMenuItem的构造方法,实现对记事本的基本页面设计。
2、在页面中添加编辑局域,应用了JTextArea的构造方法。
3、实现各个菜单选项的功能。
在具体的功能实现中,为每一个功能设计了一个类,通过监听调用类方法实现所需要实现的功能。
4、程序中的类以及它们之间的关系:本程序总共含有8个类:Notepad()主类:他实现了记事本的基本框架构造,以及对记事本各个功能的监听,并且调用各个功能的类方法。
在Notepad()中,加入了编辑菜单的弹出菜单功能。
在Notepad()主类中,通过事件监听调用了剪切、复制、保存等功能的类方法:newActionListener():实现“新建”功能的类saveActionListener():实现“保存”功能的类openActionListener():实现“打开”功能的类exitActionListener():实现“退出”功能的类cutActionListener():实现“剪切”功能的类copyActionListener():实现“复制”功能的类pasteActionListener():实现“粘贴”功能的类aboutActionListener():实现“关于”功能的类2.2系统流程图记事本总体框架实现思路:框架内包含文件、编辑、关于三个菜单选项,文件菜单内又包括新建、打开、保存、退出功能,编辑内包括剪切、复制、粘贴功能,关于菜单内包括关于功能。
实验10 JAVA简单记事本程序设计实验目的1)复习,巩固Java语言的基础知识,进一步加深对Java语言的理解和掌握;2)课程设计为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼学生的分析解决实际问题的能力,提高学生适应实际,实践编程的能力;3)培养学生在项目开发中团队合作精神,创新意识及能力。
1 •掌握窗口、菜单等高级组件的应用。
2.掌握Java Swi ng的使用方法。
3•了解GUI应用程序的创建过程与方法。
实验内容课题:学生成绩管理1、功能要求:编写一个简单记事本程序,要求包含以下菜单项文件新建、打开、保存、退出编辑剪切、拷贝、粘贴、查找帮助关于2、实现文件和编辑菜单里的功能记事本界面如下:ift|UtLanlLT:ItiJ EwhLObJiCL!5 CkJcu iticGIf [ 皿F:T p“:Aoh bOAl.b2>3,b<bf h6 bl.bE U JtoN bC*rt;曲山町人bChl;”环 V If:P:'V1A E J ■. :.I K S up:pcivitE C&LdiLitflr cal ■ HE* CdtuhitTrO: |:LQtt,皿1*汕[Dp;3.1系统实施1:界面设计创建一个下拉菜单和文本域,在文本域中显示编辑的文件信息主要代码:f=new Frame(s);p1= new TextArea("");f.setSize(400,600);f.setBackgro un d(Color.white); f.setVisible(true);men ubar =new Men uBar();menu1= new Menu("文件");menu2=new Menu(” 编辑");menu3=new Menu("帮助");item仁new Menultem(” 新建");Menultem(” 打开"); item3=new Menultem(” 保存");item4=new Menultem(” 另存为”);item5=new Menultem(” 退出");item7=new Menultem(" 复制");item8=new Menultem(" 剪切");item9=new Menultem("粘贴");item10=new Menultem(" 关于");men ul.add(iteml);men u1.add(item2);men u1.add(item4);men u1.add(item5);menu 2.add(item6);menu 2.add(item7);menu 2.add(item8);menu 2.add(item9);men u3.add(item10);men ubar.add(me nu1);men ubar.add(me nu 2);men ubar.add(me nu3);f.setMe nuBar(me nubar);2:功能设计对每个菜单项进行注册监听。
记事本java课程设计一、课程目标知识目标:1. 理解Java语言的基本语法和程序结构;2. 掌握使用记事本进行Java编程的方法;3. 学习面向对象编程思想,了解类和对象的基本概念;4. 掌握基本的输入输出操作,文件读写方法。
技能目标:1. 能够使用记事本编写简单的Java程序;2. 能够运用面向对象编程思想设计简单的类和对象;3. 能够实现基本的用户交互功能,如输入输出操作;4. 能够对程序进行调试和修改,解决常见错误。
情感态度价值观目标:1. 培养学生对编程的兴趣和热情,激发创新思维;2. 培养学生良好的编程习惯,注重代码规范;3. 培养学生团队协作能力,学会与他人共同解决问题;4. 培养学生面对困难的勇气和毅力,勇于尝试和改进。
课程性质:本课程为实践性较强的Java编程入门课程,通过记事本进行编程实践,使学生在动手操作中掌握Java语言的基本知识。
学生特点:学生处于初级阶段,对编程有一定兴趣,但缺乏实际操作经验,需要通过具体实例和实际操作来提高。
教学要求:教师需关注学生个体差异,提供个性化指导,确保学生在实践中掌握Java编程基本技能,并注重培养学生的情感态度价值观。
教学过程中,将目标分解为具体学习成果,便于教学设计和评估。
二、教学内容1. Java语言基础:- 数据类型、变量、常量- 运算符、表达式、语句- 控制结构:顺序结构、分支结构、循环结构- 数组、字符串2. 面向对象编程:- 类的定义、属性、方法- 对象的创建、使用- 封装、继承、多态3. 常用类和接口:- Scanner类实现用户输入- File类和IOException处理文件操作- String类和StringBuffer类操作字符串4. 基本输入输出:- System.out.println()输出- Scanner类实现键盘输入5. 简单的记事本程序设计:- 实现文本文件的读取和保存- 添加菜单和功能选项- 支持基本的文本编辑功能(如撤销、剪切、复制、粘贴)教学内容根据课程目标,结合课本章节进行组织,确保学生能循序渐进地掌握Java编程知识。
XXXXXXXX计算机学院课程设计报告书学生: XXXX 学院:计算机学院专业班级:软件工程专业课程: JAVA语言程序设计指导教师:2014 年 6 月 13 日目录第1章系统设计目的 (1)第2章系统实现思路 (2)第3章系统详细设计 (3)第4章系统调试运行 (7)第5章课程设计体会 (8)第6章参考文献 (9)第7章附录 (10)第1章系统设计目的1.1复习,巩固Java语言的基础知识,进一步加深对Java语言的理解和掌握;1.2课程设计为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼学生的分析解决实际问题的能力,提高学生适应实际,实践编程的能力;1.3培养学生在项目开发中团队合作精神,创新意识及能力1.4掌握JAVA语言常用类包及其常用方法和JAVA语言基本语法1.5掌握JAVA语言常用类包及其常用方法和JAVA语言基本语法第2章系统实现思路2.1总体功能实现图2.1总体功能实现图2.2记事本2.2菜单操作流程图图2.2“文件”菜单操作流程图第3章系统详细设计3.1界面设计创建一个下拉菜单和文本域,在文本域中显示编辑的文件信息。
主要代码:JMenuBar menub=new JMenuBar();JTextArea text=new JTextArea();JMenu files=new JMenu("文件(F)");JMenu edit=new JMenu("编辑(E)");JMenu formats=new JMenu("格式(O)");JMenu help=new JMenu("帮助(H)");JMenuItem newFile=new JMenuItem("新建(N)");JMenuItem open=new JMenuItem("打开(O)...");JMenuItem save=new JMenuItem("保存(S)");JMenuItem exit=new JMenuItem("退出(X)");JMenuItem cut=new JMenuItem("剪切(T)");JMenuItem copy=new JMenuItem("复制(C)");JMenuItem paste=new JMenuItem("粘贴(P)");JMenuItem selectAll=new JMenuItem("全选(A)");JMenuItem color = new JMenuItem("字体颜色(C)...");JMenuItem about=new JMenuItem("关于记事本(A)");3.2窗口大小主要代码:Notebook(String name){super(name);=name;int x,y;Dimension size=Toolkit.getDefaultToolkit().getScreenSize();x=(size.width-600)/2;y=(size.height-400)/2;setSize(600,400);setLocation(x,y);setMinimumSize(new Dimension(250,150));setDefaultCloseOperation(EXIT_ON_CLOSE);}3.3定义快捷键主要代码:files.setMnemonic('F');edit.setMnemonic('E');formats.setMnemonic('O');help.setMnemonic('H');newFile.setMnemonic('N');open.setMnemonic('O');save.setMnemonic('S');exit.setMnemonic('X');cut.setMnemonic('T');copy.setMnemonic('C');paste.setMnemonic('P');selectAll.setMnemonic('A');color.setMnemonic('C');about.setMnemonic('A');newFile.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N,InputEve nt.CTRL_MASK));open.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O,InputEvent. CTRL_MASK));save.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,InputEvent. CTRL_MASK));exit.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Q,InputEvent. CTRL_MASK));cut.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X,InputEvent.C TRL_MASK));copy.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C,InputEvent. CTRL_MASK));paste.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V,InputEvent .CTRL_MASK));selectAll.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A,InputE vent.CTRL_MASK));3.4功能代码新建:if(source==newFile){text.setText("");th.setTitle(name);openedPath=null;opened=false;}退出:else if(source==exit){System.exit(0);}全选:else if(source==selectAll)text.selectAll();剪贴:else if(source==cut)text.cut();复制:else if(source==copy)text.copy();粘贴:else if(source==paste)text.paste();关于:else if(source==about){JFrame about = new JFrame("记事本");JLabel label1 = new JLabel("记事本");JLabel label2 = new JLabel("作者:XX ");JLabel label3 = new JLabel("电子:XXXXXXXXXX ");}保存:else if(source==save){String savePath=openedPath;if(savePath==null){FileDialog saveFile=new FileDialog(th,"保存文件...",FileDialog.SAVE);saveFile.setVisible(true);savePath=saveFile.getDirectory()+saveFile.getFile();}try{FileOutputStream fos=new FileOutputStream(savePath);fos.write(text.getText().getBytes());fos.close();}catch(Exception ex){ex.printStackTrace();}if(source==save)openedPath=savePath;}打开:if(source==open){FileDialog openFile=new FileDialog(th,"打开文件...",FileDialog.LOAD);openFile.setVisible(true);StringfilePath=openFile.getDirectory()+openFile.getFile();try{FileInputStream fis=new FileInputStream(filePath);byte [] content=new byte[fis.available()];fis.read(content);text.setText(new String(content));text.setCaretPosition(0);if(openFile.getFile()!=null){th.setTitle(openFile.getFile()+name);openedPath=filePath;opened=true;}fis.close();}catch(Exception ex){ex.printStackTrace();}opened=true;}颜色:else if(source==color){Color color=JColorChooser.showDialog(text, "选择颜色", Color.BLACK);text.setForeground(color);}第4章系统调试运行4.1 “文件”运行状况图4.1 文件图4.2 编辑图4.3 格式图4.4 帮助第5章课程设计体会这次综合实验我很早就开始准备了,在代码上花费的时间也很多。
我深深地体会到编出一个程序是不容易的,编好一个程序更是不容易的。
在很多功能上,比如说在“关闭”“新建”“打开”记事本时,如果文本没保存或者又被修改,要弹出“询问保存”的对话框,我设置好这一项后,再测试,另一项又出问题了,反复测试反复修改,研究问题的所在。
其实这些或许是没必要的,但是一个程序真正的要做到“健壮性”不出现BUG,确实要下功夫的。