JAVA实验报告

合集下载

Java语言程序设计实验报告1

Java语言程序设计实验报告1

《Java语言程序设计》实验报告一学生姓名:孙文琳班级:信息111 学号:201152275119 实验地点:经管中心证券实验室指导教师:赵利平实验日期:2012.3.6实验环境:Windows 2000+JDK1.61.实验目的(1)养成良好的编程风格;(2)掌握字符数据类型及其运算;(3)熟悉从输入对话框获取输入和从控制台获取输入两种方法;(4)掌握布尔运算符;(5)掌握分支语句if和switch。

2.实验内容(1)在控制台下求两个实数的最大值:完成实验教材P22程序清单2-2;(2)3.实验过程报告撰写具体要求:上述实验内容要求写出源代码及运行结果。

实验内容(1)://CompareT woNumbersl.javaimport java.util.Scanner;public class CompareTwoNumbers1{double number1,number2;Scanner scanner;public CompareTwoNumbers1(){System.out.println("请输入两个数字:");scanner=new Scanner(System.in);number1=scanner.nextDouble();number2=scanner.nextDouble();System.out.println("较大的数是:"+(number1>number2?number1:number2));}public static void main(S tring args[]){CompareT woNumbers1 ct=new CompareTwoNumbers1();System.exit(0);}}实验内容(2)://DollarConvertor.javaimport java.util.Scanner;public class DollarConvertor{public static void main(String args[]){ System.out.println("请输入美元数:"); Scanner scanner=new Scanner(System.in); double i=scanner.nextDouble();double result=i*6.2875;System.out.println("对应的人民币数:"+result);} }实验内容(3):public class MultiplyList1{public static void main(String args[]){String output="";for(int row=1;row<=9;row++){for(int col=1;col<=row;col++)output+=col+"*"+row+"="+(row*col)+" ";output+="\n";}System.out.println(output);System.exit(0);}}4.实验总结心得体会:做实验要小心翼翼,注意Java大小区分。

java实训报告(精选5篇)

java实训报告(精选5篇)

java实训报告(精选5篇)java实训报告1作为就业培训,项目的好坏对培训质量的影响十分大,常常是决定性的作用。

这篇__是关于在学习java软件开发时练习项目的总结,简单总结为以下几点:1、项目一定要全新的项目,不能是以前做过的2、项目一定要企业真实项目,不能是精简以后的,不能脱离实际应用系统3、在开发时要和企业的开发保持一致4、在做项目的时候不应该有参考代码长话短说就是以上几点,如果你想要更多的了解,可以继续往后看。

一:项目的地位因为参加就业培训的学员很多都是有一定的计算机基础,大部分都具备一定的编程基础,尤其是在校或者是刚毕业的学生,多少都有一些基础。

他们欠缺的主要是两点:(1)不能全面系统的、深入的掌握某种技术,也就是会的挺多,但都是皮毛,不能满足就业的需要。

(2)没有任何实际的开发经验,完全是想象中学习,考试还行,一到实际开发和应用就歇菜了。

解决的方法就是通过项目练习,对所学知识进行深化,然后通过项目来获取实际开发的经验,从而弥补这些不足,尽快达到企业的实际要求。

二:如何选择项目项目既然那么重要,肯定不能随随便便找项目,那么究竟如何来选择呢?根据java的研究和实践经验总结,选择项目的时候要注意以下方面:1:项目不能太大,也不能太小这个要根据项目练习的阶段,练习的时间,练习的目标来判断。

不能太大,太大了做不完,也不能太小,太小了没有意义,达不到练习的目的。

2:项目不能脱离实际应用系统项目应该是实际的系统,或者是实际系统的简化和抽象,不能够是没有实战意义的教学性或者是纯练习性的项目。

因为培训的时间有限,必须让学员尽快地融入到实际项目的开发当中去。

任何人接受和掌握一个东西都需要时间去适应,需要重复几次才能够真正掌握,所以每个项目都必须跟实际应用挂钩。

3:项目应能覆盖所学的主要知识点学以致用,学完的知识点需要到应用中使用,才能够真正理解和掌握,再说了,软件开发是一个动手能力要求很高的行业,什么算会了,那就是能够做出来,写出代码来,把问题解决了,你就算会了。

Java实验三实验报告1

Java实验三实验报告1

Java实验三实验报告1一、实验目的本次 Java 实验的主要目的是深入理解和掌握 Java 中的面向对象编程概念,通过实际的编程实践,提高对类、对象、继承、多态等特性的运用能力,同时培养良好的编程习惯和代码规范。

二、实验环境1、操作系统:Windows 102、开发工具:Eclipse IDE for Java Developers三、实验内容1、设计一个名为`Shape` 的抽象类,其中包含一个抽象方法`calculateArea()`用于计算图形的面积。

2、分别创建`Circle`(圆形)、`Rectangle`(矩形)和`Triangle`(三角形)类继承自`Shape` 类,并实现各自的`calculateArea()`方法来计算具体图形的面积。

3、创建一个测试类`TestShapes`,在其中创建不同图形的对象,并调用其计算面积的方法,输出结果。

