Java程序设计记事本

合集下载

java课程设计

java课程设计

课程设计(论文)题目名称记事本程序课程名称java 程序设计课程设计学生姓名学号系、专业指导教师2010年1 月3 日摘要本次课程设计的题目是用JA V A语言编写记事本程序,要求是:用图形界面实现;含有简单的文字编辑功能,如:剪切、复制、粘贴、删除;还能实现保存、另存为、查找、替换等功能。

本程序主要用到了Java swing组件和事件监听器,还用到了文件的输入输出流。

记事本的界面参考了Windows中的记事本界面,并且根据课程设计要求做了适当的调整。

关键词:记事本程序;Java语言;swing组件目录1 问题描述 (3)2 需求分析 (3)3 概要设计 (3)3.1自定义类说明 (3)3.2 程序流程图 (7)4 详细设计 (7)4.1 jishiben类的实现 (7)4.2 GUI程序界面设计 (7)4.3 事件处理 (9)5 测试分析 (12)6 课程设计总结 (16)6.1设计体会 (16)6.2致谢 (16)参考文献 (17)附录(源程序清单) (18)1 问题描述设计一个具有GUI界面的记事本,含有简单的文字编辑功能,如:剪切、复制、粘贴、删除;还能实现保存、另存为、查找、替换等功能。

这次课程设计由卢炜、刘秀春、伍霜霜和我四个人合作完成。

卢炜负责概要设计,刘秀春负责4.1 jishiben类的实现和4.2 GUI程序界面设计,伍霜霜负责5测试分析。

由于4.3事件处理和撰写程序关系密切,这两项都由我负责。

并且根据伍霜霜的测试的结果重新调整程序。

2 需求分析本程序要构建的记事本程序参照了Windows操作系统的记事本工具,其功能有以下几个方面:(1)、菜单中有“文件”、“编辑”、“帮助”三个主菜单;(2)、“文件”有“新建”、“打开”、“保存”、“另存为”、“退出”分别用于新建文件,打开文件,保存文件,另存文件,退出记事本。

(3)、“编辑”中,有“剪切”、“复制”、“粘贴”、“删除”、“查找”、“替换”、“全选”七个子菜单:用于剪切文字,复制文字,粘贴文字,删除文字,查找文件中的指定的字符串,替换文件中的指定的字符串,选定整个文件。

JAVA程序设计综合训练——记事本

JAVA程序设计综合训练——记事本

JAVA程序设计——记事本一、引言1.1 项目的名称系统Windows XP中的记事本。

1.2 项目背景和目标目前,很多新的技术领域都涉及到了Java语言,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 等。

以上的每种开发工具都有优缺点,对于我们来说,重要的是要根据自己需求来选择一种合适的开发工具。

在本程序设计中,因为需要设计的是记事本程序,规模较小,内容较少,所以选择了适合初学者使用的Eclipse开发工具。

为了配合这个Java程序设计课程,帮助我深入学习掌握Java语言,熟练运用这个工具而设立的设计。

通过课程设计各个项目的综合训练,加强我对JA V A语言的理解,检验我对专业理论知识理解与掌握的程度,锻炼我综合运用JA V A程序设计处理所学的知识实际分析问题、解决问题的能力,使课堂上的理论在实践中得到运用,提高我的综合素质,为我接下来的相关专业打好基础。

1.3 顶目的可行性研究基于上学期所学到的JA V A程序设计中的各章以及各节所涉及到的知识点,本程序在理论上书籍以及资料中完全可以完成。

二、需求分析2.1 系统概述编写一个记事本程序,要求:(1)用图形用户界面实现。

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

(3)执行这些操作后,可以退出关闭记事本。

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程序进行自我介绍Hi, my name is Emily. I am a computer science student with a passion for coding and problem solving. 你好,我叫Emily。

我是一名对编程和问题解决充满热情的计算机科学学生。

I have always been fascinated by the endless possibilities that programming offers. 从小到大,我一直被编程所带来的无限可能所吸引。

My journey with Java began when I was in high school. I remember the first time I wrote a simple "Hello, World!" program and was amazed at how a few lines of code could produce a message on the screen. 我的Java之旅始于我高中时期。

记得第一次写了一个简单的“Hello, World!”程序时,我被几行代码是如何在屏幕上产生一条消息而震惊。

As I delved deeper into Java, I discovered its versatility and power. Java's object-oriented nature allows for the creation of complex, modular programs, which was incredibly appealing to me. 随着我对Java的深入了解,我发现它的多功能性和强大性。

Java的面向对象的特性允许创建复杂、模块化的程序,这对我来说非常吸引人。

One of my most memorable coding projects was when I developed a Java application for a school project. It was a teamwork project where I collaborated with my classmates, and together we built a program that helped students manage their time and tasks effectively. 我在编码项目中最难忘的经历之一,就是我为学校项目开发一个Java应用程序。

《Java》课程设计》记事本

《Java》课程设计》记事本

《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); //设置在单词过长的时候是否要把长单词移到下一行。

基于Eclipse+Android_SDK_的多功能记事本设计

基于Eclipse+Android_SDK_的多功能记事本设计

