用Java程序编写一个记事本程序的设计报告

合集下载

java课程设计报告记事本

java课程设计报告记事本

Java课程设计报告:记事本1. 引言记事本是一款常见的文本编辑工具,广泛应用于日常工作和学习中。

本文将介绍一种基于Java语言开发的简易记事本设计方案。

2. 设计思路2.1 界面设计记事本的界面应简洁明了,方便用户进行文本编辑和操作。

可以考虑使用Swing或JavaFX等图形库来创建用户界面。

2.1.1 主窗体记事本的主窗体应包含一个菜单栏和一个文本编辑区域。

菜单栏包含文件、编辑、格式等功能项,可以使用Java提供的菜单组件来实现。

2.1.2 文件操作在菜单栏的文件功能项中,应包含新建、打开、保存、另存为等操作。

这些功能可以通过文件选择对话框来实现。

2.1.3 文本编辑文本编辑区域应支持基本的编辑功能,如复制、粘贴、剪切和撤销等操作。

可以使用Java提供的文本框组件来实现。

2.2 功能设计记事本的功能设计应满足用户的基本需求,如文本编辑、保存和打开文件等。

2.2.1 文本编辑功能用户可以在文本编辑区域输入和编辑文本内容。

可以提供字体、颜色和对齐等格式设置功能。

2.2.2 文件操作功能用户可以通过菜单栏的文件功能项进行文件的新建、打开、保存和另存为等操作。

可以使用Java的文件IO功能来实现。

2.3 实现步骤2.3.1 创建主窗体首先,需要创建一个主窗体,并设置合适的大小和布局。

可以使用Swing或JavaFX提供的窗体组件来实现。

2.3.2 添加菜单栏在主窗体中添加一个菜单栏,并设置合适的菜单和菜单项。

可以使用Java提供的菜单和菜单项组件来实现。

2.3.3 添加文件操作功能在菜单栏的文件功能项中添加新建、打开、保存和另存为等功能,并实现相应的事件处理。

可以使用Java提供的文件选择对话框和文件IO功能来实现。

2.3.4 添加文本编辑功能在主窗体中添加一个文本编辑区域,并提供复制、粘贴、剪切和撤销等编辑功能。

可以使用Java提供的文本框组件和编辑功能来实现。

3. 实现代码以下是一个简单记事本的Java代码示例:import javax.swing.*;import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.io.*;public class Notepad extends JFrame {private JTextArea textArea;private JFileChooser fileChooser;public Notepad() {setTitle("记事本");setSize(600, 400);setDefaultCloseOperation(EXIT_ON_CLOSE);createMenuBar();textArea = new JTextArea();JScrollPane scrollPane = new JScrollPane(textArea);add(scrollPane, BorderLayout.CENTER);fileChooser = new JFileChooser();setVisible(true);}private void createMenuBar() {JMenuBar menuBar = new JMenuBar();JMenu fileMenu = new JMenu("文件");JMenuItem newMenuItem = new JMenuItem("新建");JMenuItem openMenuItem = new JMenuItem("打开");JMenuItem saveMenuItem = new JMenuItem("保存");JMenuItem saveAsMenuItem = new JMenuItem("另存为");newMenuItem.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {textArea.setText("");}});openMenuItem.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {int result = fileChooser.showOpenDialog(Notepad.this);if (result == JFileChooser.APPROVE_OPTION) {File file = fileChooser.getSelectedFile();try {BufferedReader reader = new BufferedReader(new FileReader(file));String line;StringBuilder content = new StringBuilder();while ((line = reader.readLine()) != null) { content.append(line).append("\n");}reader.close();textArea.setText(content.toString());} catch (IOException ex) {ex.printStackTrace();}}}});saveMenuItem.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {int result = fileChooser.showSaveDialog(Notepad.this);if (result == JFileChooser.APPROVE_OPTION) {File file = fileChooser.getSelectedFile();try {BufferedWriter writer = new BufferedWriter(new FileWriter(file));writer.write(textArea.getText());writer.close();} catch (IOException ex) {ex.printStackTrace();}}}});saveAsMenuItem.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {int result = fileChooser.showSaveDialog(Notepad.this);if (result == JFileChooser.APPROVE_OPTION) {File file = fileChooser.getSelectedFile();try {BufferedWriter writer = new BufferedWriter(new FileWriter(file));writer.write(textArea.getText());writer.close();} catch (IOException ex) {ex.printStackTrace();}}}});fileMenu.add(newMenuItem);fileMenu.add(openMenuItem);fileMenu.add(saveMenuItem);fileMenu.add(saveAsMenuItem);menuBar.add(fileMenu);setJMenuBar(menuBar);}public static void main(String[] args) {SwingUtilities.invokeLater(new Runnable() {@Overridepublic void run() {new Notepad();}});}}4. 总结本文介绍了一种基于Java语言开发的简易记事本设计方案。

JAVA记事本课程设计报告

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记事本代码及实验报告

一、实验内容实验题目:记事本应用程序设计要求:1.分析WINDOWS “记事本程序”各主要菜单项的功能,画出详细的程序流程图2.设计完整的UI ,并实现“文件”菜单中“新建”“打开”“保存”“另存为”“退出”等 主要菜单项功能3.将各主要菜单项的程序流程图及主要代码写入实验报告二、实验过程1、写出程序的程序流程图,主要是各个功能的程序流程图 新建 打开NYN Y YN保存 另存N Y开始 isModifiedissave 调用保存函数初始化记事本 结束 开始是否打开文件 选择文件 将文件内容写入记事本 结束开始 开始 第一次保存 调用另存函数将记事本内容写入原文结束 弹出另存对话框 选择路径文件读入记事本内容设置记事本标题为文件名结束退出开始isModifiedY N调用保存函数结束2、根据程序流程图写出各个方法,新建,打开,保存,另存,退出。