四、实验步骤1、创建`Shape` 抽象类```javaabstract class Shape {abstract double calculateArea();}```2、创建`Circle` 类继承自`Shape` 类```javaclass Circle extends Shape {private double radius;public Circle(double radius) {thisradius = radius;}@Overridedouble calculateArea(){return MathPI radius radius;}}```3、创建`Rectangle` 类继承自`Shape` 类```javaclass Rectangle extends Shape {private double length;private double width;public Rectangle(double length, double width) {thislength = length;thiswidth = width;}@Overridedouble calculateArea(){return length width;}}```4、创建`Triangle` 类继承自`Shape` 类```javaclass Triangle extends Shape {private double base;private double height;public Triangle(double base, double height) {thisbase = base;thisheight = height;}@Overridedouble calculateArea(){return 05 base height;}}```5、创建测试类`TestShapes````javapublic class TestShapes {public static void main(String args) {Circle circle = new Circle(50);Rectangle rectangle = new Rectangle(40, 60);Triangle triangle = new Triangle(30, 80);Systemoutprintln("圆形的面积:"+ circlecalculateArea());Systemoutprintln("矩形的面积:"+ rectanglecalculateArea());Systemoutprintln("三角形的面积:"+trianglecalculateArea());}}```五、实验结果运行测试类`TestShapes` 后,输出结果如下:```圆形的面积:78539816矩形的面积:240三角形的面积:120```六、实验中遇到的问题及解决方法1、在编写抽象类和子类的代码时,一开始对于抽象方法的定义和实现理解不够清晰,导致代码出现错误。

java语言程序设计实验报告

java语言程序设计实验报告

java语言程序设计实验报告篇一:Java实验八报告《Java语言程序设计》实验报告学生姓名:郭倩班级:信息112学号:201152275208实验地点:经管实验中心证券实验室指导教师:赵利平实验日期:实验环境:Windows 2000+JDK1.61. 实验目的(1)理解子类派生的概念(2)学习创建子类对象(3)掌握方法覆盖的使用2.实验内容(1)设计三个类:完成实验教材P52页程序清单4-2;(2)通过编制一个程序来加深对嵌套类、内部类和局部类的理解:完成实验教材P56页程序清单4-3;2. 实验过程报告撰写具体要求:上述实验内容要求写出源代码及运行结果。

实验内容(1)://Polymorphism.abstract class Student{final static int CourseNo=3;String name;String type;int[] courses;String courseGrade;public Student(String name){=name;courses=new int[CourseNo];courseGrade=null;}public abstract void calculateGrade();public String getName(){return name;}public String getType(){return type;}public String getCourseGrade(){return courseGrade;}public int getCourseScore(int courseNumber){return courses[courseNumber];}public void setName(String name){=name;}public void setType(String type){this.type=type;}public void setCourseScore(int courseNumber,int courseScore){this.courses[courseNumber]=courseScore;}}class Undergraduate extends Student{public Undergraduate(String name){super(name);type="本科生";}public void calculateGrade(){int total=0;double average=0;for(int i=0;i<CourseNo;i++){total+=courses[i];};average=total/CourseNo;if(average>=80&&average<100) coursegrade="优秀" else="" average="">=70&&average<80) coursegrade="良好" else="" average="">=60&&average<70) coursegrade="一般" else="" average="">=50&&average<60) courseGrade="及格";else courseGrade="不及格";}}class Postgraduate extends Student{public Postgraduate(String name){super(name);type="研究生";}public void calculateGrade(){int total=0;double average=0;for(int i=0;i<CourseNo;i++){total+=courses[i];};average=total/CourseNo;if(average>=90&&average<100) coursegrade="优秀" else="" average="">=80&&average<90) coursegrade="良好"else="" average="">=70&&average<80) coursegrade="一般" else="" average="">=60&&average<70) courseGrade="及格";else courseGrade="不及格";}}public class Polymorphism{public static void main(String[] args){Student[] students=new Student[5];students[0]=new Undergraduate("陈建平");students[1]=new Undergraduate("鲁向东");students[2]=new Postgraduate("匡晓华");students[3]=new Undergraduate("周丽娜");students[4]=new Postgraduate("梁欣欣");for(int i=0;i<5;i++){students[i].setCourseScore(0,87);students[i].setCourseScore(1,90);students[i].setCourseScore(2,78);}for(int i=0;i<5;i++){students[i].calculateGrade();}System.out.println("姓名"+" 类型"+" 成绩");}}System.out.println("-------------------------"); for(int i=0;i<5;i++){ System.out.println(students[i].getName()+" "+students[i].getType()+" "+students[i].getCourseGrade()); }(1) 都有(2) Student[] students=new Student[5];(3) Student是抽象的,不能用new操作符创建抽象类的实例。

Java万能实训报告心得(7篇)

Java万能实训报告心得(7篇)

Java万能实训报告心得(7篇)Java万能实训报告心得篇1短短的一个月很快就过去了,在这短短的一个月里,我学到了很多,了解了很多。

在这一个月里我学到了有关JAVA等方面的知识,了解了关于软件开发的流程。

了解了自己的不足,知道了自己努力的方向。

回顾这次的实训,这次或许是最后的实训机会。

我是一名大二的学生,明年或许就要出去实习了,所以我很珍惜这次的实训机会,因为它能够让我了解自己的不足以及以后自己努力的方向,同时也能让我了解软件开发的流程,增加一点软件开发经验和社会经验。

让我在以后的实习中会更好的融入到其中,增加自己的就业机会,因为纵观现在的就业形势很不让人乐观,由于之前的经济危机,就业机会越来越少,就业也越来越难,这就给了我们很大的压力,所以要是没有真本事,就业岗位就无从谈起,因此,在以后的学习中,我会更加好好努力。