第19期2023年10月无线互联科技Wireless Internet Science and TechnologyNo.19October,2023作者简介:李志伟(1987 ),男,河南夏邑人,讲师,硕士;研究方向:物联网技术,计算机应用技术,职业教育㊂基于Eclipse +Android SDK 的多功能记事本设计李志伟(苏州高等职业技术学校,江苏苏州215000)摘要:传统的记录方式不能满足当前的信息记录要求,文章基于Eclipse +Android SDK 开发了一种多功能的电子记事本㊂使用面向对象的Java 语言以及轻量级的数据库SQLite 对数据和文件进行管理㊂实现了记事本的用户注册㊁登录㊁创建便签和编辑便签㊁便签记事㊁网络分享以及弹窗模块设计㊂功能测试结果表明,设计基本达到了用户的需求目标,具有方便㊁易用的特点㊂关键词:Eclipse ;Android SDK ;记事本;SQLite 中图分类号:TP319㊀㊀文献标志码:A0㊀引言㊀㊀在日常学习和工作中,人们经常需要快速㊁高效地记录许多信息㊂然而,传统的记录方式已经不能满足这种需求㊂研究和开发一种具有文字记录㊁拾音功能㊁文件分享等功能的电子记事本,显得十分有意义[1]㊂2020年,叶从玲[2]使用了Android 自带的SQlite 数据库,提高了记事本开发的效率㊂2021年,王杰等[3]使用Eclipse 开发工具实现了一种云记事本设计,具有随时记录㊁读取的特点㊂2022年,连壮[4]使用Java 语言实现了记事本启动界面的动画设计,用户体验性较好㊂多数记事本实现了增㊁删㊁改㊁查,以及信息检索等基本功能㊂缺少用户身份验证的记事本,存在一定的安全隐患㊂本文使用Eclipse 开发工具和Android 的SDK,开发了具有注册㊁登录功能的多功能记事本㊂合法用户可实现编辑记事㊁查找㊁分享等操作;能有效防止非法用户查看记录的信息,具有联网㊁丢失找回㊁编辑快捷等特点㊂1㊀需求分析及数据库设计㊀㊀需要实现的功能主要有:(1)用户的注册和登录;(2)文本记事基本的操作,如增㊁删㊁改㊁查;(3)共享功能,将记录的信息以短信或微信㊁QQ㊁邮件的方式共享给联系人㊂设计开发时应当考到以下内容:(1)记事便签加载时,应减少内存消耗,注意内存的释放;(2)加载音频和视频文件时,除了保证播放的流畅,还应保证音质㊁编辑的质量问题;(3)从技术可行性上分析,软件的配置环境应当满足开发者需求,所开发的应用能让大众所接受㊂另外,记事本的设计应遵循简单㊁使用方便的原则,设计不需要太复杂㊂数据库表的设计主要有两个,用于文本记事的表和关于用户的表,如表1 2所示㊂表1㊀文本记事表字段名数据类型,长度/bit是否允许空值主外键dates(创建日期)Varchar,50不允许null title(标题)Varchar,50不允许null context(记事内容)Varchar,10000允许null表2㊀用户表字段名数据类型,长度/bit是否允许空值主外键dates(创建时间)Varchar,50不允许主键theme(用户名)Varchar,50不允许nulltop_image(用户密码)Varchar,50不允许外键num(该用户的登录时间)Varchar,1000不允许null 2㊀多功能记事本详细设计㊀㊀多功能记事本除了具有图标设计的Logo 外,还包括了主界面㊁文本记事㊁便签记事㊁编辑记事㊁网络分享㊁记事模块弹窗等模块的设计㊂2.1㊀主界面设计㊀㊀主界面中的文本记事页面,包含了3个部分:第一部分是最上面一行的 标题栏 ,右边有两个按钮,分别有两个不同功能㊂ + 所代表的是添加记事功能模块,点击之后可以任意添加一种记事㊂点击 搜索 按钮,可将当前Activity跳转到搜索界面,输入关键字则可查找出所有标题带关键字的记事,并且能查看记事内容㊂第二部分的 模块向导 栏,点击即可跳转到相应模块界面㊂考虑到操作的简捷性,设计了可左右滑动,实现界面切换的功能,向左滑动屏幕则可跳转到上一个Activity,即上一个模块,向右滑动则跳转到下一个模块界面㊂在布局代码中,实现的关键组件为ViewPager,用它可以实现界面导航和屏幕切换㊂2.2㊀文本记事模块㊀㊀保持记事页面的 标题栏 和 模块向导 不变,增添需要展示的文本记事内容㊂操作时,可通过单击或双击每一项内容来实现㊂例如,可实现编辑㊁修改㊁保存㊁查看㊁删除等功能㊂设计时,为了使界面更加柔和,可通过将界面整体下拉或滚动,选择将展示内容的滚动条隐藏的方式㊂记事模块保持了界面的统一风格,更贴近Android软件的UI设计㊂ 展示内容 部分的核心代码,主要是通过重写Android提供的Adapter适配器类中的getView()方法来实现,主要功能就是将数据转换为视图,以便在UI布局中显示㊂2.3㊀便签记事模块㊀㊀此部分的 标题栏 和 模块向导 布局与文本记事模块中的设计一样㊂但是当用户所添加的便签记事内容过多,需要对这些便签进行管理㊁分类时,便签记事模块的功能优势就显现出来了㊂点击功能按钮,可以看到用户的所有便签记事㊂设计时需注意,若设计的便签过大,内存消耗过多,会导致此模块功能崩溃,程序无法正常运行㊂比如使用了setImageBitmap ()方法或setImageResource()来设置一张大图,在完成decode后,最终仍要调用Java层的createBitmap()方法来完成,这样就会消耗掉更多的内存资源㊂我们可以通过使用Android自带的㊁已封装好了方法,来解决内存占用过大的问题㊂比如,使用BitmapFactory. decodeStream()方法,创建出一个Bitmap,再将其设为ImageView的source,加载显示即可㊂这是因为decodeStream最大的优势是直接调用了nativeDecodeAsset()方法来完成decode,无需再使用Java层的createBitmap㊂便签记事的分类功能是通过Android提供的GridView控件来实现的㊂2.4㊀编辑记事模块㊀㊀该模块在设计时,选择系统自带的Media Play 类,即可实现对音频㊁视频的加载㊁插入㊁播放等操作㊂调用线程录制,可减少硬件原因导致的数据丢失问题㊂将反应慢的原始按钮样式,替代为成现代的㊁反应灵敏的话筒便签㊂考虑到安全性问题,需要重写按钮对应的方法来处理这个过程㊂为了保证编辑的质量,减少软件卡顿,可通过线程来实现㊂部分核心代码如下:mydata=new MyDataBase(getContext()," mydata");//将生成新的编辑文件dao=new DataBaseDAO(mydata);//实例化数据库连接类mHandler=new MyHandler();//用线程dialog_view.setImageResource(res[msg. what]);//根据声音强弱改变便签,从而达到看起来在说话的效果SetRecorderFile();//创建音频文件recorder=new MediaRecorder();//实例化Android多媒体类㊀㊀recorder.setAudioSource(MediaRecorder. AudioSource.MIC);㊀//设置音频格式recorder.setOutputFormat(MediaRecorder. OutputFormat.THREE_GPP);//设置输出格式recorder.setAudioEncoder(MediaRecorder. AudioEncoder.AMR_NB);//设置解码先设置前面的属性2.5㊀网络分享模块㊀㊀分享功能设计的难点在于,关键字高亮的设置问题㊂通过使用Google官方提供的SpannableString Builder类中的setSpan()方法,来处理高亮问题㊂该方法对原本的字符串做出处理处理后,亮出关键字,执行Textview.setText(result)方法,达到实现高亮效果㊂共享功能对数据的处理流程是,首先查询出数据库的所有数据,对于每类数据,保存在list集合中,随后对list集合进行遍历,remove掉所有包含关键字的项,对剩下的数据通过Adapter适配器选择性传到活动界面显示㊂对于每类数据都做这种处理,即可共享出所有符合条件的数据㊂部分关键代码如下: private void filter(){//根据关键字数据处理函数if(list.size()>0){//list存储数据库取出来的所有数据for(int i=0;i<list.size();i++){HashMap< String,String>mp=list.get(i);//去除不包含关键字的数据,words表示关键字内容if("".equals(words) mp.get("title"). indexOf(words)==-1){list.remove(i);i--;}}} if(list!=null&&list.size()>0){option.setvisible (true);}//如果最后有数据,则将相应模块设为可见状态else{option.setvisible(false);}}//如果没有数据,则相应模块设置为不可见状态2.6㊀记事弹窗模块㊀㊀长按每一项功能模块,都会弹出相应的操作列表㊂这些弹出框就是所有记事弹框的功能㊂目前,弹框消失是通过用户点击返回键或者取消键,或者在弹出框之外的任意处点击后,才会消失,不够简便㊂为了实现操作简便的效果,可将其设定为,只有点击取消按钮才会消失,否则不做任何操作㊂实现弹框的功能代码,主要是长按操作,触发事件处理机制,调用接口响应㊂部分核心实现代码如下://长按之后弹出列表删除㊁修改标题㊁更新内容㊁共享列表AlertDialog.Builder builder=new AlertDialog. Builder(mContext);//弹出框builder.setCancelable(false);//弹出框设为不可取消option.delete(dates);//调用接口实现删除操作option.update_title(dates);//调用接口实现更新操作option.update_context(dates);//调用接口实现更新操作option.send(dates,title);//调用接口实现共享操作builder.setNegativeButton( 取消 ,new DialogInterface.OnClickListener(){//点击取消按钮,关闭弹出框public void onClick(DialogInterface dialog,int which){dialog.cancel();//关闭弹出框3㊀系统测试㊀㊀任何一款设计软件,在发布㊁使用前必须进行测试㊂测试主要是查看软件中数据的准确性,能否满足需求,各功能模块的操作是否正常,以及还有哪些地方需要改进[5]㊂通常使用白盒测试技术和黑盒测试技术来对软件进行测试㊂前者是在了解系统内部工作流程的前提下,可以根据需求规范验证系统内部操作是否能够正常运行的测试;而黑盒测试指的是,倘若知道了这个系统的全部功能,可以进行测试㊁检测系统中的每一个功能是否满足正常使用㊂一般的测试用例分为输入㊁行为和希望结果3个部分㊂但是优秀的测试用例还需要从正确性㊁完整性㊁输入具体内容㊁用词无歧义㊁用例细化㊁判断点无歧义,以及合理区分优先级等几个方面考虑㊂在对多功能记事本应用进行测试时,需考虑到登录的权限进行测试,如用户登录模块测试㊁新增标签模块测试㊁删除分类测试以及弹窗模块测试㊁分享模块测试㊂对测试中发现的错误及时修改处理,保证系统准确无误地供给用户使用㊂4㊀结语㊀㊀本文基于Eclipse+Android SDK开发设计了一款多功能记事本㊂完成了需求分析与数据库表的设计;实现了多功能记事本的主界面设计㊁文本记事模块设计㊁便签记事与编辑记事模块设计,以及网络分享模块的设计;在登录㊁修改密码以及分类删除功能性测试方面,表明了设计的有效性㊂此类多功能的记事本具有很强的实用性,快捷㊁方便的记事特点,更有利于提高信息记录的效率㊂参考文献[1]江志华,陈翱天.基于Android平台的记事本App 的开发与实现[J].乐山师范学院学报,2020(12): 49-54.[2]叶从玲.基于Android的快捷记事本的设计与实现[J].电脑知识与技术,2020(9):90-91.[3]王杰,周晓梅.基于腾讯云的云记事本系统设计与研究[J].电脑知识与技术,2021(25):92-95. [4]连壮.智能记事本App的实现与研究[J].电子技术与软件工程,2022(16):59-62.[5]唐岩皓.多源室内定位技术的算法研究与应用[D].桂林:桂林电子科技大学,2019.(编辑㊀李春燕)Design of a multifunctional notepad based on Eclipse+Android SDKLi ZhiweiSuzhou Higher Vocational and Technical School Suzhou215000 ChinaAbstract Traditional recording methods cannot meet the current requirements for information recording.This article develops a multifunctional electronic notebook based on Eclipse+Android e object-oriented Java language and lightweight database SQLite to manage data and files.Implemented user registration login creation and editing of notes note keeping network sharing and pop-up module design for Notepad.The functional test results indicate that the design has basically met the user s requirements and has the characteristics of convenience and ease of use. Key words Eclipse Android SDK notepad SQLite。