三、实验结果(应先列出测试数据,要写明实验的现象,实验数据的处理等。

对于实验结果的表述,一般有三种方法:文字叙述(根据实验目的将实验结果系统化、条理化,用准确的专业术语客观地描述实验现象和结果,要有时间顺序以及各项指标在时间上的关系),图表(用表格或坐标图的方式使实验结果突出、清晰,便于相互比较,尤其适合于分组较多,且各组观察指标一致的实验,使组间异同一目了然;每一图表应有表目和计量单位,应说明一定的中心问题),屏幕截图(实验结果也可以是屏幕截图,充分表明实验的实际情况)。

在实验报告中,可任选其中一种或几种方法并用,以获得最佳效果。

)1、记事本界面布局2、功能描述a、新建:若记事本内容经过修改则提示保存;否则直接初始化记事本b、打开:选择打开的文件,将文件内容读出,写入记事本c、保存:若为第一次保存,调用另存函数;否则将文件内容存为新的记事本内容d、另存:选择另存路径,将记事本内容写入文件e、退出:若未保存或经过修改,则提示保存,调用保存函数,再退出;否则直接退出四、讨论与分析1、实验纠错:a、实验中,出现打开对话框出现两次的情况,即文件选择之后又弹出对话框,需要再选择一次,但是程序中并未出现两次调用。

java记事本实验报告

java记事本实验报告

java记事本实验报告篇一: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的记事本设计报告
public void actionPerformed(ActionEvent e){
s=fw.text1.getText();
str=replaceText.getText();
end=fw.text1.getSelectionEnd();
start=fw.text1.getSelectionStart();
XX学校计算机系综合性实验
实 验 报 告
课程名称Java程序设计
实验学期至学年 第学期
学生所在系部计算机系
年级专业班级
学生姓名学号
任课教师
实验成绩
计算机系制
《Java程序设计》课程综合性实验报告
开课实验室:年月日
实验题目
简易写字板软件设计
一、实验目的
通过编写Java的应用系统综合实例——简易写字板软件,总结、回顾和实践面向对象的编程思想以及编程方法,并通过编写程序来掌握Java语言编程技巧,将学习到的知识融会贯通,同时提高调试程序的能力,养成良好的编程习惯,并增强对程序设计整体思路的把握。
4.其他功能设计。
四、实验结果及分析
(一)、图形界面如下图
(二)、设计思路及实现功能
创建了一个标题为“简易写字板”的窗体,其中包括菜单栏(菜单及菜单项)、工具栏,并能通过点击鼠标右键进行一些基本操作。
实现的功能:对文件的新建、打开、保存、另存、退出;对文本的剪切、复制、粘贴、全选、查找、查找并替换;对文本字体、颜色的设置;点击鼠标右键,实现对文本的剪切、复制、粘贴、全选;当选择新建、关闭、退出、保存时有一定的保存文件的提示。
else if(e.getSource()==itemcolor){
Color newColor=JColorChooser.showDialog(this,"调色板",text1.getForeground());//显示有模式的颜色选取器

java课程设计记事本设计报告

java课程设计记事本设计报告

java课程设计记事本设计报告一、教学目标本课程旨在通过Java编程语言实现一个记事本应用程序,让学生掌握Java编程的基本概念和方法,培养学生的编程能力和解决问题的能力。

1.理解Java编程语言的基本语法和结构。

2.掌握Java编程中的数据类型、变量、运算符、控制语句等基本概念。

3.学习Java中的类和对象的概念,理解封装、继承和多态的原理。

4.熟悉Java中的常用类库和方法。

5.能够运用Java编程语言编写简单的程序。

6.能够使用Java编程语言实现一个记事本应用程序,包括文本的增删改查等功能。

7.能够分析并解决编程过程中遇到的问题。

情感态度价值观目标:1.培养学生的团队合作意识和沟通能力,通过小组合作完成项目。

2.培养学生的创新思维和解决问题的能力,鼓励学生进行自主学习和探索。

3.培养学生的学习兴趣和自信心,让学生感受到编程的乐趣和成就感。

二、教学内容本课程的教学内容主要包括Java编程语言的基本概念和方法,以及记事本应用程序的设计和实现。

1.Java编程语言的基本概念和方法:–数据类型、变量、运算符、控制语句等基本概念。

–类和对象的概念,封装、继承和多态的原理。

–常用类库和方法的使用。

2.记事本应用程序的设计和实现:–用户界面设计:创建文本框、按钮等控件,实现用户输入和显示功能。

–文件操作:实现文件的打开、保存、关闭等功能,使用文件读写技术。

–文本处理:实现文本的增删改查等功能,使用数据结构和算法进行文本管理。

三、教学方法本课程将采用多种教学方法,包括讲授法、讨论法、案例分析法和实验法等,以激发学生的学习兴趣和主动性。

1.讲授法:教师通过讲解Java编程语言的基本概念和方法,以及记事本应用程序的设计和实现,引导学生掌握相关知识。

2.讨论法:学生分组进行讨论,分享自己的理解和思路,互相学习和交流。

3.案例分析法:分析实际案例,让学生了解记事本应用程序的实际应用场景和设计思路。

4.实验法:学生通过编写代码和进行实验,实现记事本应用程序的功能,培养学生的实际编程能力和解决问题的能力。

java课程设计报告 记事本

java课程设计报告 记事本

泰山医学院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程序设计报告

记事本java程序设计报告

记事本java程序设计报告~ 第1学期《Java程序设计》课程报告项目:日历记事本专业:计算机科学与技术学号: 10570235姓名:常兆华班级:计算机2班分数:项目说明目录第一部分、项目整体概述 (3)页第二部分、我的任务 (5)页第三部分、代码和详细注释 (6)页第四部分、心得体会 (14)页第一部分、项目整体概述日历记事本----------带有日程提醒功能的日历。

2.显示信息:用户能够看到这个月的信息,包括年份、日期等。

点击翻页按钮能够查询前一个月的日期,也能够向后翻页查询下一个月的日期。

同样,能够根据年份查询不同年份的日期。

日期的显示有一些优化,用户不但能够查询到本月份的信息,还能够根据上个月与下个月的日期填充来方便查询日期和星期。

3.定时提醒:用户能够针对某一天来添加、删除和编辑这一天的日程提醒信息当系统时间和提醒时间相吻合时,给出具有提示信息的对话框。

4.查询信息:用户能够查询到某个月的所有的提示信息。

日历记事本共有4个java源文件。

CalendarPad.java该java文件生成的类负责创立本日历记事本程序主窗口。

该类含有main方法,程序从该类开始执行。

Year.java该文件负责创立管理年份的对象。

Month.java该文件负责创立管理月份的类对象。

NotePad.java该文件负责创立记事本。

截图:初始界面可输入年份查看相应的日历与记事本第二部分、我的任务具体任务:资料查找,汇总及需求分析,负责日历的编写,和板块的布局输出等。

编写大致思路:我主要负责这个项目中日历的编写和输出显示的一部分。

经过调查自己电脑中的日历记事本和大家纸质的日历记事本,我知道若想完整地显示一个月的信息至少需要一个首先需要一个7*7的网格,要用到GridLayout网格设置语言。

其中每一列的顶层能够称它为title“标题”,也就是显示“星期几”,表头显示这个月所在的年份与月份。

随后对日期进行编号,判断闰平年、大小月等必要的程序。

Java记事本程序的设计综合实验报告_记事本

Java记事本程序的设计综合实验报告_记事本
JMenuItem mt9 = new JMenuItem("剪切(T)", 'T');
JMenuItem mt10 = new JMenuItem("复制(C)", 'C');
JMenuItem mt11 = new JMenuItem("粘贴(P)", 'P');
JMenuItem mt12 = new JMenuItem("删除(L)", 'L');
}
});
pm.add(cut);
pm.add(copy);
pm.add(paste);
pm.add(Delete);
pm.addSeparator();
pm.add(All);
cut.addActionListener(this);
copy.addActionListener(this);
paste.addActionListener(this);
new Jishiben();
}
}
4.程序实现说明
运行程序后,显示主界面如图4.1所示:
图4.1主界面
点击文件,显示文件菜单的各种功能,如图4.2所示:
5.总结
本程序是简单的记事本程序。主要实现以下功能:文件的新建、打开、保存、退出,对文本内容的撤销、剪切、复制、粘贴、删除。该程序操作方便快捷,各种操作简单明了,基本上能满足用户的需求。
(6)编写剪切模块。将需要编辑的内容进行剪切。
(7)编写复制模块。复制用户选中的内容。
(5)编写粘贴模块。粘贴需要复制的内容。
(6)编写删除模块。删除选中的文本内容。
(7)编写全选模块。选中需要进行操作的文本内容。