通过这次的实训,我学到了很多:首先,对JAVA识比以前有了更深的了解。

在这之前由于种.种原因我JAVA学的很不好,编程我几乎写不出来。

但经过这次的实训,我对JAVA的理解,虽然还有很多都不懂,但我会在今后的实训和学习中加以学习了解,力求弄懂,增强自己对JAVA的理解。

其次,在这次的实训中我的动手操作能力有了一点的提高,刚开始的时候JDK的配置,数据库的安装都出现了一定的问题,JAVA 可实话开发工具的不熟悉,所以开始的时候进程很慢,时间都用在了JDK的配置,数据库的安装以及熟悉JAVA可视化开发工具上,但付出有了回报,成功的配置了JDK,安装了数据库,熟悉了JAVA可视化开发工具,总的说来,自己还是有一定的收获的。

因为自己的动手操纵能力得到了提高。

最后是团队协作。

在整个项目完成过程中团队协作有着不可替代的作用。

从在刚拿到项目时对项目的分析到最后的项目完结的都有一定的体现。

刚拿到项目时,我们团队进行了分析,并分配了各自的任务。

当我们其中一人遇到问题的时候,我们其他人都会去帮忙,效率提升了很多。

java实训报告(通用9篇)

java实训报告(通用9篇)

java实训报告java实训报告(通用9篇)在当下社会,大家逐渐认识到报告的重要性,写报告的时候要注意内容的完整。

那么一般报告是怎么写的呢?下面是小编精心整理的java实训报告,欢迎大家借鉴与参考,希望对大家有所帮助。

java实训报告篇1一、实训目的1.熟练掌握Java面向对象程序设计的基础知识。

2.熟练掌握Java中常用的Swing组件的使用方法。

3.熟练掌握Java程序中图形用户界面设计的方法。

4.熟练掌握使用JDBC操作数据库的方法。

5.通过实训,培养学生分析和解决实际问题的能力,提高调试和分析应用程序的能力,并为后续Java高级编程等专业课程的学习奠定良好的基础。

二、课程设计报告内容2.1 实训内容本课程设计的题目是设计一个简化的仓库管理系统。

该系统从仓库管理人员的角度出发,实现对货物信息、生产商信息的浏览、添加、删除和查询,同时还可以对货物出货、入货进行操作和控制。

设计内容主要包括系统分析、数据库、数据表的创建、系统各个窗体的布局及其编码实现。

系统功能分析是在系统开发的总体任务的基础上完成的。

该管理系统需要完成的基本功能主要有:用户管理:主要包括用户的添加、修改和删除。

供应商管理:主要包括供应商的添加、删除和修改。

产品管理:主要包括产品的添加、删除和进货、出货。

产品视图管理:主要包括产品查询、数据文件的导入、查询结果集的导出。

2.2 实训设备或软、硬件硬件:PⅣ及以上性能的PC机;软件:Windows 20xx或Windows XP系统;JDK工具;JCreator4.0环境2.3 功能设计及思想本次实训设计采用选择结构化开发方法,即用系统工程的思想和工程化的方法,按照用户至上的原则,自顶向下整体分析与设计和自底向上逐步实施的系统开发过程。

是组织、管理和控制信息系统开发过程的一种基本框架。

其基本思想:在系统分析时,采用自顶向下、逐层分解,由抽象到具体的逐步认识问题的过程;在系统设计的时候,先考虑系统整体的优化,再考虑局部的优化问题;在系统实施的时候,则坚持自底向上,先局部后整体,通过标准化模块的连接形成完整的系统。

java实验实验报告

java实验实验报告

java实验实验报告Java 实验实验报告一、实验目的本次 Java 实验的主要目的是通过实际操作和编程实践,深入理解和掌握 Java 编程语言的基本概念、语法结构、面向对象编程的思想以及常用类库的使用。

同时,培养我们解决实际问题的能力和编程思维,提高代码的质量和可读性。

二、实验环境1、操作系统:Windows 102、开发工具:IntelliJ IDEA3、 JDK 版本:18三、实验内容(一)基本语法练习1、数据类型与变量在 Java 中,我们学习了不同的数据类型,如整数类型(`int`、`long`)、浮点数类型(`float`、`double`)、字符类型(`char`)和布尔类型(`boolean`)。

通过定义和使用这些变量,我们能够存储和操作各种类型的数据。

```javaint age = 25;double salary = 500050;char grade ='A';boolean isStudent = true;```2、控制结构包括条件语句(`ifelse`、`switch`)和循环语句(`for`、`while`、`dowhile`)。

这些控制结构使我们能够根据不同的条件执行不同的代码块,或者重复执行一段代码。

```javaint num = 10;if (num > 5) {Systemoutprintln("Number is greater than 5");} else {Systemoutprintln("Number is less than or equal to 5");}switch (num) {Systemoutprintln("One");break;case 10:Systemoutprintln("Ten");break;default:Systemoutprintln("Unknown");}for (int i = 0; i < 5; i++){Systemoutprintln(i);}int count = 0;while (count < 3) {Systemoutprintln("Count: "+ count);count++;}count = 0;Systemoutprintln("Count: "+ count);count++;} while (count < 3);```(二)面向对象编程1、类与对象创建了自定义的类来表示现实世界中的实体。