java记事本设计

java记事本设计

java记事本设计学院:专业年级:学号:学生姓名:成绩评定:目录--java记事本设计第1章系统设计目的 (3)第2章系统实现思路 (3)第3章系统详细设计 (8)第4章系统调试运行 (8)第5章课程设计心得 (9)第6章参考文献 (9)第1章系统设计目的1.1需求分析现在网络上各种文档编辑器数不胜数,有EmEditor ,UEStudio ,GridinSoft Notepad ,Notepad++,win32pad ,SkimEdit,UniRed, xint 。

功能也是应有尽有,有能改变字体的,有能改变文字颜色的。

但是,这些软件又存在各种各样的瑕疵或问题:有的文件体积相对于一般文字编辑来说太大;有的功能太繁杂,使初级使用者一时难以掌握。

仅从日常应用方面来说,一个文本编辑器只需一些简单实用的功能就够了。

本程序设计就是依照这样一种使用需要设计了一个简单的记事本程序。

1.2程序设计思路设计一个简单的Windows记事本,可以实现以下功能:1:文件的新建,打开,保存和另存;2:对文件的编辑,如全选,复制,剪切,粘贴;3:执行完操作后,能够顺利关闭记事本。

第2章系统实现思路设计两个类,一个jsb类,具有程序的要求和功能再创建一个keshe主类,在主类中创建一个jsb类的对象,就可以直接在编译器中运行程序。

1.1界面设计在主界面中设计一个Frame容器,并在其中加入一个下拉菜单和一个文本域控件,把该容器设置为GridLayout(1,1)布局。

1.2功能设计在下拉菜单中加入子菜单并进行监听,分别实现对文件的操作功能。

点击不同菜单项时,显示不同界面。

1.3代码设计编写每个控件的相关代码,并进行调试。

第3章系统详细设计1.1界面设计创建一个下拉菜单和文本域,在文本域中显示编辑的文件信息。

1.2功能设计对每个菜单项进行注册监听。

点击不同菜单项时,显示不同界面。

1.3代码设计第4章系统调试运行1.1界面调试确定主窗体,设置主窗体的属性,对窗体进行布局,加入所需控件并对控件进行初始化。

记事本程序java课程设计

记事本程序java课程设计

记事本程序java课程设计一、教学目标本课程旨在通过记事本程序的设计与实现,让学生掌握Java编程的基本语法、面向对象编程思想,以及常用数据结构的使用。

在知识目标上,要求学生能够熟练运用Java语言编写简单的记事本程序,理解并应用面向对象编程的基本概念,如封装、继承和多态。

在技能目标上,培养学生分析问题、解决问题的能力,以及良好的编程习惯。

在情感态度价值观目标上,激发学生对计算机科学的兴趣,培养学生的创新意识和团队协作精神。

二、教学内容本课程的教学内容主要包括Java语言基础知识、面向对象编程、常用数据结构、记事本程序设计等。

具体安排如下:1.Java语言基础知识:介绍Java编程语言的基本语法、数据类型、运算符、控制结构等。

2.面向对象编程:讲解类与对象、封装、继承和多态等概念,并引导学生通过实例掌握面向对象编程的方法。

3.常用数据结构:介绍数组、链表、栈、队列等数据结构的基本原理和应用。

4.记事本程序设计:引导学生运用所学知识编写一个简单的记事本程序,掌握文件操作、文本编辑等技能。

三、教学方法为了提高教学效果,本课程将采用多种教学方法相结合的方式,如讲授法、案例分析法、实验法等。

在教学过程中,教师将引导学生通过查阅教材、观看教学视频、编写代码和参与讨论,从而深入理解Java编程知识和记事本程序设计技巧。

同时,鼓励学生进行自主学习和团队合作,培养学生的创新意识和解决问题的能力。

四、教学资源为了支持教学内容和教学方法的实施,我们将准备以下教学资源:1.教材:《Java编程思想》等。

2.参考书:《Java核心技术》、《Java Web开发》等。

3.多媒体资料:教学视频、PPT课件等。

4.实验设备:计算机、网络设备等。

通过以上教学资源的支持,学生将能够更好地学习Java语言和记事本程序设计,提高自己的编程技能。

五、教学评估本课程的教学评估将采用多元化的评价方式,以全面、客观、公正地评估学生的学习成果。

如何使用记事本编写JAVA程序

如何使用记事本编写JAVA程序

新建java第一种方法1首先右击鼠标,新建一个文本文档。

2更改文本文档的后缀名为 .java 。

注意文件名必须和类名相同。

如果你的电脑没有显示后缀名的话需要对电脑进行一定的设置。

3打开计算机&mdash;&mdash;组织&mdash;&mdash;文件夹选项&mdash;&mdash;查看&mdash;&mdash;将隐藏文件夹选项取消勾选即可。

建议将这个选项取消勾选,有很多的恶意程序会侵入我们的电脑,取消勾选可以很好的查看病毒等文件的类型。