(最新版)Java毕业课程设计报告记事本程序

(最新版)Java毕业课程设计报告记事本程序

Java课程设计报告题目:简单记事本程序的设计年级专业:i ____ 学号: _________________________ 学生姓名: ______________________ 指导老师: ______________________完成时间:2010年6月8日目录摘要 (1)前言 (2)1需求分析 (2)1.1需求分析 (2)1.2功能设计 (3)2.概要设计 (3)2.1程序设计思路 (3)2.2程序运行界面 (3)2.3模块说明图 (4)2.4 程序流程图 (5)2.5程序相关说明 (6)3.程序详细设计与分析 (6)3.1.初始化组件 (6)3.2.构建菜单栏及其下拉菜单 (6)3.3.“文件”菜单的事件监听 (7)3.4.“编辑”菜单的事件监听 (8)3.5.异常处理 (9)4•测试分析 (10)5•源程序清单 (12)6•课程设计总结 (17)参考文献 (17)简单记事本程序的设计摘要该报告中的程序是使用Java 程序编写,能够进行输入文字操作,并具有新建文件,打开文件,保存文件,退出,复制,粘贴,剪切等功能,不同之处是本程序能够对文字的颜色进行设置。

该程序主要用到了Java swing 和事件监听等。

关键字:记事本程序;Java 语言;Jcreator.、八、一前言Java的前身是Oak,它一开始只是被应用于消费性电子产品中。

后来它的开发者们发现它还可以被用于更大范围的In ternet 上。

1995年,Java语言的名字从Oak编程了Java。

1997 年J2SE1.1 发布。

1998 年J2SE1.2 发布,标志Java2 的诞生。

十多年来, Java 编程语言及平台成功地运用在网络计算及移动等各个领域。

Java的体系结构由Java语言、Javaclass 、Java API 、Java 虚拟机组成。

它具有简单、面向对象、健壮、安全、结构中立、可移植和高效能等众多优点。

Java程序编写一个记事本程序的设计报告

Java程序编写一个记事本程序的设计报告

用Java程序编写一个记事本程序的设计报告学习中心(点):榆林子洲专业:计算机科学与技术层次:专升本姓名:张航批次: 112目录一、设计分析 (1)二、程序结构 (1)三、各模块的功能及程序说明 (2)1、类设计 (2)2、主要功能代码实现 (4)四、源程序 (9)五、操作方法 (20)六、试验结果 (20)七、设计体会 (22)编写一个记事本程序的设计报告一、设计要求1.用图形用户界面实现。

2.能实现编辑、保存、另存为、查找替换等功能。

二、程序结构流程图:图1基本流程图本Java文本编辑器功能设计如下:图2基本功能图三、各模块的功能及程序说明1、类设计(1)类MiniText ,包括initTextPane方法初始化面板,initMenu()方法初始化菜单,initAboutDialog()方法初始化关于对话框,initToolBar()方法初始化工具栏,initRightKey()方法初始化右键设置,等方法。