大学生java实训总结报告6篇

大学生java实训总结报告6篇

大学生java实训总结报告6篇篇1一、实训背景与目标本次Java实训旨在通过实践操作,加深大学生对Java编程语言的理解与掌握,提高实际项目开发能力。

在为期一个月的实训期间,我们小组围绕Java SE基础、Java Web开发、数据库操作等内容进行了系统学习和实践。

通过本次实训,我们期望达到以下目标:1. 深入理解Java核心技术与编程思想。

2. 掌握Java Web开发的基本流程和关键技术。

3. 学会使用至少一种数据库进行Java程序与数据库的交互。

4. 具备一定的项目开发和团队协作能力。

二、实训内容与过程1. Java SE基础实训在实训初期,我们重点复习和巩固了Java SE基础知识,包括数据类型、运算符、流程控制、面向对象编程等。

通过编写简单的控制台程序,我们实践了异常处理、集合类、泛型以及多线程编程。

2. Java Web开发实训随后,我们转向Java Web开发的学习。

通过学习和实践,掌握了基于Servlet和JSP的Web开发技术。

同时,学习了HTML、CSS和JavaScript等前端技术,并练习了前后端数据的交互。

此外,还了解了MVC设计模式在Web开发中的应用。

3. 数据库操作实训在数据库操作方面,我们主要学习了SQL语言以及JDBC操作数据库的技术。

通过实践操作,我们能够在Java程序中实现数据的增删改查,并学会了使用ORM框架进行对象与数据库表的映射。

4. 项目开发实践在实训的最后阶段,我们以小组形式进行了一个小型项目——在线图书管理系统。

通过项目的开发,我们综合运用了前面学到的知识,包括Web开发技术、数据库操作等。

在项目开发过程中,我们学会了如何分工合作,如何进行有效的项目管理。

三、实训收获与体会1. 提升了编程能力。

通过实训,我们对Java编程语言有了更深入的了解,编程能力得到了显著提高。

2. 增强了项目开发经验。

项目开发的实践让我们体验到了软件开发的流程,学会了如何在项目中运用所学知识。

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

河北北方学院信息科学与工程学院《Java程序设计》实验报告实验学期 2014 至 2015 学年第 2 学期学生所在系部信息科学与工程学院年级 2012 专业班级电子三班学生姓名冯洋学号 201242220 任课教师实验成绩实验七 GUI标准组件及事件处理一、课程设计目的:《面向对象程序设计》是一门实践性很强的计算机专业基础课程,课程设计是学习完该课程后进行的一次较全面的综合练习。

其目的在于通过实践加深学生对面向对象程序设计的理论、方法和基础知识的理解,掌握使用Java语言进行面向对象设计的基本方法,提高运用面向对象知识分析实际问题、解决实际问题的能力,提高学生的应用能力。

二、实验要求:设计一个简单的文本编辑器,具有如下基本功能:1)所见即所得的文本输入;2)能方便地选中文本、复制、删除和插入文本;3)具有一般编辑器所具有的查找和替换功能;4)简单的排版,如设置字体和字号等。

三、课程设计说明:1、需求分析:简单文本编辑器提供给用户基本的纯文本编辑功能,能够将用户录入的文本存储到本地磁盘中。

能够读取磁盘中现有的纯文本文件,以及方便用户进行需要的编辑功能。

文件操作能够实现新建、保存、打开文档等,编辑操作能过实现文本的剪贴、复制、粘贴等,格式操作能过实现字体设置、背景等,帮助操作能够实现关于主题的查看等功能2、概要设计:(一)其基本功能包括:①基本的文本操作功能。

包括新建,保存,打开,保存。

②基本的编辑功能。

包括复制,剪贴,粘贴。

③基本的格式功能,字体。

④简单的帮助,关于主题。

(二)主要的组件包括:①基本的Frame框架;②菜单;③打开文件对话框;④保存文件对话框;⑤颜色对话框;⑥简单的帮助框架。

3、程序说明:整个记事本分成:Jframe程序主体框架,Jmenu菜单栏、JtextArea文本输入区、PopupMenu 右键菜单、JscrollPane滚动条、FonDialog字体类等。

本程序中首先定义一个Java Yang类继承JFrame作为最底层容器。

要想记事本完成需求分析中相应的功能,还必须添加事件监听器。

事件监听器不仅要添加在菜单栏和内容输入区,还需加在容器中。

本程序中ActListener实现了ActionListener接口,用来监听并处理所有菜单项和内容输入区为事件源的事件。

另外,还用来WindowListener来监听处理容器关闭触发的事件,WindowListener继承了WindowsAdapter类并覆盖了WindowsClosing方法。

四、程序调试:1、调试分析:(1)关于打开、保存和退出我运用了文件对话框, openFileDialog、saveFileDialog和System.exit()以及文件输入输出流来实现,新建功能我选用了 textArea.setText()方法.(2)对于剪贴,粘贴,复制的实现则用复制String text = textArea.getSelectedText();StringSelection selection= new StringSelection(text);clipboard.setContents(selection,null);粘贴Transferable contents = clipboard.getContents(this);if(contents==null) return;String text;text="";try{ text = (String)contents.getTransferData(DataFlavor.stringFlavor);}catch(Exception ex){}textArea.replaceRange(text,textArea.getSelectionStart(),textArea.getSelectionEn d());(3)至于字体功能的实现,则是新建了一个字体类,在这个类中设置了字形,字体以及大小并且有字体样式可预览用户当前的设置。