4右击建好的文档,选择编辑即可进行java的编写。

在编写的时候我们有一定的格式,java语言的格式是为了我们日后更改程序方便而规定的,我们一定要遵循这种格式编写。

第二种方法1直接新建一个记事本文档,然后选择保存。

注意保存时额位置,不要等到保存完却找不到文件到哪了。

2在选择保存的窗口中输入后缀.java,然后保存即可。

注意文件名必须和类名相同。

3同样右击文件,选择编辑即可在文件中进行编辑了。

前两个大括号之间回车,第二对大括号有一个间隔,直接按TAb键即可。

测试运行java程序打开运行命令,也可以直接在开菜单中输入CMD调用命令窗口。

你的文件保存在哪里就将你的文件目录输入到命令提示符窗口中,例如我的是D盘根目录,所以我输入d:。

编译java文件,生成class文件。

在命令提示符中输入javac 文件名.java,我的文件名为A,所以输入javac A.java然后回车,等待编译。

运行文件。

继续输入java 文件名然后回车就可以运行我们写好的文件了。

JAVA--简单记事本源代码

JAVA--简单记事本源代码

JAVA--简单记事本源代码import javax.swing.JFrame;import javax.swing.JTextArea;import java.awt.*;import java.awt.event.*;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.FileReader;import java.io.FileWriter;import javax.swing.*;import javax.swing.plaf.FileChooserUI;public class notepad extends JFrame implements ActionListener{//定义所需要的组件JTextArea jta=null;JMenuBar jmb=null;JMenu jm=null;JMenuItem jmi1=null;JMenuItem jmi2=null;public static void main(String[]args){new notepad();}public notepad(){//把组件添加到窗体上jta=new JTextArea();jmb=new JMenuBar();this.add(jta);this.setJMenuBar(jmb);//设置窗体属性this.setTitle("简易记事本");this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setSize(400, 300);this.setVisible(true);//把菜单添加进菜单条jm=new JMenu("⽂件");jm.setMnemonic('f');jmb.add(jm);//把⼦菜单加⼊⾄菜单jmi1=new JMenuItem("打开");jmi2=new JMenuItem("保存");jmi1.setActionCommand("open");jmi2.setActionCommand("save");jm.add(jmi1);jm.add(jmi2);//为两个字菜单注册事件监听jmi1.addActionListener(this);jmi2.addActionListener(this);}public void actionPerformed(ActionEvent e){//对点击了打开进⾏处理if(e.getActionCommand().equals("open")){//创建⼀个⽂件选择组件JFileChooser jfc1=new JFileChooser();//设置⽂件选择器的名字jfc1.setDialogTitle("请选择⽂件....");//设置⽂件选择组件的类型(打开类型)jfc1.showOpenDialog(null);//显⽰该组件jfc1.setVisible(true);//获取选择⽂件的绝对路径String s;s=jfc1.getSelectedFile().getAbsolutePath();//将该⽂件显⽰到记事本上BufferedReader br=null;FileReader fr=null;try{//创建⼀个带缓冲的⽂件读取对象fr=new FileReader(s);br=new BufferedReader(fr);String text="";String m=null;//循环读取⽂件while((m=br.readLine())!=null){text+=m+"\r\n";}//将读取的结果打印到记事本上⾯this.jta.setText(text);}catch(Exception e1){e1.printStackTrace();}finally{//关掉打开的⽂件try{br.close();fr.close();}catch(Exception e2){e2.printStackTrace();}}}else if(e.getActionCommand().equals("save")){//创建⼀个⽂件选择组件JFileChooser jfc=new JFileChooser();//设置⽂件选择的名称jfc.setDialogTitle("另存为");//设置⽂件选择组件的类型(保存类型)jfc.showSaveDialog(null);//显⽰该组件jfc.setVisible(true);//获取选择⽂件的绝对路径String filename;filename=jfc.getSelectedFile().getAbsolutePath(); //将记事本内的⽂本保存⾄该路径BufferedWriter bw=null;FileWriter fw=null;try{//创建⽂件输出⽂件fw=new FileWriter(filename);bw=new BufferedWriter(fw);//获取⽂本String outtext="";outtext=this.jta.getText();//输出⽂本fw.write(outtext);}catch(Exception e2){e2.printStackTrace();}finally{//关闭打开的输出⽂件try{bw.close();fw.close();}catch(Exception e3){e3.printStackTrace();}}}}}。

android开发记事本实验报告,记事本实验报告(含源代码运行结果).doc

android开发记事本实验报告,记事本实验报告(含源代码运行结果).doc

android开发记事本实验报告,记事本实验报告(含源代码运⾏结果).doc记事本实验报告(含源代码运⾏结果)嘉应学院计算机学院实验报告系/班别: 计算机学院 1203班指导⽼师: 肖**课程名称: Java语⾔程序设计实验内容: ⽤Java编写记事本学⽣学号:学⽣姓名: 曾朝阳实验地点: 锡科403实验类型: 设计实验时间: 第⼗四周⾄第⼗七周实验要求:能够通过使⽤JDK1.6安装开发windows 桌⾯应⽤程序。

实验⽬的:熟悉事件触发和事件监听以及组件和容器的界⾯安排,能够⽤java设计⼀个仿windows的标准型记事本。

实验过程描述:实验环境:⽹络实验室实验设备:PC机, ⽹络实验平台:winxp. JDK1.6过程描述:1.⾸先,安装JDK1.62.打开开始-》运⾏->输⼊cmd进⼊dos->cd 路径(原程序的路径)->javac NotepadTest.java(编绎)->java NotepadTest运⾏编写程序:import java.io.File;import .URLClassLoader;import .URL;import ng.InterruptedException;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.PrintStream;import java.util.Scanner;import java.util.Date;import java.util.Iterator;import java.util.List;import java.text.SimpleDateFormat; import javax.swing.JButton;import javax.swing.JCheckBox;import javax.swing.JCheckBoxMenuItem; import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JPanel;import javax.swing.JTextArea;import javax.swing.JMenu;import javax.swing.JMenuBar;import javax.swing.ImageIcon;import javax.swing.JScrollPane;import javax.swing.JToolBar;import javax.swing.JMenuItem;import javax.swing.KeyStroke;import javax.swing.JPopupMenu;import javax.swing.JFileChooser;import javax.swing.JOptionPane;import javax.swing.JFileChooser;import javax.swing.JColorChooser; import javax.swing.JDialog;import javax.swing.JTextField;import javax.swing.BorderFactory;import javax.swing.JList;import javax.swing.JComboBox;import javax.swing.UIManager;import javax.swing.JRadioButton;import javax.swing.JToggleButton;import javax.swing.ButtonGroup;import javax.swing.TransferHandler;import javax.swing.border.Border; import javax.swing.border.TitledBorder; import javax.swing.text.Document; import javax.swing.undo.UndoManager; import javax.swing.undo.UndoableEdit; import。

简单记事本的java程序代码

简单记事本的java程序代码

简单记事本的java程序代码涉及到两个文件:第一个文件中的代码:package MyProject;import java.awt.BorderLayout;import javax.swing.JPanel;import javax.swing.JFrame;import java.awt.Dimension;import javax.swing.JMenuBar;import javax.swing.JMenu;import javax.swing.JMenuItem;import javax.swing.JLabel;import java.awt.Rectangle;import javax.swing.JTextArea;import javax.swing.JScrollPane;import java.awt.datatransfer.*;import java.io.*;public class MainFrame extends JFrame {private static final long serialVersionUID = 1L;private JPanel jContentPane = null;private JMenuBar jJMenuBar = null;private JMenu jMenu = null;private JMenu jMenu1 = null;private JMenu jMenu2 = null;private JMenuItem jMenuItem = null;private JMenuItem jMenuItem1 = null;private JMenuItem jMenuItem2 = null;private JMenuItem jMenuItem3 = null;private JLabel jLabel = null;private JScrollPane jScrollPane = null;private JTextArea jTextArea = null;private JMenuItem jMenuItem4 = null;private JMenuItem jMenuItem5 = null;private JMenuItem jMenuItem6 = null;private JMenuItem jMenuItem7 = null;private static MainFrame myMainFrame=null;private static String textstr="";///用于记录文本文件的路径private File myFile=null;private FileReader myrder=null;private FileWriter mywr=nulJava培训l;/*** This is the default constructor*/public MainFrame() {super();initialize();}/*** This method initializes this** @return void*/private void initialize() {this.setSize(412, 350);this.setJMenuBar(getJJMenuBar());this.setContentPane(getJContentPane());this.setTitle("JFrame");this.addWindowListener(new java.awt.event.WindowAdapter() { public void windowActivated(java.awt.event.WindowEvent e) { if(!textstr.equals("")){try{myFile=new File(textstr);if(!myFile.exists()){myFile.createNewFile();}myrder=new FileReader(myFile);char[] mychar=new char[(int)myFile.length()];myrder.read(mychar);String tmp=new String(mychar);jTextArea.setText(tmp);myrder.close();}catch(Exception ee){ee.printStackTrace();}}}public void windowClosing(java.awt.event.WindowEvent e) {System.exit(0);}});this.setVisible(true);myMainFrame=this;}/*** This method initializes jContentPane** @return javax.swing.JPanel*/private JPanel getJContentPane() {if (jContentPane == null) {jLabel = new JLabel();jLabel.setBounds(new Rectangle(15, 18, 65, 18)); jLabel.setText("文件内容:");jContentPane = new JPanel();jContentPane.setLayout(null);jContentPane.add(jLabel, null); jContentPane.add(getJScrollPane(), null);}return jContentPane;}/*** This method initializes jJMenuBar** @return javax.swing.JMenuBar*/private JMenuBar getJJMenuBar() {if (jJMenuBar == null) {jJMenuBar = new JMenuBar();jJMenuBar.add(getJMenu());jJMenuBar.add(getJMenu1());jJMenuBar.add(getJMenu2());}return jJMenuBar;}/*** This method initializes jMenu** @return javax.swing.JMenu*/private JMenu getJMenu() {if (jMenu == null) {jMenu = new JMenu();jMenu.setText("文件");jMenu.add(getJMenuItem());jMenu.add(getJMenuItem1());jMenu.add(getJMenuItem2());jMenu.add(getJMenuItem3());}return jMenu;}/*** This method initializes jMenu1** @return javax.swing.JMenu*/private JMenu getJMenu1() {if (jMenu1 == null) {jMenu1 = new JMenu();jMenu1.setText("编辑");jMenu1.add(getJMenuItem4());jMenu1.add(getJMenuItem5());jMenu1.add(getJMenuItem6());}return jMenu1;}/*** This method initializes jMenu2** @return javax.swing.JMenu*/private JMenu getJMenu2() {if (jMenu2 == null) {jMenu2 = new JMenu();jMenu2.setText("帮助");jMenu2.add(getJMenuItem7());}return jMenu2;}/*** This method initializes jMenuItem** @return javax.swing.JMenuItem*/private JMenuItem getJMenuItem() {if (jMenuItem == null) {jMenuItem = new JMenuItem();jMenuItem.setText("打开");jMenuItem.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent e) {MainFrame.this.myMainFrame.setEnabled(false);SelectTextFile mysl=new SelectTextFile();mysl.setVisible(true);}});}return jMenuItem;}/*** This method initializes jMenuItem1** @return javax.swing.JMenuItem*/private JMenuItem getJMenuItem1() {if (jMenuItem1 == null) {jMenuItem1 = new JMenuItem();jMenuItem1.setText("关闭");jMenuItem1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent e) {try{myFile=null;}catch(Exception ee){ee.printStackTrace();}jTextArea.setText("");}});}return jMenuItem1;}/*** This method initializes jMenuItem2** @return javax.swing.JMenuItem*/private JMenuItem getJMenuItem2() {if (jMenuItem2 == null) {jMenuItem2 = new JMenuItem();jMenuItem2.setText("保存");jMenuItem2.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent e) {try{String tmp=jTextArea.getText();char[] mychar=tmp.toCharArray();myFile.delete();myFile.createNewFile();mywr=new FileWriter(myFile);mywr.write(mychar);mywr.close();}catch(Exception ee){ee.printStackTrace();}}});}return jMenuItem2;}/*** This method initializes jMenuItem3** @return javax.swing.JMenuItem*/private JMenuItem getJMenuItem3() {if (jMenuItem3 == null) {jMenuItem3 = new JMenuItem();jMenuItem3.setText("退出");jMenuItem3.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent e) {System.exit(0);}});}return jMenuItem3;}/*** This method initializes jScrollPane** @return javax.swing.JScrollPane*/private JScrollPane getJScrollPane() {if (jScrollPane == null) {jScrollPane = new JScrollPane();jScrollPane.setBounds(new Rectangle(15, 46, 371, 225)); jScrollPane.setViewportView(getJTextArea());}return jScrollPane;}/*** This method initializes jTextArea** @return javax.swing.JTextArea*/private JTextArea getJTextArea() {if (jTextArea == null) {jTextArea = new JTextArea();}return jTextArea;}/*** This method initializes jMenuItem4** @return javax.swing.JMenuItem*/private JMenuItem getJMenuItem4() {if (jMenuItem4 == null) {jMenuItem4 = new JMenuItem();jMenuItem4.setText("复制");jMenuItem4.addActionListener(new java.awt.event.ActionListener() {public void actionPerformed(java.awt.event.ActionEvent e) {MainFrame.this.setClipboardText(MainFrame.this.getToolkit().getSystemClipboard(),jT ext Area.getSelectedText());}});}return jMenuItem4;}/*** This method initializes jMenuItem5** @return javax.swing.JMenuItem*/private JMenuItem getJMenuItem5() {if (jMenuItem5 == null) {jMenuItem5 = new JMenuItem();jMenuItem5.setText("剪切");jMenuItem5.addActionListener(new java.awt.event.ActionListener() {public void actionPerformed(java.awt.event.ActionEvent e) {MainFrame.this.setClipboardText(MainFrame.this.getToolkit().getSystemClipboard(),jT ext Area.getSelectedText());jTextArea.setText(jTextArea.getText().substring(0,jTextArea.getSelectionStart()));}});}return jMenuItem5;}/*** This method initializes jMenuItem6** @return javax.swing.JMenuItem*/private JMenuItem getJMenuItem6() {if (jMenuItem6 == null) {jMenuItem6 = new JMenuItem();jMenuItem6.setText("黏贴");jMenuItem6.addActionListener(new java.awt.event.ActionListener() {public void actionPerformed(java.awt.event.ActionEvent e) {try{jTextArea.setText(jTextArea.getText().substring(0,jTextArea.getSelectionStart()));jTextArea.setText(jTextArea.getText()+(MainFrame.this.getClipboardText(MainFrame.this. getToolkit().getSystemClipboard())));}catch(Exception ee){ee.printStackTrace();}}});}return jMenuItem6;}/*** This method initializes jMenuItem7** @return javax.swing.JMenuItem*/private JMenuItem getJMenuItem7() {if (jMenuItem7 == null) {jMenuItem7 = new JMenuItem();jMenuItem7.setText("关于记事本");jMenuItem7.addActionListener(new java.awt.event.ActionListener() {public void actionPerformed(java.awt.event.ActionEvent e) {////暂无代码!!}});}return jMenuItem7;}public static void main(String args[]){new MainFrame();}public static MainFrame getMyMainFrame() {return myMainFrame;}public static void setMyMainFrame(MainFrame myMainFrame) {MainFrame.myMainFrame = myMainFrame;}public static String getTextstr() {return textstr;}public static void setTextstr(String textstr) {MainFrame.textstr = textstr;}protected static String getClipboardText(Clipboard clip) throws Exception{ Transferable clipT = clip.getContents(null);// 获取剪切板中的内容if (clipT != null) {if (clipT.isDataFlavorSupported(DataFlavor.stringFlavor)) // 检查内容是否是文本类型return (String)clipT.getTransferData(DataFlavor.stringFlavor);}return null;}protected static void setClipboardText(Clipboard clip, String writeMe) {Transferable tText = new StringSelection(writeMe);clip.setContents(tText, null);}} // @jve:decl-index=0:visual-constraint="10,10"第二个文件中的代码:(太长了,贴不上来)整个效果就是实现了基本的打开、关闭、保存、退出的功能。

java编程记事本代码

java编程记事本代码

import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.io.*; public class Notepad extends JFrame {係统组件声明private JMenuBar menuBar = new JMe nuBar(; private JEditorPa ne content = new JEditorPa ne(; private JScrollPa ne scroll = new JScrollPa ne(c ontent; 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 JMenultem newMenultem = new JMenultem(; private JMe nultem ope nMen ultem = new JMe nultem(; private JMe nultem saveMe nultem = new JMe nultem(; private JMe nultem saveAsMe nultem = new JMe nultem(; private JMe nultem pageSetupMe nultem = new JMe nultem(; private JMe nultem prin tMe nultem = new JMe nultem(; private JMe nultem exitMe nultem = new JMenultem(; // 定义风格菜单private JMenu styleMenu = new JMenu(; private Butt on Group styleMe nu Group = new Butt on Group(; private JRadioButt onMen ultem javaStyleMe nultem = new JRadioButt onMen ultem(; private JRadioButt onMen ultem metalStyleMe nultem = new JRadioButt onMen ultem(; private JRadioButt onMen ultem windowsStyleMenultem = new JRadioButtonMenultem(; // 定义帮助菜单private JMe nultem aboutMe nultem = new JMe nultem(; private JMe nultem helpTopicMe nultem =new JMenultem(; private JMenu helpMenu = new JMenu(; 〃构造函数public Notepad({ initComponents(; } private void initComponents({ // 添加子菜单项到文件菜单fileMe nu.setText("\u6587\u4ef6 (F"; n ewMe nultem.setText(” 新建(NCtrl+N"; ope nMen ultem.setText(” 打开(O…Ctrl+O"; saveMe nultem.setText(”保存(S Ctrl+S"; saveAsMenultem.setText(” 另存为(A..."; pageSetupMenultem.setText(” 页面设置(U..."; printMenultem.setText(” 打印(P... Ctrl+P"; exitMe nultem.setText(” 退出";fileMe nu.add( newMe nultem;fileMe nu .add(ope nMen ultem; fileMe nu .add(saveMe nultem; fileMe nu .add(saveAsMe nultem; fileMe nu.addSeparator(; fileMenu.add(pageSetupMenultem;fileMenu.add(printMenultem; fileMe nu.addSeparator(; fileMe nu.add(exitMe nultem; // 添加子菜单项到风格菜单styleMe nu.setText(‘ 风格(S"; javaStyleMe nultem.setText("Java 默认";metalStyleMe nultem.setText("Metal 风格";wi ndowsStyleMe nultem.setText("Wi ndows 风格";styleMe nuGroup.add(javaStyleMe nultem;styleMe nuGroup.add(metalStyleMe nuItem;styleMe nu Group.add(wi ndowsStyleMe nultem; styleMe nu .add(javaStyleMe nultem; styleMe nu.add(metalStyleMe nultem; styleMe nu.add(wi ndowsStyleMe nultem; // 添加子菜单项到帮助菜单helpMenu.setText(‘帮助(H"; helpTopicMenultem.setText(” 帮助主题(H"; aboutMenultem.setText(” 关于记事本(A";helpMe nu .add(helpTopicMe nultem; helpMe nu .addSeparator(;helpMe nu .add(aboutMe nultem; //定义文件菜单下的事件监听n ewMe nultem.addActio nListe ner(new n ewMe nultem_actio nAdapter(this; ope nMen ultem.addActio nListe ner(new ope nMen ultem_actio nAdapter(this; saveMenultem.addActio nListe ner(new saveMe nultem_actio nAdapter(this; saveAsMe nultem.addActio nListe ner(new saveAsMe nultem_actio nAdapter(this; pageSetupMe nultem.addActio nListe ner(new pageSetupMe nultem_actio nAdapter(this; prin tMe nultem.addActi on Liste ner(n ew prin tMe nultem_actio nAdapter(this;exitMenultem.addActionListener(new exitMenultem_actionAdapter(this; // 定义风格菜单下的事件监听javaStyleMenultem.addActionListener(newjavaStyleMenultem_actionAdapter(this; metalStyleMenultem.addActionListener(new metalStyleMe nultem_actio nAdapter(this;wi ndowsStyleMe nultem.addActio nListe ner(newwi ndowsStyleMe nultem_actio nAdapter(this; // 定义帮助菜单下的事件监听helpTopicMe nultem.addActio nListe ner(new helpTopicMe nultem_actio nAdapter(this; aboutMe nultem.addActio nListe ner(new aboutMe nultem_actio nAdapter(this; 〃填加菜单至U菜单栏menuBar.add(fileMenu; menuBar.add(styleMenu; menuBar.add(helpMenu; // 对主窗口的一些设置this.setDefaultCloseOperation(EXIT_ON_CLOSE; this.setTitle(" 纪生的记事本";this.setSize(640,480; setJMenuBar(menuBar; pane.setLayout(bord;pane.add("Center",scroll; setContentPane(pane; } /定义新建菜单项方法public void newMe nultemActio nPeformed(Actio nEve nt evt{ file = nu II;if(!("".equals(co nten t.getText({ Object]] optio ns = {" 是(Y "," 否(N "," 取消"}; int s = JOptio nPan e.showOptio nDialog( null, "\u6587\u4ef6 "+getTitIe(+"\u7684\u6587\u5b57\u5df2\u7ecf\u6539\u53d8\u3002\n\u60f3\u4fdd\u5b58\u6587\u4ef6 \u5417\uff1f", "\u8bb0\u4e8b\u672c", JOptio nPan e.DEFAULT_OPTION, JOptionPane.WARNING_MESSAGE, null, options, options[0]; switch(s{ case 0: int returnVal=filechooser.showSaveDialog(this; if(returnVal ==JFileChooser.APPROVE_OPTION { file=filechooser.getSelectedFile(; try{ FileWriterfw=new FileWriter(file; fw.write(co nten t.getText(;setTitle(filechooser.getSelectedFile(.getName(+" - \u8bb0\u4e8b\u672c"; fw.close(; } catch(Excepti on e{ e.pri ntStackTrace(; } break; } case 1: conten t.setText(""; setTitle("无标题-\u8bb0\u4e8b\u672c"; } } } // 定义打开菜单项方法public voidope nMen ultemActio nPeformed(Actio nEve nt evt{ try { file = n ull; int returnVal = filechooser.showOpenDialog(this; if(returnVal ==JFileChooser.APPROVE_OPTION{ file = filechooser.getSelectedFile(; FileReader fr = new FileReader(file; int len = (in tfile .len gth(; char[] buffer = new char[le n]; fr.read(buffer,0,le n; fr.close(; conten t.setText (newString(buffer; } } catch(Exception e{ e.printStackTrace(; } } // 定义退出菜单项方法public void exitMe nultem_actio nPeformed(Actio nEve nte{ if(!("".equals(co nte nt.getText({ Object]] optio ns = {" 是(Y "," 否(N "," 取消"}; int s = JOptionPane.showOptionDialog(null,"文件的文字已经改变。

日历记事本-JAVA课程设计..

日历记事本-JAVA课程设计..

沈阳大学沈阳大学沈阳大学沈阳大学沈阳大学沈阳大学沈阳大学图7 删除后页面图4.设计体会经过几天的努力,参考了一些书和网上的资料,完成了一个日历记事本的设计。

由于只学过一学期的Java课程,知识掌握的有限,所以此程序不是特别复杂。

在这个过程中,在把书本上的知识给系统的复习了一下的同时,同时也发现了自己的太多不足,对JA V A语言整体知识构架不够熟悉,不能灵活地运用所学的知识点。

自己的编程方式也不是太标准,经常出现代码写错而调试很久的低级错误情况出现。

通过这次课程设计,我明白了编写程序,不仅要求对课本知识有较深刻的了解,同时要求程序设计者有较强的思维和动手能力。

还要熟悉常用的编程技巧和编程思想,不能只关心程序的运行结果,更要注重程序代码的结构,编程者更要有严谨地态度。

本次课程设计不仅巩固了以前所学的知识,还有通过设计过程中大量地查阅网络文章,对一些关键知识点逐个地了解并解决相关问题。

所以网络这个强大的工具,确实是我们学习之中可以借助的一个很好的帮手。

网络是我们学习的最好的老师之一。

有问题,问网络,是一个很好的习惯。

因此学到了不少书本上没有的知识;学到了很多java编程知识。

可以说它给了我一次自我评估的机会。

通过设计让我知道了那些方面我还是有欠缺的,促使我花时间弥补。

总之,本次课程设计收获颇丰。

5.参考文献沈阳大学沈阳大学沈阳大学沈阳大学沈阳大学沈阳大学沈阳大学沈阳大学沈阳大学沈阳大学沈阳大学沈阳大学沈阳大学沈阳大学沈阳大学沈阳大学。

Java学习案例-实现日记本功能

Java学习案例-实现日记本功能

日记本【任务介绍】1.任务描述编写一个日记本功能的程序,使用字节流经日记的具体信息记录在本地的txt文件中。

当用户输入日记的特定内容后,会将输入的内容保存至本地的txt文件中。

需要输入的内容包括“姓名”,“天气”、“标题”、“内容”的数据。

保存的时候需要判断本地是否存在文件,如果存在则追加,不存在则新建。

文件命名格式为“黑马日记本”加上“.txt”后缀,如“黑马日记本.txt”2.运行结果任务运行结果如图7-1所示。

图7-2 运行结果运行结束后在本地生成一个“黑马日记本.txt”文件,如图7-2所示。

图7-2 黑马日记本.txt【任务目标】●学会分析"日记本小功能"程序的实现思路。

●根据思路独立完成"日记本小功能"的源代码编写、编译及运行。

●掌握字节流操作本地文件的方法。

●掌握ArrayList和StringBuffer的使用,以及异常的处理。

【实现思路】(1)为方便保存日记的相关信息,可以将日记信息封装成一个实体类。

(2)用户编写日记时,首先创建一个集合用于存放日记,然后用户依次填写的内容为“姓名”,“天气”、“标题”和“内容”,并将这些内容存放在集合中,再将实体类保存到txt文件中。

(3)查询日记时,使用字节流的读取实现控制台打印日记信息。

(4)将日记信息写入到txt文件之前,需先拼凑好txt文件名,再判断本地是否已存在此文件,这里可通过输入流尝试获取此文件的字节流,如果获取成功,则证明这个文件已存在,那么就通过输出流向文件末尾追加日记信息,如果获取失败,即异常,说明之前并没有生成日记信息,则需要新建此文件。

【实现代码】日记小功能的实现代码,如文件7-1所示。

(1)将日记信息封装成一个实体类Diary,具体如文件7-1所示。

文件7-1 Diary.java1 package chapter0703;2 public class Diary {3 String time; //时间4 String name; //姓名5 String weather;//天气6 String title;//标题7 String content;//内容8 public Diary(String time, String name, String weather, String title,9 String content) {10 this.time = time;11 = name;12 this.weather = weather;13 this.title = title;14 this.content=content;15 }16 }在文件7-1中,第3-7行代码定义了用于标识日记信息的各个字段,第8-14行代码重新了toString()方法。

java记事本源代码

java记事本源代码
m12.setAccelerator(keysave);
JMenuItem m13=new JMenuItem("另保存为 ");
m13.addActionListener(this);
JMenuItem m14=new JMenuItem("退出 ");
m14.addActionListener(this);
{
myfr fr=new myfr("JAVA记事本");
fr.setSize(560,395);
}
}
///////////////////////////myfr主窗体类//////////////////////////////////////
class myfr extends JFrame implements ActionListener
JTextArea txt1; //主输入文本区
File newfiles;
JPopupMenu popm; //弹出菜单声明
//JMenu m1,m2,m3,m4,m5,m6; //各菜单项
JMenu m1, m2, m3;
JMenuItem m26,m271,m34,p_copy,p_cut,p_paste,p_del;
replb.addActionListener(this);
mainpane=(JPanel)this.getContentPane();
mainpane.setLayout(new BorderLayout());
txt1=new JTextArea("",13,61);
m21.setAccelerator(keycopy);

java记事本程序

java记事本程序

import java.awt.*;import java.io.*;import java.awt.datatransfer.*;import java.awt.event.*;class 菜单extends MenuBar{public 菜单(Frame 父窗口){父窗口.setMenuBar(this);}public void 添加菜单(String[] 菜单组){for(int i=0;i<菜单组.length;i++){add(new Menu(菜单组[i]));}}public void 添加菜单项(int 项数,String[] 菜单项){ for(int i=0;i<菜单项.length;i++){if(菜单项[i]!=null){getMenu(项数).add(菜单项[i]);}else getMenu(项数).addSeparator();}}public void 添加监听器(ActionListener 全部){for(int i=0;i<getMenuCount();i++){for(int j=0;j<getMenu(i).getItemCount();j++){getMenu(i).getItem(j).addActionListener(全部);}}}}class 文件处理{private FileDialog 对话框;public 文件处理(Frame 父窗口){对话框=new FileDialog(父窗口,"",FileDialog.LOAD);}public String 获取路径(){return 对话框.getDirectory()+"\\"+对话框.getFile();}public String 获取数据()throws IOException{对话框.setTitle("打开文件...");对话框.setMode(FileDialog.LOAD);对话框.setVisible(true);BufferedReader 读取缓冲=new BufferedReader(new FileReader(获取路径()));StringBuffer 文本缓冲=new StringBuffer();String 单行文本;while((单行文本=读取缓冲.readLine())!=null) 文本缓冲.append(单行文本+'\n');读取缓冲.close();return 文本缓冲.toString();}public void 保存文件(String 数据)throws IOException{对话框.setTitle("保存文件...");对话框.setMode(FileDialog.SA VE);对话框.setVisible(true);BufferedWriter 写入缓冲=new BufferedWriter(new FileWriter(获取路径()));写入缓冲.write(数据);写入缓冲.close();}}class 剪贴板处理{private Clipboard 剪贴板;public 剪贴板处理(){剪贴板=Toolkit.getDefaultToolkit().getSystemClipboard();}public void 存入数据(String 数据){剪贴板.setContents(new StringSelection(数据), null);}public String 获取数据(){Transferable 接口=剪贴板.getContents(null);try{return (String)接口.getTransferData(DataFlavor.stringFlavor);}catch(Exception e){}return null;}}class 查找extends Dialog implements ActionListener{private Label 查找标签=new Label("查找内容:");private Label 替换标签=new Label("替换内容:");private TextField 查找框=new TextField(50);private TextField 替换框=new TextField(50);private Button 查找按钮=new Button("查找");private Button 替换按钮=new Button("替换");private TextArea 被查框;public 查找(Frame owner,TextArea 被查框){super(owner,"查找",false);this.被查框=被查框;setLayout(null);查找标签.setBounds(10, 30, 80, 20);替换标签.setBounds(10, 70, 80, 20);查找框.setBounds(90, 30, 90, 20);替换框.setBounds(90, 30, 90, 20);查找按钮.setBounds(190,30,80,20);替换按钮.setBounds(190,30,80,20);add(查找标签);add(替换标签);add(查找框);add(替换框);add(替换按钮);add(查找按钮);setResizable(false);查找按钮.addActionListener(this);替换按钮.addActionListener(this);addWindowListener(new WindowAdapter(){public void windowClosing(WindowEvent e){查找.this.dispose();}});}public void 显示查找(){setTitle("查找...");setSize(280,60);setVisible(true);}public void 显示替换(){setTitle("查找并替换...");setSize(280,110);setVisible(true);}private void 查找(){String 文本=被查框.getText();String 查文本=查找框.getText();int 结尾=文本.length();int 长度=查文本.length();int 起始位置=被查框.getSelectionEnd();if(起始位置==结尾)起始位置=0;for(;起始位置<=结尾-长度;起始位置++){if(查文本.equals(文本.substring(起始位置, 起始位置+长度))){ 被查框.setSelectionStart(起始位置);被查框.setSelectionEnd(起始位置+长度);return;}}被查框.setSelectionStart(结尾);被查框.setSelectionEnd(结尾);}private void 替换(){String 替换文本=替换框.getText();if(被查框.getText().equals(替换框.getText()))被查框.replaceRange(替换文本,被查框.getSelectionStart(), 被查框.g etSelectionEnd());else 查找();}public void actionPerformed(ActionEvent 事件){if(事件.getSource()==查找按钮) 查找();else if(事件.getSource()==替换按钮) 替换();}}public class 记事本extends Frame implements ActionListener{/*** @param args the command line arguments*/private TextArea 编辑框=new TextArea();private 文件处理文件=new 文件处理(this);private 剪贴板处理剪贴板=new 剪贴板处理();private 查找查找对话=new 查找(this,编辑框);private String[] 菜单栏=new String[] {"文件","编辑","查找","帮助"};private String[] 子菜单0=new String[] {"新建","打开","保存",nul l,"退出"};private String[] 子菜单1=new String[] {"剪切","复制","粘贴","清除",null,"全选"};private String[] 子菜单2=new String[] {"查找",null,"查找替换"}; private String[] 子菜单3=new String[] {"关于记事本..."};public 记事本(String 标题){super(标题);菜单本菜单=new 菜单(this);本菜单.添加菜单(菜单栏);本菜单.添加菜单项(0, 子菜单0);本菜单.添加菜单项(1, 子菜单1);本菜单.添加菜单项(2, 子菜单2);本菜单.添加菜单项(3, 子菜单3);add(编辑框);本菜单.添加监听器(this);addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){记事本.this.dispose();}});}public void Main(String arg){}public void actionPerformed(ActionEvent 事件){ String 选择项=(String)事件.getActionCommand(); if(选择项.equals(子菜单0[0])) 编辑框.setText(""); else if(选择项.equals(子菜单0[1])){try{编辑框.setText(文件.获取数据());}catch(IOException ioe){}}else if(选择项.equals("子菜单0[2]")){try{文件.保存文件(编辑框.getText());}catch(IOException ioe){}}else if(选择项.equals("子菜单0[4]")){dispose();}else if(选择项.equals("子菜单1[0]")){剪贴板.存入数据(编辑框.getSelectedText());编辑框.replaceRange("", 编辑框.getSelectionStart(), 编辑框.getSele ctionEnd());}else if(选择项.equals("子菜单1[1]")){剪贴板.存入数据(编辑框.getSelectedText());}else if(选择项.equals("子菜单1[2]")){String 获得文本=剪贴板.获取数据();编辑框.replaceRange(获得文本, 编辑框.getSelectionStart(), 编辑框. getSelectionEnd());}else if(选择项.equals("子菜单1[3]")){编辑框.replaceRange("", 编辑框.getSelectionStart(), 编辑框.getSele ctionEnd());}else if(选择项.equals("子菜单1[5]")){编辑框.setSelectionStart(0);编辑框.setSelectionEnd(编辑框.getText().length()); }else if(选择项.equals("子菜单2[0]")){查找对话.显示查找();}else if(选择项.equals("子菜单2[2]")){查找对话.显示替换();}}public static void main(String[] args) {// TODO code application logic here记事本记事本实例= new 记事本("我的记事本"); 记事本实例.setSize(300, 300);记事本实例.setVisible(true);}}。

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

华北科技学院计算机系综合性实验
实验报告
课程名称Java程序设计A
实验学期2010至2011学年第1学期学生所在系部计算机
年级2008专业班级计科B083
学生姓名陈浩浩学号200807014308任课教师李芙玲
实验成绩
计算机系制
《Java程序设计A》课程综合性实验报告
开课实验室:基础实验室二2010年12月17日
实验题目我的写字板
一、实验目的
通过编写Java的应用系统综合实例——简易写字板软件,总结、回顾和实践面向对象的编程思想以及编程方法,并通过编写程序来掌握Java语言编程技巧,将学习到的知识融会贯通,同时提高调试程序的能力,养成良好的编程习惯,并增强对程序设计整体思路的把握。

熟悉在集成开发环境下编写Java程序。

二、设备与环境
硬件:多媒体计算机
软件:Windows2000以上的操作系统、JDK开发包、集成开发环境
MyEclipse7.0Blue
三、实验内容
总体要求:程序功能基本完成,用户界面友好,代码的可维护性和可扩展性较好,最好包括必要的注释和相应的文档。

具体要求:基本的文本录入,字符修改,删除,换行,粘贴,复制,剪切等功能,主要包括:1.菜单栏设计及功能实现:菜单栏主要包括文件、编辑、格式、帮助等常见菜单。

其中文件菜单有新建、打开、保存、另存为、退出等功能;编辑菜单有剪切、复制、粘贴、等功能;格式菜单含有对文字字体、字型、字号及颜色等的设置功能,根据情况可在编辑菜单添加查找和查找替换功能。

2.编辑区设计:对文本的编辑处理区。

3.工具栏设计:可根据需要增加该项功能。

4.其他功能设计。

四、实验结果及分析
1.主界面的设计与实现
整个界面共包括2部分,如图1所示,最上面是菜单栏,中部是主文本区。

图1主界面。

相关文档
最新文档