类成员如下:(2)类Loading (实现登陆)类成员如下:(3)类runtime (实现时间同步)类成员如下:(4)类MainFunction (包含主函数)类成员如下:2、主要功能代码实现(1)登陆界面:class Loading extends JWindow implements Runnable {Thread dluThread=null;private JProgressBar progress;public Loading() {setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));//设置光标为等待状态JPanel dlu = new JPanel(new BorderLayout());URL url = getClass().getResource("/images/loading.jpg");if(url != null){dlu.add(new JButton(new ImageIcon(url)), BorderLayout.CENTER);}progress = new JProgressBar(1,100);progress.setStringPainted(true);progress.setBorderPainted(true);progress.setBackground(Color.white);progress.setForeground(Color.green);dlu.add(progress,BorderLayout.SOUTH);setContentPane(dlu); //设置窗口属性为登陆面板属性Dimension screen = getToolkit().getScreenSize();pack(); //显示登陆界面setLocation(screen.width/4,screen.height/4); //设置登陆界面始终在屏幕中间显示}public void start(){// this.toFront();dluThread=new Thread(this);dluThread.start(); }public void run(){show();try {for (int i=0;i<100;i++){Thread.sleep(100);progress.setValue(progress.getValue() + 1);progress.setString("欢迎进入迷你编辑,请稍后... ... "+i+"%"); } }catch (Exception ex) {ex.printStackTrace(); }dispose();//关闭登陆界面} }(2).时间标签:class runtime extends JButton implements Runnable{Thread datetime=null;public runtime(){}public void run(){for(;;){//java.util.Date timeer=new java.util.Date();Calendar now=Calendar.getInstance();int year1=now.get(Calendar.YEAR);int month1=now.get(Calendar.MONTH);int day1=now.get(Calendar.DAY_OF_MONTH);int hour1=now.get(Calendar.HOUR);int minute1=now.get(Calendar.MINUTE);int sec=now.get(Calendar.SECOND);setText(year1+"年"+month1+"月"+day1+"日"+hour1+":"+minute1+":"+sec);//System.out.println(now.get(Calendar.DAY_OF_MONTH)-60);try{Thread.currentThread().sleep(1000);}catch(InterruptedException e){} } }}(3)右键的实现:void initRightKey (){filepopup=new JPopupMenu();uundo=new JMenuItem("撤消(U)");uundo.setMnemonic('U');ccut=new JMenuItem("剪切(T)");ccut.setMnemonic('T');ccopy=new JMenuItem("复制(C)");ccopy.setMnemonic('C');ppaste=new JMenuItem("粘贴(V)");ppaste.setMnemonic('V');ddelete=new JMenuItem("删除(D)");ddelete.setMnemonic('D');sselectall=new JMenuItem("全选(A)");sselectall.setMnemonic('A');filepopup.add(uundo);filepopup.addSeparator();filepopup.add(ccut);filepopup.add(ccopy);filepopup.add(ppaste);filepopup.add(ddelete);filepopup.addSeparator();filepopup.add(sselectall);uundo.addActionListener(action);ccut.addActionListener(action);ccopy.addActionListener(action);ppaste.addActionListener(action);ddelete.addActionListener(action);sselectall.addActionListener(action);text.addMouseListener(new MouseAdapter(){public void mousePressed(MouseEvent event){checkForTriggerEvent(event);}public void mouseReleased(MouseEvent event){checkForTriggerEvent(event);}public void checkForTriggerEvent(MouseEvent event){if(event.isPopupTrigger()){filepopup.show(event.getComponent(),event.getX(),event.getY());} }}); }(4)打开、保存、复制、粘贴、撤销等功能事件响应实现://事件处理ActionListener action = new ActionListener(){public void actionPerformed(ActionEvent e){ JMenuItem mi = (JMenuItem)e.getSource();String id = mi.getText();if(id.equals("新建")){Date date=new Date();text.setText(date.toString());file = null;}else if(id.equals("打开...")){if(file != null)filechooser.setSelectedFile(file);//为用户选择文件提供了一种简单的机制int returnVal = filechooser.showOpenDialog(MiniText.this);if(returnVal == JFileChooser.APPROVE_OPTION){file = filechooser.getSelectedFile();openFile(); } }else if(id.equals("保存...")){if(file != null)filechooser.setSelectedFile(file);int returnVal = filechooser.showSaveDialog(MiniText.this);if(returnVal == JFileChooser.APPROVE_OPTION){file = filechooser.getSelectedFile();saveFile();JOptionPane.showMessageDialog(null,"已保存");}}else if(id.equals("另存为")){if(file != null)filechooser.setSelectedFile(file);int returnVal = filechooser.showSaveDialog(MiniText.this);if(returnVal == JFileChooser.APPROVE_OPTION){file = filechooser.getSelectedFile();saveFile();JOptionPane.showMessageDialog(null,"已保存"); } } else if(id.equals("打印")){prt.printDialog();}else if(id.equals("打印页面设置")){try {prt.print();} catch(Exception ew){JOptionPane.showMessageDialog(null,"打印出错!","错误",JOptionPane.ERROR_MESSAGE); } }else if(id.equals("退出")){ System.exit(0); }else if(id.equals("剪切")||id.equals("剪切(T)")){ text.cut();}else if(id.equals("复制")||id.equals("复制(C)")){text.copy();}else if(id.equals("粘贴")||id.equals("粘贴(V)")){text.paste(); }else if(id.equals("删除")||id.equals("删除(D)")){text.replaceSelection(""); }else if(id.equals("选择全部")||id.equals("全选(A)")){text.selectAll();}else if(id.equals("字体颜色...")){color = JColorChooser.showDialog(MiniText.this,"字体颜色设置",color);text.setForeground(color);} else if(id.equals("自动换行")){ }else if(id.equals("撤销")||id.equals("撤消(U)")){text.setText("");text.selectAll();}else if(id.equals("查找")){String find="查找";find=JOptionPane.showInputDialog("查找:"); }else if(id.equals("时间")){time.setFont(new Font("Times New Roman",Font.PLAIN,12));text.insertComponent(time); }else if(id.equals("系统记事本")){try{String command = "notepad.exe";Process child = Runtime.getRuntime().exec(command);//从系统进程中调用记事本}catch (IOException ex) { }}else if(id.equals("系统计算器")){try{String command = "calc.exe";Process child = Runtime.getRuntime().exec(command);//调用系统计算器}catch (IOException ex) { }}else if(id.equals("关于")){about.setSize(250,150);about.show();} } };四、源程序import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.io.*;public class Notepad extends JFrame {// 系统组件声明private JMenuBar menuBar = new JMenuBar();private JEditorPane content = new JEditorPane();private JScrollPane scroll = new JScrollPane(content);private JFileChooser filechooser = new JFileChooser() ;private BorderLayout bord = new BorderLayout();private JLabel statusBar = new JLabel();private JPanel pane = new JPanel();private File file = null;// 定义文件菜单private JMenu fileMenu = new JMenu();private JMenuItem newMenuItem = new JMenuItem();private JMenuItem openMenuItem = new JMenuItem();private JMenuItem saveMenuItem = new JMenuItem();private JMenuItem saveAsMenuItem = new JMenuItem();private JMenuItem pageSetupMenuItem = new JMenuItem();private JMenuItem printMenuItem = new JMenuItem();private JMenuItem exitMenuItem = new JMenuItem();// 定义风格菜单private JMenu styleMenu = new JMenu();private ButtonGroup styleMenuGroup = new ButtonGroup();private JRadioButtonMenuItem javaStyleMenuItem = new JRadioButtonMenuItem(); private JRadioButtonMenuItem metalStyleMenuItem = new JRadioButtonMenuItem(); private JRadioButtonMenuItem windowsStyleMenuItem = new JRadioButtonMenuItem();// 定义帮助菜单private JMenuItem aboutMenuItem = new JMenuItem();private JMenuItem helpTopicMenuItem = new JMenuItem();private JMenu helpMenu = new JMenu();// 构造函数public Notepad(){initComponents();}private void initComponents(){// 添加子菜单项到文件菜单fileMenu.setText("\u6587\u4ef6 (F)");newMenuItem.setText("新建(N)Ctrl+N");openMenuItem.setText("打开(O)...Ctrl+O");saveMenuItem.setText("保存(S)Ctrl+S");saveAsMenuItem.setText("另存为(A)...");pageSetupMenuItem.setText("页面设置(U)...");printMenuItem.setText("打印(P)...Ctrl+P");exitMenuItem.setText("退出");fileMenu.add(newMenuItem);fileMenu.add(openMenuItem);fileMenu.add(saveMenuItem);fileMenu.add(saveAsMenuItem);fileMenu.addSeparator();fileMenu.add(pageSetupMenuItem);fileMenu.add(printMenuItem);fileMenu.addSeparator();fileMenu.add(exitMenuItem);// 添加子菜单项到风格菜单styleMenu.setText("风格(S)");javaStyleMenuItem.setText("Java默认");metalStyleMenuItem.setText("Metal风格");windowsStyleMenuItem.setText("Windows风格");styleMenuGroup.add(javaStyleMenuItem);styleMenuGroup.add(metalStyleMenuItem);styleMenuGroup.add(windowsStyleMenuItem);styleMenu.add(javaStyleMenuItem);styleMenu.add(metalStyleMenuItem);styleMenu.add(windowsStyleMenuItem);// 添加子菜单项到帮助菜单helpMenu.setText("帮助(H)");helpTopicMenuItem.setText("帮助主题(H)");aboutMenuItem.setText("关于记事本(A)");helpMenu.add(helpTopicMenuItem);helpMenu.addSeparator();helpMenu.add(aboutMenuItem);// 定义文件菜单下的事件监听newMenuItem.addActionListener(new newMenuItem_actionAdapter(this)); openMenuItem.addActionListener(new openMenuItem_actionAdapter(this)); saveMenuItem.addActionListener(new saveMenuItem_actionAdapter(this)); saveAsMenuItem.addActionListener(new saveAsMenuItem_actionAdapter(this)); pageSetupMenuItem.addActionListener(new pageSetupMenuItem_actionAdapter(this)); printMenuItem.addActionListener(new printMenuItem_actionAdapter(this)); exitMenuItem.addActionListener(new exitMenuItem_actionAdapter(this));// 定义风格菜单下的事件监听javaStyleMenuItem.addActionListener(new javaStyleMenuItem_actionAdapter(this)); metalStyleMenuItem.addActionListener(new metalStyleMenuItem_actionAdapter(this)); windowsStyleMenuItem.addActionListener(new windowsStyleMenuItem_actionAdapter(this));// 定义帮助菜单下的事件监听helpTopicMenuItem.addActionListener(new helpTopicMenuItem_actionAdapter(this));aboutMenuItem.addActionListener(new aboutMenuItem_actionAdapter(this));// 填加菜单到菜单栏menuBar.add(fileMenu);menuBar.add(styleMenu);menuBar.add(helpMenu);// 对主窗口的一些设置this.setDefaultCloseOperation(EXIT_ON_CLOSE);this.setTitle("无标题- \u8bb0\u4e8b\u672c");this.setSize(640,480);setJMenuBar(menuBar);pane.setLayout(bord);pane.add("Center",scroll);setContentPane(pane);}// 定义新建菜单项方法public void newMenuItemActionPerformed(ActionEvent evt){file = null;if(!("".equals(content.getText()))){Object[] options = { "是(Y)", "否(N)","取消" };int s = JOptionPane.showOptionDialog(null, "\u6587\u4ef6 "+getTitle()+" \u7684\u6587\u5b57\u5df2\u7ecf\u6539\u53d8\u3002\n\u60f3\u4fdd\u5b58\u6587\u4ef6\u5417\uff 1f", "\u8bb0\u4e8b\u672c",JOptionPane.DEFAULT_OPTION, JOptionPane.W ARNING_MESSAGE,null, options, options[0]);switch(s){case 0:int returnVal=filechooser.showSaveDialog(this);if(returnVal == JFileChooser.APPROVE_OPTION) {file=filechooser.getSelectedFile();try{FileWriter fw=new FileWriter(file);fw.write(content.getText());setTitle(filechooser.getSelectedFile().getName()+" - \u8bb0\u4e8b\u672c");fw.close();}catch(Exception e){e.printStackTrace();}break;}case 1:content.setText("");setTitle("无标题- \u8bb0\u4e8b\u672c");}}}// 定义打开菜单项方法public void openMenuItemActionPerformed(ActionEvent evt){try {file = null;int returnVal = filechooser.showOpenDialog(this);if(returnVal == JFileChooser.APPROVE_OPTION){file = filechooser.getSelectedFile();FileReader fr = new FileReader(file);int len = (int)file.length();char[] buffer = new char[len];fr.read(buffer,0,len);fr.close();content.setText(new String(buffer));}}catch(Exception e){e.printStackTrace();}}// 定义退出菜单项方法public void exitMenuItem_actionPerformed(ActionEvent e){if(!("".equals(content.getText()))){Object[] options = { "是(Y)", "否(N)","取消" };int s = JOptionPane.showOptionDialog(null, "文件的文字已经改变。