FlowLayout()设置布局,setSize()设置大小add ()添加需要用的原件。

添加监听器获取选择用户的字号大小public void itemStateChanged(ItemEvent event) {size = (new Integer((String) event.getItem()).intValue());setCustomFont(new Font(name, type, size));}设置字体private void setCustomFont(Font customFont) {this.customFont = customFont;area.setFont(customFont);area.revalidate();}获取字体public Font getCustomFont() {return (this.customFont);}附录:源代码//记事本主体类import java.awt.event.*;import java.awt.*;import java.io.*;import java.awt.datatransfer.*;import javax.swing.*;import java.awt.print.PrinterException;public class MiniNote extends JFrame implements ActionListener {JMenuBar menuBar = new JMenuBar();JMenu file = new JMenu("文件(F)"), //菜单edit = new JMenu("编辑(E)"),format = new JMenu("格式(O)"),view = new JMenu("查看(V)"),help = new JMenu("帮助(H)");JMenuItem[] menuItem ={ //菜单下拉项new JMenuItem("新建(N)"),new JMenuItem("打开(O)"),new JMenuItem("保存(S)"),new JMenuItem("打印(P)"),new JMenuItem("全选(A)"),new JMenuItem("复制(C)"),new JMenuItem("剪切(T)"),new JMenuItem("粘贴(P)"),new JMenuItem("自动换行(W)"),new JMenuItem("字体(F)"),new JMenuItem("状态栏(S)"),new JMenuItem("帮助主题(H)"),new JMenuItem("关于记事本(A)"),new JMenuItem("页面设置(U)"),new JMenuItem("退出(X)"),new JMenuItem("查找(F)"),new JMenuItem("查找下一个(N)"),new JMenuItem("替换(R)")};JPopupMenu popupMenu = new JPopupMenu(); ;//右键菜单JMenuItem [] menuItem1 ={new JMenuItem("撤销(Z)"),new JMenuItem("剪切(X)"),new JMenuItem("复制(C)"),new JMenuItem("粘贴(V)"),new JMenuItem("删除(D)"),new JMenuItem("全选(A)"),};private JTextArea textArea ; //文本区域private JScrollPane js ; //滚动条private JPanel jp ;private FileDialog openFileDialog ; //打开保存对话框private FileDialog saveFileDialog ;private Toolkit toolKit; //获取默认工具包。

