编写一个记事本程序 要求: 用图形用户界面实现。 能实现编辑、保存、另存为、查找替换等功能。
- 格式:doc
- 大小:58.50 KB
- 文档页数:7
课程设计课程设计名称:专业班级:学生姓名:学号:指导教师:课程设计时间:记事本一、需求分析使用java GUI实现一个记事本程序,实现文本的输入、修改、选择、存储、加载和文字样式的修改。
实现一个窗体程序,得用到我们学过的轻量级组件,然后再窗体里实现对文件的打开、新建、保存、另存为;实现对文本复制,粘贴,剪切,替换,添加日期/时间;为文字提供自动换行、字体。
其中文本替换实现区分大小写替换,为方便实现需要在建立一个窗体;字体提供用户字形、字体、大小变换。
二、概要设计三、运行环境、开发语言开发环境:JDK1.6 记事本主窗文件编辑格式新建打开保存另存复制粘贴剪切时间换行字体替换窗体字体窗体替换文本框开发语言:java语言四、详细设计1 程序清单表1 程序清单文件名功能MainFrame.java 记事本主窗口PFont.java 字体选项窗口Repalce.java 文本替换窗口2 主要代码2.1 文件打开保存文件的打开保存会根据用户是否修改过文本和是否指定存取文件路径开操作。
通过设置一个全局变量String content=“”;来存放文件刚打开时的文本,然后通过比较content和文本区里面的文本内容来提示用户是否保存!if (!content.equals(text.getText())) {//判断文件是否修改,如果修改就保存,没有修改不做操作int value = JOptionPane.showConfirmDialog(jf, "是否保存修改的文件","提醒", JOptionPane.YES_NO_OPTION);if (value == JOptionPane.YES_OPTION) {try {saveFile();} catch (IOException e1) {// TODO Auto-generated catch blockJOptionPane.showMessageDialog(jf, "保存失败" + e1);}}}通过设置一个全局变量File file=null;来记录用户是否指定文件的存取位置,如果用户没有指定,则调用文件选择框让用户选择存取文件。
记事本系统设计实践
1. 界面设计:首先需要设计一个图形用户界面(GUI),提供用户可视化的交互方式。
可以在界面上放置文本框、按钮、菜单等组件,方便用户编辑文本、打开、保存文件等操作。
2. 数据结构:为了保存用户输入的文本,需要使用数据结构来存储数据。
一般情况下可以使用字符串或字符数组来存储文本内容,也可以使用链表来存储多行文本,以便进行插入、删除等操作。
3. 文件读写功能:记事本需要实现打开、保存、另存为等文件操作。
在代码中可以运用文件读写函数实现。
4. 剪切、复制、粘贴功能:这个功能直接调用系统函数即可实现。
5. 撤销、重做功能:为了方便用户进行更多的编辑操作,需要实现撤销和重做功能。
可以使用栈数据结构来实现这个功能,每次用户进行操作时,将该操作记录下来,若用户进行了撤销、重做,就可以从栈中取出已经存储的操作。
6. 编辑功能:可以实现字体、颜色等编辑功能,让用户自由地进行文本样式调整。
7. 快捷键功能:为了方便用户,在代码中可以实现某些快捷键功能,例如撤销、
重做、保存等。
8. 其他功能:还可以实现查找、替换、自动保存、打印等功能,增加更多的实用性。
总之,一个记事本系统的设计需要从多个角度考虑,重点是界面、数据结构、文件读写、快捷键等功能的实现。
JAVA课程设计-编写一个记事本程序Java语言程序设计B报告题目:编写一个记事本程序一.要求:用图形用户界面实现。
能实现编辑、保存、另存为、查找替换等功能。
提示:使用文件输入输出流。
二.课程设计思路。
设计两个类,一个记事本的类(JSB),具有程序的要求和功能再创建一个课设的主类(KESHE),在主类中创建一个JSB类的对象,就可以直接在编译器中运行程序。
在主界面中设计一个Frame容器,并在其中加入一个下拉菜单和一个文本域控件,把该容器设置为GridLayout(1,1)布局。
三.课程设计实现功能结构图。
3.1“文件”菜单。
3.2“编辑”菜单。
四.记事本实现功能代码实现。
4.1.界面设计。
主要代码:f=new Frame(s);p1=new TextArea("");f.setSize(400,600);f.setBackground(Color.white);f.setVisible(true);menubar=new MenuBar(); menu1=new Menu("文件"); menu2=new Menu("编辑"); item1=new MenuItem("新建"); item2=new MenuItem("打开"); item3=new MenuItem("保存"); item4=new MenuItem("另存为"); item5=new MenuItem("退出"); item6=new MenuItem("全选"); item7=new MenuItem("复制");item8=new MenuItem("剪切"); item9=new MenuItem("粘贴");menu1.add(item1);menu1.add(item2);menu1.add(item4); menu1.add(item5); menu2.add(item6); menu2.add(item7); menu2.add(item8); menu2.add(item9); menubar.add(menu1); menubar.add(menu2);f.setMenuBar(menubar);程序代码实现截图:4.2功能代码详细设计。
软件工程课程设计可供选的题目1.学生学籍管理系统2.图书查询系统3.电话交费系统4.单机五子棋游戏软件开发5.简单图形显示软件6.学生通讯录管理系统7.医药管理系统8.库存管理系统9.货物进销管理系统10.“贪吃蛇”游戏开发与设计11.学分统计系统12.博客系统13.模拟飞行系统14.多媒体播放设计15.计算机屏保开发16.“扫雷”游戏开发17.基于过滤的个人防火墙设计18.“二合一”小游戏开发19.财务管理系统20.工资管理系统21.项目管理系统22.学校收费管理系统23.基于bmp格式的图象压缩24.教务管理系统25.舰艇对战游戏26.俄罗斯方块小游戏27.企业备忘录系统28.图书借阅管理系统29.学生成绩管理系统30.会员管理系统31.网上订书系统32.银行储蓄系统33.医院药品进销存系统34.英语学习助手35.大学生就业咨询系统36.教务辅助管理系统37.手机话费查询系统38.教师信息管理系统39.人事档案管理系统40.学生公寓管理系统41.球队管理系统42.编写一个记事本程序43.模拟龟兔赛跑44.万年历45.日历记事本46.加密与解密47.小游戏48.聊天小程序49.网络监听程序50.网页浏览器开发其中部分的题目的(数据与功能)要求如下:(一)学生学籍管理系统1、主要的数据表学生基本情况数据表,学生成绩数据表,课程表,代码表等。
2、主要功能模块实现学生基本情况的录入,修改,删除等基本操作。
对学生基本信息提供灵活的查询方式。
完成一个班级的学期选课功能。
实现学生成绩的录入,修改,删除等基本操作。
能方便的对学生的个人学期成绩进行查询。
具有成绩统计,排名等功能。
具有留级,休学等特殊情况的处理功能。
能输出常用的各种报表。
具有数据备份和数据恢复功能。
3、设计要求学生成绩表的设计,要考虑到不同年级的教学计划的变化情况。
对于新生班级,应该首先进行基本情况录入,选课,然后才能进行成绩录入。
(二)图书管理系统1、主要的数据表图书基本信息表,借书卡信息表,借阅信息表,图书分类信息表,代码表等。
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 Swing 之记事本制作作者:夏庆英来源:《中小企业管理与科技·上中下旬刊》 2015年第12期夏庆英黑龙江农垦科技职业学:黑龙江哈尔滨150431摘要:记事本应用程序的制作在Java程序设计课程的教学中具有非常典型的示范作用,该案例的制作涵盖了图形用户界面、事件处理、文件读写、泛型等重要知识点,在现代高等学校职业教育的方式手段中,JavaSwing之记事本制作是很好的任务驱动案例,所以,接下来首先从搭建图形用户界面环境入手,其次,介绍图形用户界面布局管理,以及常用组件的应用技巧,最后,实现文件的保存、打开、文本编辑等功能。
关键词:JavaSwing;记事本;制作1环境搭建1.1准备工作下载软件WB_v1.7.0_UpdateSite_for_Eclipse4.4。
1.2更新软件打开eclipse,找到帮助菜单下的安装新软件,按照提示向导将WB_v1.7.0_UpdateSite_for_Eclipse4.4安装到eclipse中,安装结束后需要重新启动eclipse。
1.3使用环境重新启动eclipse,新建Java项目,命名为NotepadDemo。
2界面布局当一个窗口中的组件较多时,界面应该简洁整齐,布局合理。
Java采用布局管理器对容器中的组件进行相对布局管理,当改变容器大小时,或者改变组件的大小,或者改变组件之间的相对位置,保证组件不会被遮盖并且容器没有空白区域。
Java提供多种风格和特点的布局管理器,每种布局管理器指定一种组件之间的相对位置。
Java.awt布局管理器类主要有FlowLayout流、BorderLayout边、GridBagLayout网格包及GridLayout风格。
布局是容器类的特性,每种容器都有一种默认布局。
Window容器类的默认布局是BorderLayout,如果一个容器需要改变其默认布局管理器,可以调用Container容器类的setLayout()方法。
import java.io.*;import java.util.Calendar;import java.awt.*;import java.awt.event.*;import javax.swing.*;public class NoteBook extends JFrame implementsActionListener,ItemListener,WindowListener,MouseListener{Container c = this.getContentPane();JMenuBar jmb = new JMenuBar();JColorChooser jcc = new JColorChooser();JMenu jm1 = new JMenu("文件(F)");JMenu jm2 = new JMenu("编辑(E)");JMenu jm3 = new JMenu("格式(O)");JMenu jm4 = new JMenu("查看(V)");JMenu jm5 = new JMenu("帮助(H)");JMenuItem jmi1 = new JMenuItem("新建(N)");JMenuItem jmi2 = new JMenuItem("打开(O)");JMenuItem jmi3 = new JMenuItem("保存(S)");JMenuItem jmi4 = new JMenuItem("退出(X)");JMenuItem jmi5 = new JMenuItem("撤消(U)");JMenuItem jmi6 = new JMenuItem("复制(C)");JMenuItem jmi7 = new JMenuItem("粘贴(P)");JMenuItem jmi8 = new JMenuItem("剪切(T)");JMenuItem jmi12 = new JMenuItem("日期和时间");JMenuItem jmi9 =m new JMenuItem("字体(E)"); JCheckBoxMenuItem jcbmi = new JCheckBoxMenuItem("自动换行(W)"); JMenuItem jmi10 = new JMenuItem("删除(S)");JMenuItem jmi11 = new JMenuItem("背景颜色(H)");JTextArea jta = new JTextArea(15,15);JScrollPane jsp = new JScrollPane(jta);//PupolMenu pm = new Pupolmenu();NoteBook(){this.addWindowListener(this);c.setLayout(new BorderLayout());c.add(jmb,BorderLayout.NORTH);this.setTitle("新建文本文档");jmb.add(jm1);jm1.setMnemonic('f');jm1.addActionListener(this);jmb.add(jm2);jm2.setMnemonic('e');jmb.add(jm3);jm3.setMnemonic('o');jmb.add(jm4);jm4.setMnemonic('v');jmb.add(jm5);jm5.setMnemonic('h');jm1.add(jmi1);jmi1.addActionListener(this);jmi1.setAccelerator(KeyStroke.getKeyStroke('N',Event.CTRL_MASK,false)); jm1.addSeparator();jm1.add(jmi2);jmi2.setAccelerator(KeyStroke.getKeyStroke('O',Event.CTRL_MASK,false)); jmi2.addActionListener(this);jm1.addSeparator();jm1.add(jmi3);jmi3.setAccelerator(KeyStroke.getKeyStroke('S',Event.CTRL_MASK,false)); jmi3.addActionListener(this);jm1.addSeparator();jm1.add(jmi4);jmi1.setMnemonic('n');jmi2.setMnemonic('o');jmi3.setMnemonic('s');jmi4.setMnemonic('x');jmi4.addActionListener(this);jm2.add(jmi5);jm2.addSeparator();jm2.add(jmi6);jm2.addSeparator();jm2.add(jmi7);jm2.addSeparator();jm2.add(jmi8);jm2.add(jmi12);jmi12.addActionListener(this);jm3.add(jcbmi);jcbmi.addItemListener(this);jm3.addSeparator();jm3.add(jmi9);jm4.add(jmi10);jmi10.addActionListener(this);jm5.add(jmi11);jmi11.addActionListener(this);c.add(jsp);this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);this.setSize(500,500);this.setVisible(true);}public void actionPerformed(ActionEvent e){jta.setText("");this.setTitle("无标题- 记事本");}if(e.getSource()==jmi2){File f1;JFileChooser jfc1 = new JFileChooser();int num1 = jfc1.showOpenDialog(this);if(num1==JFileChooser.APPROVE_OPTION){ try{f1 = jfc1.getSelectedFile();this.setTitle(f1.getName());FileReader fr = new FileReader(f1); BufferedReader br = new BufferedReader(fr); String str;while((str = br.readLine())!=null){jta.setText(str);}fr.close();br.close();}catch(FileNotFoundException e1){e1.printStackTrace();}catch(IOException e2){e2.printStackTrace();}}}if(e.getSource()==jmi3){File f2 = null;JFileChooser jfc2 = new JFileChooser();int num2 = jfc2.showSaveDialog(this);if(num2==JFileChooser.APPROVE_OPTION){ f2=jfc2.getSelectedFile();this.setTitle(f2.getName());try{FileWriter fw = new FileWriter(f2); BufferedWriter bw = new BufferedWriter(fw); bw.write(jta.getText());bw.close();fw.close();}catch(IOException e2){e2.printStackTrace();}}int a = JOptionPane.showConfirmDialog(this,"文件已被改变,是否要保存?","提示",JOptionPane.YES_NO_CANCEL_OPTION);if(a==1){this.dispose();}else if(a==0){File f2 = null;JFileChooser jfc2 = new JFileChooser();int num2 = jfc2.showSaveDialog(this);if(num2==JFileChooser.APPROVE_OPTION){f2=jfc2.getSelectedFile();this.setTitle(f2.getName());try{FileWriter fw = new FileWriter(f2);BufferedWriter bw = new BufferedWriter(fw);bw.write(jta.getText());bw.close();fw.close();}catch(IOException e2){e2.printStackTrace();}this.dispose();}}}if(e.getSource()==jmi12){Calendar c1 =Calendar.getInstance();int y = c1.get(Calendar.YEAR);int m = c1.get(Calendar.MONTH);int d = c1.get(Calendar.DATE);int h = c1.get(Calendar.HOUR);int m1 = c1.get(Calendar.MINUTE);int m2 = m+1;jta.setText(y+"年"+m2+"月"+d+"日"+h+":"+m1);}if(e.getSource()==jmi11){Color ccc = JColorChooser.showDialog(this,"color",Color.BLACK);jta.setSelectedTextColor(ccc);jta.setBackground(ccc);}if(e.getSource()==jmi10){jta.replaceRange("",jta.getSelectionStart(),jta.getSelectionEnd());}mHelp = new JMenu("帮助(H)");mHelp.setMnemonic(KeyEvent.VK_H);mHelp.add(new JMenuItem("帮助主题"));mHelp.addSeparator();mHelp.add(new JMenuItem("关于计算器"));mPaste.setEnabled(true);} else if(s.equals("粘贴(P)")){ tResult.setText(copyBoard.toString());} else if(s.equals("CE")){//如果是CE则清除文本框tResult.setText("0.");} else if(s.equals("Backspace")){//如果是backspace则删除一个字符。
《Java程序设计》课程设计任务书一.课程设计基本信息课程名称:《Java程序设计》课程设计学时:1周学分:1学分二.课程设计目的与要求1.教学目的:本课程是学习《Java程序设计》后的综合实践课,使学生能够比较深入的理解Java 语言的特征及体系;熟练的掌握并会运用Java语言与面向对象程序设计的思想和方法设计应用程序解决应用问题,积累程序设计的实践经验,为培养软件技术高技能人才奠定基础。
本课程是培养计划中综合性较强的实践教学环节之一,帮助学生掌握教学内容、培养学生运用知识解决应用问题的实际动手能力、提高学生综合素质有很重要的意义。
2.教学要求:本课程设计以设计一个或多个实际应用系统为目的,通过课程设计让学生较全面的掌握Java语法基础知识、面向对象程序设计方法,尤其是基于Java的应用程序设计的方法与技术,能够运用J2SE平台,结合相应的数据库系统开发应用程序,理论联系实际,达到培养实践操作技能的目的。
学生要了解Java程序开发的一般过程,特别掌握系统分析与设计的基本方法,写出系统分析与设计报告,并能设计真实可用的应用系统。
三.课程设计内容与安排根据老师提供的设计题目,写出系统分析与设计报告,并建立原型系统。
题目可以由教师与学生根据实际情况商定,可参考的题目:图书借阅管理系统、产品管理系统、学生成绩管理、学生信息管理、人事管理、人力资源管理系统、物流信息管理系统等。
1.主要设计内容如下:(1)系统设计:包括系统需求分析、总体设计和功能设计,必要时使用图表说明。
(2)各功能模块设计:包括用户界面及相应功能算法等设计。
(3)各功能模块实现:各功能模块算法程序编写。
2.教学安排总课时30课时,其中需求分析与系统设计、数据库设计与实现、系统各模块实现所以及系统集成调试运行用时间建议各占15%,15%,40%,20%的课时,学生可根据具体情况调整,利用10%的时间完成课程设计报告。
四.课程设计教学建议及要求1.要求学生有一定的程序设计和数据库基础知识,由老师指定或学生自行组织形成项目小组,必要时由多人开发一个项目,其中需要指定负责项目的小组长控制项目进度。
一、实验要求利用vb程序编写记事本,实现记事本的打开、保存、新建、编辑等一般功能。
二、实验目的掌握菜单编辑器的建立、控制,记事本新建打开保存的程序代码,理解并运用CommonDialog的属性和功能等内容。
三、设计软件所实现的功能实现记事本的功能如下:文件的新建、打开、保存、另存为、打印、退出功能,编辑的复制、粘贴、剪切、全选、时间\日期功能,以及格式里的字体功能。
四、设计介绍1、先利用菜单编辑器设计记事本的整体框架,如下图:2、通过在控件工具箱上右击点部件,找到Microsoft Commom Dialog Control 6.0将其左边的复选框勾上,选择确定,这样控件工具箱里就多了这个CommomDialog控件,将其拖拽到窗体上。
3、然后单击各个子菜单项,进入代码界面编写代码。
主要的代码如下:新建代码:Private Sub xinjian_Click()a = MsgBox("要保存吗?", 3, "记事本")If a = 6 Thenbaocun_ClickElseIf a = 7 ThenText1.Text = ""End IfEnd Sub打开的代码:Private Sub dakai_Click()a = MsgBox("要保存吗?", 3, "记事本")If a = 6 Thenbaocun_ClickElseIf a = 7 ThenCommonDialog1.FileName = ""CommonDialog1.Flags = vbofnfilemustexistCommonDialog1.Filter = "all files |*.*|(.exe)|*.exe|(*.txt)|*.txt"CommonDialog1.FilterIndex = 3CommonDialog1.DialogTitle = "open file(*.txt)"CommonDialog1.Action = 1form1.Caption = CommonDialog1.FileNameIf CommonDialog1.FileName = "" ThenMsgBox "no file selectd", 37, "checking"ElseText1.Text = ""Open CommonDialog1.FileName For Input As #1Do While Not EOF(1)Line Input #1, aText1.Text = Text1.Text + a + Chr$(13) + Chr$(10)LoopEnd IfEnd IfEnd Sub保存的代码:Private Sub baocun_Click()If CommonDialog1.FileName <> "" ThenOpen CommonDialog1.FileName For Output As #3Print #3, Text1.TextClose #3ElseCommonDialog1.DefaultExt = "txt"CommonDialog1.FileName = "1bw.txt"CommonDialog1.Filter = "text files(*.txt)|*.txt|all files(*.*)|*.*"CommonDialog1.FilterIndex = 1CommonDialog1.DialogTitle = "save file as(*.txt)"CommonDialog1.Flags = vbofnoverwriteprompt Or vbofnpathmustexistCommonDialog1.ShowSaveform1.Caption = CommonDialog1.FileNameIf CommonDialog1.FileName = "1bw.txt" ThenMsgBox "fail", 37, "checking"ElseOpen CommonDialog1.FileName For Output As #2Print #2, Text1.TextClose #2End IfEnd IfEnd Sub复制的代码:Private Sub fuzhi_Click()Clipboard.SetText Text1.SelTextEnd Sub粘贴的代码:Private Sub zhantie_Click()Text1.SelText = Clipboard.GetTextEnd Sub剪切的代码:Private Sub jianqie_Click()Clipboard.ClearClipboard.SetText Text1.SelTextText1.SelText = ""End Sub全选的代码:Private Sub quanxuan_Click()Text1.SelStart = 0Text1.SelLength = Len(Text1.Text)End Sub字体的代码:Private Sub ziti_Click()CommonDialog1.Flags = 3CommonDialog1.ShowFontText1.FontName = CommonDialog1.FontNameText1.FontSize = CommonDialog1.FontSizeText1.FontBold = CommonDialog1.FontBoldText1.FontItalic = CommonDialog1.FontItalicText1.FontUnderline = CommonDialog1.FontUnderlineText1.FontStrikethru = CommonDialog1.FontStrikethru End Sub是文本框的大小随窗体的变化而变化的代码:Private Sub Form_Resize()Text1.Height = form1.ScaleHeightText1.Width = form1.ScaleWidthEnd Sub4、主要的显示效果图如下所示:打开的效果:字体的效果:。
用V B写记事本的程序文件编码(GHTU-UITID-GGBKT-POIU-WUUI-8968)可视化程序课程—记事本程序实验报告1、新建工程启动VB程序后,建立一个新的工程。
出现“窗体设计器”。
2、创建记事本的菜单栏打开工具选项条单击菜单编辑器(1)在标题栏里面分别添加“文件(&F)”“编辑(&E)”“格式(&A)”“帮助(&H)”并分别设置名称和快捷键。
(2)分别在“文件”“编辑”“格式”“帮助”选项下编辑如图所示的的子菜单,设置标题,名称,快捷键。
3、代码的编写(1)文件 file①新建 new注解: = "无标题-记事本" 把新建记事本的名字定义为“无标题-记事本”②打开 open注解:“On Error GoTo a ” a在代码倒数第二行有定义,如果在打开的过程中出现错误就到“a”退出程序;Dim index As Integer定义变量③保存 save④另存为 as注解:定义一个变量ss作为字符串如果正确执行操作错误就执行a退出⑤打印 print⑥退出 exit(2)编辑 editing①剪切 cut②复制 copy③粘贴 past④删除 delete⑤查找 find注释:sFind = InputBox 查找输入框MsgBox "找不到所要查询的内容", , "查询无果报告"⑥查找下一个 findnext⑦全选 seleall(3)格式①自动换行 autonewline②字体 fond(4)帮助 help关于 about。
import java.io.*;import java.util.Calendar;import java.awt.*;import java.awt.event.*;import javax.swing.*;public class NoteBook extends JFrame implementsActionListener,ItemListener,WindowListener,MouseListener{Container c = this.getContentPane();JMenuBar jmb = new JMenuBar();JColorChooser jcc = new JColorChooser();JMenu jm1 = new JMenu("文件(F)");JMenu jm2 = new JMenu("编辑(E)");JMenu jm3 = new JMenu("格式(O)");JMenu jm4 = new JMenu("查看(V)");JMenu jm5 = new JMenu("帮助(H)");JMenuItem jmi1 = new JMenuItem("新建(N)");JMenuItem jmi2 = new JMenuItem("打开(O)");JMenuItem jmi3 = new JMenuItem("保存(S)");JMenuItem jmi4 = new JMenuItem("退出(X)");JMenuItem jmi5 = new JMenuItem("撤消(U)");JMenuItem jmi6 = new JMenuItem("复制(C)");JMenuItem jmi7 = new JMenuItem("粘贴(P)");JMenuItem jmi8 = new JMenuItem("剪切(T)");JMenuItem jmi12 = new JMenuItem("日期和时间");JMenuItem jmi9 =m new JMenuItem("字体(E)"); JCheckBoxMenuItem jcbmi = new JCheckBoxMenuItem("自动换行(W)"); JMenuItem jmi10 = new JMenuItem("删除(S)");JMenuItem jmi11 = new JMenuItem("背景颜色(H)");JTextArea jta = new JTextArea(15,15);JScrollPane jsp = new JScrollPane(jta);//PupolMenu pm = new Pupolmenu();NoteBook(){this.addWindowListener(this);c.setLayout(new BorderLayout());c.add(jmb,BorderLayout.NORTH);this.setTitle("新建文本文档");jmb.add(jm1);jm1.setMnemonic('f');jm1.addActionListener(this);jmb.add(jm2);jm2.setMnemonic('e');jmb.add(jm3);jm3.setMnemonic('o');jmb.add(jm4);jm4.setMnemonic('v');jmb.add(jm5);jm5.setMnemonic('h');jm1.add(jmi1);jmi1.addActionListener(this);jmi1.setAccelerator(KeyStroke.getKeyStroke('N',Event.CTRL_MASK,false)); jm1.addSeparator();jm1.add(jmi2);jmi2.setAccelerator(KeyStroke.getKeyStroke('O',Event.CTRL_MASK,false)); jmi2.addActionListener(this);jm1.addSeparator();jm1.add(jmi3);jmi3.setAccelerator(KeyStroke.getKeyStroke('S',Event.CTRL_MASK,false)); jmi3.addActionListener(this);jm1.addSeparator();jm1.add(jmi4);jmi1.setMnemonic('n');jmi2.setMnemonic('o');jmi3.setMnemonic('s');jmi4.setMnemonic('x');jmi4.addActionListener(this);jm2.add(jmi5);jm2.addSeparator();jm2.add(jmi6);jm2.addSeparator();jm2.add(jmi7);jm2.addSeparator();jm2.add(jmi8);jm2.add(jmi12);jmi12.addActionListener(this);jm3.add(jcbmi);jcbmi.addItemListener(this);jm3.addSeparator();jm3.add(jmi9);jm4.add(jmi10);jmi10.addActionListener(this);jm5.add(jmi11);jmi11.addActionListener(this);c.add(jsp);this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);this.setSize(500,500);this.setVisible(true);}public void actionPerformed(ActionEvent e){jta.setText("");this.setTitle("无标题- 记事本");}if(e.getSource()==jmi2){File f1;JFileChooser jfc1 = new JFileChooser();int num1 = jfc1.showOpenDialog(this);if(num1==JFileChooser.APPROVE_OPTION){ try{f1 = jfc1.getSelectedFile();this.setTitle(f1.getName());FileReader fr = new FileReader(f1); BufferedReader br = new BufferedReader(fr); String str;while((str = br.readLine())!=null){jta.setText(str);}fr.close();br.close();}catch(FileNotFoundException e1){e1.printStackTrace();}catch(IOException e2){e2.printStackTrace();}}}if(e.getSource()==jmi3){File f2 = null;JFileChooser jfc2 = new JFileChooser();int num2 = jfc2.showSaveDialog(this);if(num2==JFileChooser.APPROVE_OPTION){ f2=jfc2.getSelectedFile();this.setTitle(f2.getName());try{FileWriter fw = new FileWriter(f2); BufferedWriter bw = new BufferedWriter(fw); bw.write(jta.getText());bw.close();fw.close();}catch(IOException e2){e2.printStackTrace();}}int a = JOptionPane.showConfirmDialog(this,"文件已被改变,是否要保存?","提示",JOptionPane.YES_NO_CANCEL_OPTION);if(a==1){this.dispose();}else if(a==0){File f2 = null;JFileChooser jfc2 = new JFileChooser();int num2 = jfc2.showSaveDialog(this);if(num2==JFileChooser.APPROVE_OPTION){f2=jfc2.getSelectedFile();this.setTitle(f2.getName());try{FileWriter fw = new FileWriter(f2);BufferedWriter bw = new BufferedWriter(fw);bw.write(jta.getText());bw.close();fw.close();}catch(IOException e2){e2.printStackTrace();}this.dispose();}}}if(e.getSource()==jmi12){Calendar c1 =Calendar.getInstance();int y = c1.get(Calendar.YEAR);int m = c1.get(Calendar.MONTH);int d = c1.get(Calendar.DATE);int h = c1.get(Calendar.HOUR);int m1 = c1.get(Calendar.MINUTE);int m2 = m+1;jta.setText(y+"年"+m2+"月"+d+"日"+h+":"+m1);}if(e.getSource()==jmi11){Color ccc = JColorChooser.showDialog(this,"color",Color.BLACK);jta.setSelectedTextColor(ccc);jta.setBackground(ccc);}if(e.getSource()==jmi10){jta.replaceRange("",jta.getSelectionStart(),jta.getSelectionEnd());}mHelp = new JMenu("帮助(H)");mHelp.setMnemonic(KeyEvent.VK_H);mHelp.add(new JMenuItem("帮助主题"));mHelp.addSeparator();mHelp.add(new JMenuItem("关于计算器"));mPaste.setEnabled(true);} else if(s.equals("粘贴(P)")){ tResult.setText(copyBoard.toString());} else if(s.equals("CE")){//如果是CE则清除文本框tResult.setText("0.");} else if(s.equals("Backspace")){//如果是backspace则删除一个字符。