java简易记事本实验报告

java简易记事本实验报告

java简易记事本实验报告Java简易记事本实验报告一、实验目的•学习使用Java编程语言•熟悉图形用户界面(GUI)的设计与实现•掌握文件读写操作二、实验背景近年来,随着信息技术的快速发展,电子设备普及程度日益增加。

人们习惯使用记事本软件记录临时笔记、备忘、任务清单等信息。

因此,本次实验旨在通过Java编写一个简易的记事本应用程序,以满足人们的基本需求。

三、实验过程1.学习Java编程语言基础知识,包括变量、数据类型、循环、条件语句等。

2.了解图形用户界面(GUI)设计原理和相关组件。

3.使用Java Swing库设计记事本的用户界面,包括菜单栏、工具栏、文本框等。

4.实现文件读写功能,使得用户可以保存和打开文本文件。

5.添加其他功能,如剪切、复制、粘贴、查找、替换等。

四、实验结果通过以上实验过程,我们成功设计并实现了一个简易的记事本应用程序。

这个程序具备了基本的文本编辑功能,并支持文件的保存和打开。

五、实验总结本次实验是一个较为基础的Java编程实践,通过设计和开发一个简易的记事本应用程序,我们熟悉了Java编程语言的使用,掌握了图形用户界面的设计与实现,加深了对文件读写操作的理解。