private Clipboard clipboard; //获取系统剪切板private String fileName; //设置默认的文件名/*** MiniEdit 方法定义** 实现记事本初始化***/public MiniNote() {fileName = "无标题";toolKit = Toolkit.getDefaultToolkit();clipboard = toolKit.getSystemClipboard();textArea =new JTextArea();js = new JScrollPane(textArea);jp = new JPanel();openFileDialog = new FileDialog(this,"打开",FileDialog.LOAD);saveFileDialog = new FileDialog(this,"另存为",FileDialog.SAVE);js.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS); jp.setLayout(new GridLayout(1,1));jp.add(js);textArea.setComponentPopupMenu(popupMenu); //文本区域添加右键textArea.add(popupMenu);add(jp);setTitle("迷你记事本");setFont(new Font("Times New Roman",Font.PLAIN,15));setBackground(Color.white);setSize(800,600);setJMenuBar(menuBar);menuBar.add(file);menuBar.add(edit);menuBar.add(format);menuBar.add(view);menuBar.add(help);for(int i=0;i<4;i++){file.add(menuItem[i]);edit.add(menuItem[i+4]);}for(int i=0;i<3;++i){edit.add(menuItem[i+15]);}for(int i=0;i<2;++i){format.add(menuItem[i+8]);help.add(menuItem[i+11]);}view.add(menuItem[10]);file.add(menuItem[14]);for(int i=0; i<6;++i){popupMenu.add(menuItem1[i]);}//窗口监听addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){ e.getWindow().dispose();System.exit(0);}});//注册各个菜单项的事件监听器for(int i=0;i<menuItem.length;i++){menuItem[i].addActionListener(this);}for(int i=0;i<menuItem1.length;i++){menuItem1[i].addActionListener(this);}}/*** actionPerformed 方法定义** 动作触发实现***/public void actionPerformed(ActionEvent e) {Object eventSource = e.getSource();if(eventSource == menuItem[0]) //新建动作{textArea.setText("");}else if(eventSource == menuItem[1])//打开动作{openFileDialog.setVisible(true);fileName = openFileDialog.getDirectory()+openFileDialog.getFile();if(fileName != null){openFile(fileName);}}else if(eventSource ==menuItem[2])//保存动作{saveFileDialog.setVisible(true);fileName = saveFileDialog.getDirectory()+saveFileDialog.getFile(); if(fileName !=null){writeFile(fileName);}}else if(eventSource==menuItem[14])//退出动作{System.exit(0);}else if(eventSource == menuItem[4]||eventSource == menuItem1[5]) //全选动作{textArea.selectAll();}else if(eventSource == menuItem[5]||eventSource == menuItem1[2]) //复制动作{String text = textArea.getSelectedText();StringSelection selection= new StringSelection(text);clipboard.setContents(selection,null);}else if(eventSource == menuItem[6]||eventSource == menuItem1[1])//剪切动作 {String text = textArea.getSelectedText();StringSelection selection = new StringSelection(text);clipboard.setContents(selection,null);textArea.replaceRange("", textArea.getSelectionStart(),textArea.getSelectionEnd());}else if(eventSource == menuItem[7]||eventSource == menuItem1[3])//粘贴动作 {Transferable contents = clipboard.getContents(this);if(contents==null) return;String text;text="";try{text =(String)contents.getTransferData(DataFlavor.stringFlavor);}catch(Exception ex){}textArea.replaceRange(text,textArea.getSelectionStart(),textArea.getSelectionEnd());}else if(eventSource == menuItem[8]) //自动换行{if (textArea.getLineWrap()) textArea.setLineWrap(false);else textArea.setLineWrap(true);}else if(eventSource == menuItem[9]) //字体{//实例化字体类FontDialog fontdialog = new FontDialog(new JFrame(),"字体",true);textArea.setFont(fontdialog.showFontDialog()); //设置字体 }else if(eventSource == menuItem[11]) //帮助{try{String filePath = "C:/WINDOWS/Help/notepad.hlp";Runtime.getRuntime().exec("cmd.exe /c "+filePath);}catch(Exception ee){JOptionPane.showMessageDialog(this,"打开系统的记事本帮助文件出错!","错误信息",RMATION_MESSAGE);}}else if(eventSource == menuItem[12]) //关于记事本{String help = "记事本版本1.0\n操作系统:WIN 8 \n编译器:eclipse\n 版权"+ "所有: ESTON YANG \n最终解释权归本人所有"+ "" +"\nBuild By 冯洋"+ "\n课程设计:JAVA";JOptionPane.showConfirmDialog(null, help, "关于记事本",JOptionPane.DEFAULT_OPTION, RMATION_MESSAGE);}else if(eventSource == menuItem[15]||eventSource == menuItem[16]) //查找下一个{search();}else if(eventSource == menuItem[17]) //替换{substitude();}else if(eventSource == menuItem[3]) //打印{try{textArea.print();}catch (PrinterException e1){e1.printStackTrace();}}}/*** openFile方法** 从TXT读进数据到记事本***/public void openFile(String fileName){try{File file = new File(fileName);FileReader readIn = new FileReader(file);int size = (int)file.length();int charsRead = 0;char[] content = new char[size];while(readIn.ready()){charsRead += readIn.read(content,charsRead,size-charsRead); }readIn.close();textArea.setText(new String(content,0,charsRead));}catch(Exception e){System.out.println("Error opening file!");}}/*** saveFile方法** 从记事本写进数据到TXT***/public void writeFile(String fileName){try{File file = new File(fileName);FileWriter write = new FileWriter(file);write.write(textArea.getText());write.close();}catch(Exception e){System.out.println("Error closing file!");}}/*** substitude方法** 实现替换功能**/public void substitude() {final JDialog findDialog = new JDialog(this, "查找与替换", true);Container con = findDialog.getContentPane();con.setLayout(new FlowLayout(FlowLayout.LEFT));JLabel searchContentLabel = new JLabel("查找内容(N) :");JLabel replaceContentLabel = new JLabel("替换为(P) :");final JTextField findText = new JTextField(30);final JTextField replaceText = new JTextField(30);final JCheckBox matchcase = new JCheckBox("区分大小写(C)");ButtonGroup bGroup = new ButtonGroup();final JRadioButton up = new JRadioButton("向上(U)");final JRadioButton down = new JRadioButton("向下(D)");down.setSelected(true); //默认向下搜索bGroup.add(up);bGroup.add(down);JButton searchNext = new JButton("查找下一个(F)");JButton replace = new JButton("替换(R)");final JButton replaceAll = new JButton("全部替换(A)");//"替换"按钮的事件处理replace.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {if (replaceText.getText().length() == 0 &&textArea.getSelectedText() != null)textArea.replaceSelection("");if (replaceText.getText().length() > 0 &&textArea.getSelectedText() != null)textArea.replaceSelection(replaceText.getText());}});//"替换全部"按钮的事件处理replaceAll.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {textArea.setCaretPosition(0); //将光标放到编辑区开头int a = 0, b = 0, replaceCount = 0;if (findText.getText().length() == 0){JOptionPane.showMessageDialog(findDialog, "请填写查找内容!", "提示",JOptionPane.WARNING_MESSAGE);findText.requestFocus(true);return;}while (a > -1){int FindStartPos = textArea.getCaretPosition();//获取光标位置 String str1, str2, str3, str4, strA, strB;str1 = textArea.getText();str2 = str1.toLowerCase();str3 = findText.getText();str4 = str3.toLowerCase();if (matchcase.isSelected()) //大小写区分{strA = str1;strB = str3;}else{strA = str2;strB = str4;}if (up.isSelected()) //向上搜索{if (textArea.getSelectedText() == null){a = stIndexOf(strB, FindStartPos - 1);}else{a = stIndexOf(strB, FindStartPos-findText.getText().length() - 1);}}else //向下搜索{if (textArea.getSelectedText() == null){a = strA.indexOf(strB, FindStartPos);}else{a = strA.indexOf(strB, FindStartPos-findText.getText().length() + 1);}}if (a > -1){if (up.isSelected()){textArea.setCaretPosition(a);b = findText.getText().length();textArea.select(a, a + b);}else if (down.isSelected()){textArea.setCaretPosition(a);b = findText.getText().length();textArea.select(a, a + b);}}else{if (replaceCount == 0){JOptionPane.showMessageDialog(findDialog,"找不到您查找的内容!", "记事本",RMATION_MESSAGE);}else{JOptionPane.showMessageDialog(findDialog, "成功替换"+ replaceCount + "个匹配内容!", "替换成功",RMATION_MESSAGE);}}if (replaceText.getText().length() == 0&&textArea.getSelectedText() != null) //用空字符代替选定内容 {textArea.replaceSelection("");replaceCount++;}if (replaceText.getText().length() > 0&&textArea.getSelectedText() != null) //用指定字符代替选定内容{textArea.replaceSelection(replaceText.getText());replaceCount++;}}//end while}});//"查找下一个"按钮事件处理searchNext.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {int a = 0, b = 0;int FindStartPos = textArea.getCaretPosition();String str1, str2, str3, str4, strA, strB;str1 = textArea.getText();str2 = str1.toLowerCase();str3 = findText.getText();str4 = str3.toLowerCase();//"区分大小写"的CheckBox被选中if (matchcase.isSelected()) //区分大小写{strA = str1;strB = str3;}else //不区分大小写{strA = str2;strB = str4;}if (up.isSelected()) //向上搜索{if (textArea.getSelectedText() == null){a = stIndexOf(strB, FindStartPos - 1);}else{a = stIndexOf(strB, FindStartPos -findText.getText().length() - 1);}}else if (down.isSelected()){if (textArea.getSelectedText() == null){a = strA.indexOf(strB, FindStartPos);}else{a = strA.indexOf(strB, FindStartPos - findText.getText().length() + 1);}}if (a > -1){if (up.isSelected()){textArea.setCaretPosition(a);b = findText.getText().length();textArea.select(a, a + b);}else if (down.isSelected()){textArea.setCaretPosition(a);b = findText.getText().length();textArea.select(a, a + b);}}else{JOptionPane.showMessageDialog(null, "找不到您查找的内容!", "记事本", RMATION_MESSAGE);}}});//"取消"按钮及事件处理JButton cancel = new JButton("取消");cancel.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {findDialog.dispose();}});//创建"查找与替换"对话框的界面JPanel bottomPanel = new JPanel();JPanel centerPanel = new JPanel();JPanel topPanel = new JPanel();JPanel direction = new JPanel();direction.setBorder(BorderFactory.createTitledBorder("方向")); direction.add(up);direction.add(down);JPanel replacePanel = new JPanel();replacePanel.setLayout(new GridLayout(1, 2));replacePanel.add(searchNext);replacePanel.add(replace);replacePanel.add(replaceAll);replacePanel.add(cancel);topPanel.add(searchContentLabel);topPanel.add(findText);centerPanel.add(replaceContentLabel);centerPanel.add(replaceText);centerPanel.add(replacePanel);bottomPanel.add(matchcase);bottomPanel.add(direction);con.add(replacePanel);con.add(topPanel);con.add(centerPanel);con.add(bottomPanel);//设置"查找与替换"对话框的大小、可更改大小(否)、位置和可见性findDialog.setSize(550, 240);findDialog.setResizable(true);findDialog.setLocation(230, 280);findDialog.setVisible(true);}//方法mySearch()结束/*** search方法** 实现查找功能**/public void search() {final JDialog findDialog = new JDialog(this, "查找下一个", true);Container con = findDialog.getContentPane();con.setLayout(new FlowLayout(FlowLayout.LEFT));JLabel searchContentLabel = new JLabel(" 查找内容(N) :");final JTextField findText = new JTextField(17);final JCheckBox matchcase = new JCheckBox("区分大小写(C)");ButtonGroup bGroup = new ButtonGroup();final JRadioButton up = new JRadioButton("向上(U)");final JRadioButton down = new JRadioButton("向下(D)");down.setSelected(true); //默认向下搜索bGroup.add(up);bGroup.add(down);JButton searchNext = new JButton("查找下一个(F)");//"查找下一个"按钮事件处理searchNext.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {int a = 0, b = 0;int FindStartPos = textArea.getCaretPosition();String str1, str2, str3, str4, strA, strB;str1 = textArea.getText();str2 = str1.toLowerCase();str3 = findText.getText();str4 = str3.toLowerCase();//"区分大小写"的CheckBox被选中if (matchcase.isSelected()) //不区分大小写{strA = str1;strB = str3;}else //区分大小写{strA = str2;strB = str4;if (up.isSelected()) //向上搜索{if (textArea.getSelectedText() == null){a = stIndexOf(strB, FindStartPos - 1);}else{a = stIndexOf(strB, FindStartPos -findText.getText().length() - 1);}}else if (down.isSelected()){if (textArea.getSelectedText() == null){a = strA.indexOf(strB, FindStartPos);}else{a = strA.indexOf(strB, FindStartPos - findText.getText().length() + 1);}}if (a > -1){if (up.isSelected()){textArea.setCaretPosition(a);b = findText.getText().length();textArea.select(a, a + b);}else if (down.isSelected()){textArea.setCaretPosition(a);b = findText.getText().length();textArea.select(a, a + b);}}else{JOptionPane.showMessageDialog(null, "找不到您查找的内容!", "记事本", RMATION_MESSAGE);}});//"取消"按钮及事件处理JButton cancel = new JButton(" 取消 ");cancel.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {findDialog.dispose();}});//创建"替换"对话框的界面JPanel bottomPanel = new JPanel();JPanel centerPanel = new JPanel();JPanel topPanel = new JPanel();JPanel direction = new JPanel();direction.setBorder(BorderFactory.createTitledBorder("方向"));direction.add(up);direction.add(down);topPanel.add(searchContentLabel);topPanel.add(findText);topPanel.add(searchNext);bottomPanel.add(matchcase);bottomPanel.add(direction);bottomPanel.add(cancel);con.add(topPanel);con.add(centerPanel);con.add(bottomPanel);//设置"替换"对话框的大小、可更改大小(否)、位置和可见性findDialog.setSize(425, 200);findDialog.setResizable(true);findDialog.setLocation(230, 280);findDialog.setVisible(true);}/*** 主函数*****/public static void main(String[] args) {MiniNote note = new MiniNote();note.setVisible(true);}} //字体类import java.awt.Font;import java.awt.GraphicsEnvironment;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.ItemEvent;import java.awt.event.ItemListener;import java.awt.*;import javax.swing.*;import java.awt.event.*;import javax.swing.border.*;import java.util.*;public class FontDialog {private Dialog fontdialog;private JButton okButton, cancelButton;private int width = 480;private int height = 250;private String name = "Serif";private int type = 0;private int size = 12;private Font customFont = new Font("宋体", Font.ITALIC, 12);private boolean okpressed = false;private boolean cancelpressed = false;private JLabel lbl1 = new JLabel("字体:");private JLabel lbl2 = new JLabel("字形:");private JLabel lbl3 = new JLabel("大小:");private JTextArea area;String[] zx = { "常规", "加粗", "斜体", "基线" };String[] dx = {"8" , "9" , "10", "12", "14", "15", "16", "18","20", "21", "22", "24", "26", "28", "30", "36","48", "54","72" , "89"};JLabel lbl = new JLabel("字体样式Style");private JComboBox cb1, cb3 = new JComboBox(dx), cb2 = new JComboBox(zx); private String[] zt;public FontDialog(Frame owner, String title, boolean modal) {init();fontdialog = new Dialog(owner, title, modal);fontdialog.setLocation(owner.getLocation());fontdialog.setLayout(new FlowLayout());fontdialog.setSize(getWidth(), getHeight());fontdialog.add(lbl1);fontdialog.add(cb1);fontdialog.add(lbl2);fontdialog.add(cb2);fontdialog.add(lbl3);fontdialog.add(cb3);fontdialog.add(okButton);fontdialog.add(cancelButton);fontdialog.add(area);fontdialog.setResizable(false);fontdialog.setAlwaysOnTop(true);cancelButton.addActionListener(new fontListener());okButton.addActionListener(new fontListener());fontdialog.addWindowListener(new fontListener());cb1.addItemListener(new ItemListener() { //字体动作 public void itemStateChanged(ItemEvent event) { //添加监听器获取选择用户的字体类型name = (String) event.getItem();setCustomFont(new Font(name, type, size));}});cb2.addItemListener(new ItemListener() { //字形动作 public void itemStateChanged(ItemEvent event) { //添加监听器获取选择用户的字形String s = (String) event.getItem();if (s.equals("常规")){type = Font.PLAIN;setCustomFont(new Font(name, type, size));}else if (s.equals("加粗")){type = Font.BOLD;setCustomFont(new Font(name, type, size));}else if (s.equals("斜体")){type = Font.ITALIC;setCustomFont(new Font(name, type, size));}else{type = Font.CENTER_BASELINE;setCustomFont(new Font(name, type, size));}}});cb3.addItemListener(new ItemListener() { //大小动作 public void itemStateChanged(ItemEvent event) { //添加监听器获取选择用户的字号大小size = (new Integer((String) event.getItem()).intValue());setCustomFont(new Font(name, type, size));}});}public Font showFontDialog() {fontdialog.setVisible(true);if (okpressed){return getCustomFont();}else{return customFont;}}private void init() { //初始化okButton = new JButton("确定");cancelButton = new JButton("取消");GraphicsEnvironment ge =GraphicsEnvironment.getLocalGraphicsEnvironment();zt = ge.getAvailableFontFamilyNames();cb1 = new JComboBox(zt);cb1.setMaximumRowCount(6);area = new JTextArea(6, 30);cb3 = new JComboBox(dx);cb3.setMaximumRowCount(6);okButton.setFocusable(true);area.setEditable(false);area.setText(new Date().toString());area.setBorder(new TitledBorder("字体样式"));}public void setWidth(int width){this.width = width;}public void setHeight(int height){this.height = height;}private int getWidth(){return (this.width);}private int getHeight(){return (this.height);}private void setCustomFont(Font customFont) //设置字体{this.customFont = customFont;area.setFont(customFont);area.revalidate();}public String toString(){return FontDialog.class.toString();}public Font getCustomFont() //获取字体{return (this.customFont);}private class fontListener extends WindowAdapter implements ActionListener //监听事件类{public void windowClosing(WindowEvent e){fontdialog.dispose();}public void actionPerformed(ActionEvent e){if (e.getSource() == cancelButton){fontdialog.dispose();cancelpressed = true;}else if (e.getSource() == okButton){okpressed = true;setCustomFont(new Font(name, type, size));fontdialog.dispose();}}}}。

相关文档
最新文档