在实验过程中,我们遵循了一定的规则和步骤,通过列点方式对实验目的、过程和结果进行了总结。

这样的总结方式清晰明了,便于读者理解和回顾。

通过本次实验,我们不仅提升了Java编程能力,还培养了问题解决和团队合作的能力。

我们相信,通过不断实践和学习,我们的能力会不断提高,创造出更加优秀的应用程序。

六、改进方向虽然我们已经成功实现了一个简易的记事本应用程序,但仍有一些改进的方向可以考虑:1.添加更多的编辑功能:除了基本的剪切、复制、粘贴功能,可以考虑添加撤销、重做、全选、自动保存等功能,以提升用户的编辑体验。

2.改善用户界面设计:可以进一步优化用户界面的布局和样式,提升用户的使用感受。

可以考虑添加主题切换功能,让用户可以根据自己的喜好选择不同的界面风格。

JAVA简单记事本程序设计实验报告

JAVA简单记事本程序设计实验报告

实验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课程设计报告记事本程序

Java课程设计报告记事本程序

目录摘要 (1)前言 (2)1设计分析 (2)需求分析 (2)功能设计 (3)2.概要设计 (3)程序设计思路 (3)程序模块说明图 (3)程序流程图 (4)程序相关说明 (5)3.程序详细设计与分析 (6).初始化组件 (6).构建菜单栏及其下拉菜单 (6)4.运行界面及操作流程 (6)5.源程序清单 (8)记事本程序的设计摘要该报告中的程序是使用Java程序编写,能够进行输入文字操作,并具有新建文件,打开文件,保存文件,退出,复制,粘贴,剪切等功能,不同之处是本程序能够对文字的颜色进行设置。

该程序主要用到了Java swing。

关键字:记事本程序;Java语言;Creator前言Java的前身是Oak,它一开始只是被应用于消费性电子产品中。

后来它的开发者们发现它还可以被用于更大范围的Internet上。

1995年,Java语言的名字从Oak编程了Java。

1997年发布。

1998年发布,标志Java2的诞生。

十多年来,Java编程语言及平台成功地运用在网络计算及移动等各个领域。

Java的体系结构由Java语言、Java class、Java API、Java虚拟机组成。

它具有简单、面向对象、健壮、安全、结构中立、可移植和高效能等众多优点。

Java支持多线程编程,Java运行时系统在多线程同步方面具有成熟的解决方案。

Java的平台标准有Java ME,Java SE和Java EE。

Java发展到今天,它的卓越成就及在业界的地位毋庸置疑。

目前在众多的支持Java的开发工具中主要的7有Java Development Kit,NetBeans,Jcreator,JBuilder,JDeveloper和Eclipse等。

其中Java Development Kit 简称JDK是大多开发工具的基础。

以上的每种开发工具都有优缺点,对于开发者来说,重要的是要根据自己的开发规模、开发内容和软硬件环境等因素来选择一种合适的开发工具。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

用Java程序编写一个记事本程序的设计报告学习中心(点):泾阳学习中心专业:计算机科学与技术层次:专升本**:***批次: 112目录一、设计分析 (1)二、程序结构 (1)三、各模块的功能及程序说明 (2)1、类设计 (2)2、主要功能代码实现 (4)四、源程序 (9)五、操作方法 (20)六、试验结果 (20)七、设计体会 (22)用Java程序编写一个记事本程序的设计报告一、设计要求1.用图形用户界面实现。

2.能实现编辑、保存、另存为、查找替换等功能。

二、程序结构流程图:图1基本流程图本Java文本编辑器功能设计如下:图2基本功能图三、各模块的功能及程序说明1、类设计(1)类MiniText ,包括initTextPane方法初始化面板,initMenu()方法初始化菜单,initAboutDialog()方法初始化关于对话框,initToolBar()方法初始化工具栏,initRightKey()方法初始化右键设置,等方法。

类成员如下:(2)类Loading (实现登陆)类成员如下:(3)类runtime (实现时间同步)类成员如下:(4)类MainFunction (包含主函数)类成员如下:2、主要功能代码实现(1)登陆界面:class Loading extends JWindow implements Runnable {Thread dluThread=null;private JProgressBar progress;public Loading() {setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));//设置光标为等待状态JPanel dlu = new JPanel(new BorderLayout());URL url = getClass().getResource("/images/loading.jpg");if(url != null){dlu.add(new JButton(new ImageIcon(url)), BorderLayout.CENTER);}progress = new JProgressBar(1,100);progress.setStringPainted(true);progress.setBorderPainted(true);progress.setBackground(Color.white);progress.setForeground(Color.green);dlu.add(progress,BorderLayout.SOUTH);setContentPane(dlu); //设置窗口属性为登陆面板属性Dimension screen = getToolkit().getScreenSize();pack(); //显示登陆界面setLocation(screen.width/4,screen.height/4); //设置登陆界面始终在屏幕中间显示}public void start(){// this.toFront();dluThread=new Thread(this);dluThread.start(); }public void run(){show();try {for (int i=0;i<100;i++){Thread.sleep(100);progress.setValue(progress.getValue() + 1);progress.setString("欢迎进入迷你编辑,请稍后... ... "+i+"%"); } }catch (Exception ex) {ex.printStackTrace(); }dispose();//关闭登陆界面} }(2).时间标签:class runtime extends JButton implements Runnable{Thread datetime=null;public runtime(){}public void run(){for(;;){//java.util.Date timeer=new java.util.Date();Calendar now=Calendar.getInstance();int year1=now.get(Calendar.YEAR);int month1=now.get(Calendar.MONTH);int day1=now.get(Calendar.DAY_OF_MONTH);int hour1=now.get(Calendar.HOUR);int minute1=now.get(Calendar.MINUTE);int sec=now.get(Calendar.SECOND);setText(year1+"年"+month1+"月"+day1+"日"+hour1+":"+minute1+":"+sec);//System.out.println(now.get(Calendar.DAY_OF_MONTH)-60);try{Thread.currentThread().sleep(1000);}catch(InterruptedException e){} } }}(3)右键的实现:void initRightKey (){filepopup=new JPopupMenu();uundo=new JMenuItem("撤消(U)");uundo.setMnemonic('U');ccut=new JMenuItem("剪切(T)");ccut.setMnemonic('T');ccopy=new JMenuItem("复制(C)");ccopy.setMnemonic('C');ppaste=new JMenuItem("粘贴(V)");ppaste.setMnemonic('V');ddelete=new JMenuItem("删除(D)");ddelete.setMnemonic('D');sselectall=new JMenuItem("全选(A)");sselectall.setMnemonic('A');filepopup.add(uundo);filepopup.addSeparator();filepopup.add(ccut);filepopup.add(ccopy);filepopup.add(ppaste);filepopup.add(ddelete);filepopup.addSeparator();filepopup.add(sselectall);uundo.addActionListener(action);ccut.addActionListener(action);ccopy.addActionListener(action);ppaste.addActionListener(action);ddelete.addActionListener(action);sselectall.addActionListener(action);text.addMouseListener(new MouseAdapter(){public void mousePressed(MouseEvent event){checkForTriggerEvent(event);}public void mouseReleased(MouseEvent event){checkForTriggerEvent(event);}public void checkForTriggerEvent(MouseEvent event){if(event.isPopupTrigger()){filepopup.show(event.getComponent(),event.getX(),event.getY());} }}); }(4)打开、保存、复制、粘贴、撤销等功能事件响应实现://事件处理ActionListener action = new ActionListener(){public void actionPerformed(ActionEvent e){ JMenuItem mi = (JMenuItem)e.getSource();String id = mi.getText();if(id.equals("新建")){Date date=new Date();text.setText(date.toString());file = null;}else if(id.equals("打开...")){if(file != null)filechooser.setSelectedFile(file);//为用户选择文件提供了一种简单的机制int returnVal = filechooser.showOpenDialog(MiniText.this);if(returnVal == JFileChooser.APPROVE_OPTION){file = filechooser.getSelectedFile();openFile(); } }else if(id.equals("保存...")){if(file != null)filechooser.setSelectedFile(file);int returnVal = filechooser.showSaveDialog(MiniText.this);if(returnVal == JFileChooser.APPROVE_OPTION){file = filechooser.getSelectedFile();saveFile();JOptionPane.showMessageDialog(null,"已保存");}}else if(id.equals("另存为")){if(file != null)filechooser.setSelectedFile(file);int returnVal = filechooser.showSaveDialog(MiniText.this);if(returnVal == JFileChooser.APPROVE_OPTION){file = filechooser.getSelectedFile();saveFile();JOptionPane.showMessageDialog(null,"已保存"); } } else if(id.equals("打印")){prt.printDialog();}else if(id.equals("打印页面设置")){try {prt.print();} catch(Exception ew){JOptionPane.showMessageDialog(null,"打印出错!","错误",JOptionPane.ERROR_MESSAGE); } }else if(id.equals("退出")){ System.exit(0); }else if(id.equals("剪切")||id.equals("剪切(T)")){ text.cut();}else if(id.equals("复制")||id.equals("复制(C)")){text.copy();}else if(id.equals("粘贴")||id.equals("粘贴(V)")){text.paste(); }else if(id.equals("删除")||id.equals("删除(D)")){text.replaceSelection(""); }else if(id.equals("选择全部")||id.equals("全选(A)")){text.selectAll();}else if(id.equals("字体颜色...")){color = JColorChooser.showDialog(MiniText.this,"字体颜色设置",color);text.setForeground(color);} else if(id.equals("自动换行")){ }else if(id.equals("撤销")||id.equals("撤消(U)")){text.setText("");text.selectAll();}else if(id.equals("查找")){String find="查找";find=JOptionPane.showInputDialog("查找:"); }else if(id.equals("时间")){time.setFont(new Font("Times New Roman",Font.PLAIN,12));text.insertComponent(time); }else if(id.equals("系统记事本")){try{String command = "notepad.exe";Process child = Runtime.getRuntime().exec(command);//从系统进程中调用记事本}catch (IOException ex) { }}else if(id.equals("系统计算器")){try{String command = "calc.exe";Process child = Runtime.getRuntime().exec(command);//调用系统计算器}catch (IOException ex) { }}else if(id.equals("关于")){about.setSize(250,150);about.show();} } };四、源程序import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.io.*;public class Notepad extends JFrame {// 系统组件声明private JMenuBar menuBar = new JMenuBar();private JEditorPane content = new JEditorPane();private JScrollPane scroll = new JScrollPane(content);private JFileChooser filechooser = new JFileChooser() ;private BorderLayout bord = new BorderLayout();private JLabel statusBar = new JLabel();private JPanel pane = new JPanel();private File file = null;// 定义文件菜单private JMenu fileMenu = new JMenu();private JMenuItem newMenuItem = new JMenuItem();private JMenuItem openMenuItem = new JMenuItem();private JMenuItem saveMenuItem = new JMenuItem();private JMenuItem saveAsMenuItem = new JMenuItem();private JMenuItem pageSetupMenuItem = new JMenuItem();private JMenuItem printMenuItem = new JMenuItem();private JMenuItem exitMenuItem = new JMenuItem();// 定义风格菜单private JMenu styleMenu = new JMenu();private ButtonGroup styleMenuGroup = new ButtonGroup();private JRadioButtonMenuItem javaStyleMenuItem = new JRadioButtonMenuItem(); private JRadioButtonMenuItem metalStyleMenuItem = new JRadioButtonMenuItem(); private JRadioButtonMenuItem windowsStyleMenuItem = new JRadioButtonMenuItem();// 定义帮助菜单private JMenuItem aboutMenuItem = new JMenuItem();private JMenuItem helpTopicMenuItem = new JMenuItem();private JMenu helpMenu = new JMenu();// 构造函数public Notepad(){initComponents();}private void initComponents(){// 添加子菜单项到文件菜单fileMenu.setText("\u6587\u4ef6 (F)");newMenuItem.setText("新建(N)Ctrl+N");openMenuItem.setText("打开(O)...Ctrl+O");saveMenuItem.setText("保存(S)Ctrl+S");saveAsMenuItem.setText("另存为(A)...");pageSetupMenuItem.setText("页面设置(U)...");printMenuItem.setText("打印(P)...Ctrl+P");exitMenuItem.setText("退出");fileMenu.add(newMenuItem);fileMenu.add(openMenuItem);fileMenu.add(saveMenuItem);fileMenu.add(saveAsMenuItem);fileMenu.addSeparator();fileMenu.add(pageSetupMenuItem);fileMenu.add(printMenuItem);fileMenu.addSeparator();fileMenu.add(exitMenuItem);// 添加子菜单项到风格菜单styleMenu.setText("风格(S)");javaStyleMenuItem.setText("Java默认");metalStyleMenuItem.setText("Metal风格");windowsStyleMenuItem.setText("Windows风格");styleMenuGroup.add(javaStyleMenuItem);styleMenuGroup.add(metalStyleMenuItem);styleMenuGroup.add(windowsStyleMenuItem);styleMenu.add(javaStyleMenuItem);styleMenu.add(metalStyleMenuItem);styleMenu.add(windowsStyleMenuItem);// 添加子菜单项到帮助菜单helpMenu.setText("帮助(H)");helpTopicMenuItem.setText("帮助主题(H)");aboutMenuItem.setText("关于记事本(A)");helpMenu.add(helpTopicMenuItem);helpMenu.addSeparator();helpMenu.add(aboutMenuItem);// 定义文件菜单下的事件监听newMenuItem.addActionListener(new newMenuItem_actionAdapter(this)); openMenuItem.addActionListener(new openMenuItem_actionAdapter(this)); saveMenuItem.addActionListener(new saveMenuItem_actionAdapter(this)); saveAsMenuItem.addActionListener(new saveAsMenuItem_actionAdapter(this)); pageSetupMenuItem.addActionListener(new pageSetupMenuItem_actionAdapter(this)); printMenuItem.addActionListener(new printMenuItem_actionAdapter(this)); exitMenuItem.addActionListener(new exitMenuItem_actionAdapter(this));// 定义风格菜单下的事件监听javaStyleMenuItem.addActionListener(new javaStyleMenuItem_actionAdapter(this)); metalStyleMenuItem.addActionListener(new metalStyleMenuItem_actionAdapter(this)); windowsStyleMenuItem.addActionListener(new windowsStyleMenuItem_actionAdapter(this));// 定义帮助菜单下的事件监听helpTopicMenuItem.addActionListener(new helpTopicMenuItem_actionAdapter(this));aboutMenuItem.addActionListener(new aboutMenuItem_actionAdapter(this));// 填加菜单到菜单栏menuBar.add(fileMenu);menuBar.add(styleMenu);menuBar.add(helpMenu);// 对主窗口的一些设置this.setDefaultCloseOperation(EXIT_ON_CLOSE);this.setTitle("无标题- \u8bb0\u4e8b\u672c");this.setSize(640,480);setJMenuBar(menuBar);pane.setLayout(bord);pane.add("Center",scroll);setContentPane(pane);}// 定义新建菜单项方法public void newMenuItemActionPerformed(ActionEvent evt){file = null;if(!("".equals(content.getText()))){Object[] options = { "是(Y)", "否(N)","取消" };int s = JOptionPane.showOptionDialog(null, "\u6587\u4ef6 "+getTitle()+" \u7684\u6587\u5b57\u5df2\u7ecf\u6539\u53d8\u3002\n\u60f3\u4fdd\u5b58\u6587\u4ef6\u5417\uff 1f", "\u8bb0\u4e8b\u672c",JOptionPane.DEFAULT_OPTION, JOptionPane.W ARNING_MESSAGE,null, options, options[0]);switch(s){case 0:int returnVal=filechooser.showSaveDialog(this);if(returnVal == JFileChooser.APPROVE_OPTION) {file=filechooser.getSelectedFile();try{FileWriter fw=new FileWriter(file);fw.write(content.getText());setTitle(filechooser.getSelectedFile().getName()+" - \u8bb0\u4e8b\u672c");fw.close();}catch(Exception e){e.printStackTrace();}break;}case 1:content.setText("");setTitle("无标题- \u8bb0\u4e8b\u672c");}}}// 定义打开菜单项方法public void openMenuItemActionPerformed(ActionEvent evt){try {file = null;int returnVal = filechooser.showOpenDialog(this);if(returnVal == JFileChooser.APPROVE_OPTION){file = filechooser.getSelectedFile();FileReader fr = new FileReader(file);int len = (int)file.length();char[] buffer = new char[len];fr.read(buffer,0,len);fr.close();content.setText(new String(buffer));}}catch(Exception e){e.printStackTrace();}}// 定义退出菜单项方法public void exitMenuItem_actionPerformed(ActionEvent e){if(!("".equals(content.getText()))){Object[] options = { "是(Y)", "否(N)","取消" };int s = JOptionPane.showOptionDialog(null, "文件的文字已经改变。

相关文档
最新文档