项目二记事本_第1页
项目二记事本_第2页
项目二记事本_第3页
项目二记事本_第4页
项目二记事本_第5页
已阅读5页,还剩60页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、项目二 记事本项目目标项目目标完成一个记事本应用程序的开发,能够实现文字的编辑,各类字符分类统计,文件的打开和保存。通过本项目掌握Menu类,MenuItem类,MenuBar类和TextArea类的方法;掌握包装类和字符串String类的作用和常用方法;掌握输入输出流的读写文本文件的方法; 任务一 记事本界面设计 任务描述任务描述完成记事本应用的程序的界面设计,包括菜单设计。本节目标本节目标 掌握菜单,菜单项的定义及使用。 菜单 1 显示一个项目列表,指明用户可以执行的各项操作 文件编辑格式帮助字体段落项目符号和编号背景色红色红色绿色绿色黑色黑色菜单子菜单菜单 2 包含 java.awt 包

2、的菜单类的类层次结构ObjectComponentContainerComponentMenuBarSeparatorAbstractButtonPopupMenuMenuCheckboxMenuItemRadioButtonMenuItemMenuItemMenuBar 类 1 只要选中 MenuItem,就会产生通过重写 actionPerformed()方法进行处理的 ActionEvent JMenuBar文件编辑格式帮助新建打开关闭MenuMenuItemMenuBar 类 2Menubar 类类SingleSelectionModel跟踪当前选定的菜单Menu 类 1 Menu 组

3、件有两个用途 当它添加至 MenuBar 时,将显示为文本字符串 当用户单击此菜单项时,则显示一个弹出式菜单 MenuMenuItem Separator CheckBoxMenuItem RadioButtonMenuItem Menu 类 2PopupMenuMenu 类类 当用户单击 Menu 时,显示 Menu 的菜单项 任务二 记事本的文本编辑功能 任务描述任务描述完成记事本的文本编辑功能,包括复制,粘贴,剪切。本节目标本节目标 掌握字符串类的使用; 掌握包装类的使用; 掌握图形组件TextArea类的使用。 String 类String 类类字符串字面量对象未修改的原始字符串 可以

4、更改字符串版本 原始字符串保持不变String 类的构造方法构造方法构造方法说明说明String()它将创建一个空字符串String(String value)它将新建一个字符串作为指定字符串的副本String (char value)它将根据字符数组构造一个新字符串String(byte value)它将通过转换指定的字节数组新建一个字符串字符串长度 1字符串长度由 length() 方法确定语法语法public int length();返回字符串中的字符数字符串长度 2字符串字符串 1长度Determined by length() methodSyntax Public int len

5、gth()Returns number of characters in the stringString name = John Smith;System.out.println (name.length();字符串比较 1字符串 1字符串 2字符串字符串 1字符串字符串 2由 equals() 方法确定检查组成字符串内容的字符同一个对象用 = 运算符检查检查字符串是否指向同一个或不同的对象字符串比较 2演示:示例 3public class Equality /* 构造方法 */ protected Equality() /*它演示两个字符串的比较 * param args 传递至 mai

6、n 方法的参数 */ public static void main(String args) String string1 = new String(“苹果是一种水果); String string2 = new String(“玫瑰花是一种花); String string3 = new String(“苹果是一种水果); System.out.println(“字符串 1: + string1); System.out.println(“字符串 2: + string2); System.out.println(“字符串 3: + string3); 字符串比较运算符的用法 使用 Str

7、ing 类的方法,如 equals() 和 = 运算符 if (string1 = string2) System.out.println(“字符串 1 和字符串 2 相等); else System.out.println(“字符串 1 和字符串 2 不等); if (string1.equals(string3) System.out.println(“字符串 1 和字符串 3 相等); else System.out.println(字符串 1 和字符串 2 不等); System.out.println(“设置字符串 1 等于字符串 2); string2 = string1; if

8、(string1.equals(string2) System.out.println(“两个字符串相等); else System.out.println(“两个字符串不等); 字符串比较 3方法方法说明说明boolean equalsIgnoreCase (String value)此方法比较两个字符串,忽略大小写形式int compareTo(String value)按字母顺序比较两个字符串。如果两个字符串相等,则返回 0;如果字符串在该值之前,则返回值小于 0;如果字符串在该值之后,则返回值大于 0boolean startsWith(String value)检查一个字符串是否以另

9、一个字符串开始。boolean endsWith(String value)检查一个字符串是否以另一个字符串结束。字符串比较 4演示:示例 4 比较不同的字符串 使用 String 类的方法,如 equalsIgnoreCase()、compareTo()、startsWith() 和 endsWith()public class Stringdemo /* 构造方法 */ protected Stringdemo() /* 这是 main 方法 * 它演示 String 类的比较方法 * param args 传递至 main 方法的参数 */ public static void main

10、(String args) String string1, string2, string3; string1 = new String(Answer); string2 = new String(ANSWER); string3 = new String(Question); System.out.println(“字符串 A 是 + string1); System.out.println(“字符串 B 是 + string2); System.out.println(“字符串 C 是 + string3); if (string1 = string2) System.out.printl

11、n(“字符串 A 和字符串 B 指同一个对象); else System.out.println(“字符串 A 和字符串 B 指不同的对象); if (string1.equals(string2) System.out.println(“字符串 A 和字符串 B 的内容相同); else System.out.println(“字符串 A 和字符串 B 的内容不同); if (string1.equalsIgnoreCase(string2) System.out.println(“忽略大小写,字符串 A 和 B 的内容相同); else if (string1.equalsIgnoreCa

12、se(string3) System.out.println(“字符串 A 和 B 的内容相同); if (pareTo(Answer) = 0) System.out.println(“按字母,字符串 A 与 Answer 的内容相同); if (string1.startsWith(A) System.out.println(“以 A 开始);搜索字符串 1字符串字符串 1情形情形 1:indexOf(character) 方法方法找到第一个匹配索引 0 1 2 3情形情形 2:如果没有找到匹配,则返回 -1返回找到的第一个匹配的位置索引搜索字符串 2示例:示例 5 搜索字符串内有无指定的

13、字符或字符串 使用 String 类的方法,如 indexOf() public class SearchString /* 构造方法 */ protected SearchString() /* 这是 main 方法 * 它演示在字符串内搜索 * param args 传递至 main 方法的参数 */ public static void main(String args) String name = JohnS; System.out.println(“Email ID 是: + name); System.out.println(“ 的索引是: + name.indexOf(); Sy

14、stem.out.println(“. 的索引是: + name.indexOf(.); if (name.indexOf(.) name.indexOf() System.out.println(“该电子邮件地址有效); else System.out.println(“该电子邮件地址无效); 提取字符串 1方法方法说明说明public char charAt(int index) 此方法用于从指定位置提取单个字符,该位置由索引指定,索引中的值必须为非负public String substring(int index) 此方法用于提取从位置索引开始的字符串部分public String s

15、ubstring(int beginindex, int endindex) 此方法用于提取 beginindex 和 endindex 位置之间的字符串部分public String concat(String str) 此方法用于连接两个字符串,并新建一个包含调用字符串的字符串对象public String replace(char old, char new) 此方法用于将调用字符串中出现某个字符的所有位置都替换为另一个字符public String trim() 此方法用于返回一个前后不含任何空格的调用字符串的副本提取字符串 2方法方法说明说明public char charAt(in

16、t index) 此方法用于从指定位置提取单个字符,该位置由索引指定,索引中的值必须为非负。public String substring(int index) 此方法用于提取从位置索引开始的字符串部分。public String substring(int beginindex, int endindex) 此方法用于提取 beginindex 和 endindex 位置之间的字符串部分。public String concat(String str) 此方法用于连接两个字符串,并新建一个包含调用字符串的 String 对象。public String replace(char old, c

17、har new) 此方法用于将调用字符串中出现某个字符的所有位置都替换为另一个字符。public String trim() 此方法用于返回一个前后不含任何空格的调用字符串的副本。.char ch;ch = orange.charAt(3); .它将从 index(3) 中提取单个字符串“n”并将其存储在变量 ch 中提取字符串 3演示:示例 6 如何使用字符串提取或字符提取 使用 String 类的方法,如 substring()、concat()、replace() 和 trim() public class StringMethods /* 构造方法 */ protected Strin

18、gMethods() /* 这是 main 方法 * param args 传递至 main 方法的参数 */ public static void main(String args) String s = Java is a + platform independent language; String s1 = Hello world; String s2 = Hello; String s3 = HELLO; System.out.println(s); System.out.println(index of t = + s.indexOf(t); System.out.println(

19、last index of t = +s.lastIndexOf(t); System.out.println(index of(t, 10) = +s.indexOf(t, 10); System.out.println(s1.substring(3, 8); System.out.println(s2.concat(World); System.out.println(s2.replace(l, w); System.out.println(s1.trim(); 更改字符串中字符的大小写 1Hello使用使用 toUpperCase( ) 方法方法HELLOHELLO使用使用 toLowe

20、rCase( ) 方法方法hello语法public String toUpperCase();语法Public String toLowerCase();更改字符串中字符的大小写 2演示:示例 7 更改字符串中字符的大小写形式 使用 String 类的方法,如 toUpperCase() 和 toLowerCase() public class StringTest /* 构造方法 */ protected StringTest() /* 这是 main 方法 * 它演示字符串的 length() 和 UpperCase() 方法 * param args 传递至 main 方法 */ pu

21、blic static void main(String args) String name = new String(George); System.out.println(“姓名是 + name); int length = name.length(); System.out.println(“姓名的长度为 ” + length + “ 个字符); System.out.println(“姓名用大写形式表示为: ); String nameUppercase = name.toUpperCase(); System.out.println(nameUppercase); .int num1

22、 = 5;Integer num = new Integer(num1);int num2 = Value();.包装类 1int digit = 10;原始数据类型原始数据类型使用原始数据类型声明的变量视为对象视为对象原始数据类型包装类Java.lang 提供包装类 2原始数据类型原始数据类型包装类包装类byte(字节)Byte char(字符)Character int(整型)Integerlong(长整型)Long float(浮点型)Floatdouble(双精度)Double boolean(布尔)Booleanshort(短整型)Short 包装类 3演示:示例 1

23、包装类的用法 使用包装类的方法,如 ceil()、floor() 和 round()public class NumberWrap /* 构造方法 */ protected NumberWrap() /* 这是 main 方法 * 它将原始值转换为其相应的包装类型 * param args 传递至 main 方法的参数 */ public static void main(String args) String number = args0; Byte byNum = Byte.valueOf(number); Short shNum = Short.valueOf(number); Inte

24、ger num = Integer.valueOf(number); Long lgNum = Long.valueOf(number); System.out.println(Output); System.out.println(byNum); System.out.println(shNum); System.out.println(num); System.out.println(lgNum); 包装类 4方法方法说明说明isDigit()确定字符是否为 0 至 9 之间的数字isLetter()确定字符是否为字母isLowerCase()确定字符是否为小写形式isUpperCase(

25、)确定字符是否为大写形式isSpace()确定字符是否为空格或换行符isUnicodeIdentifierStart()确定是否允许将指定字符作为 Unicode 标识符中的首字符 Character包装类的方法包装类 5演示:示例 2 使用包装类的方法,如 Character 类public class TestCharacter public static void main(String args) int count; char values = *, 7, p, , P; for (count = 0; count values.length; count+) if (Charact

26、er.isDigit(valuescount) System.out.println(valuescount + “是一个数字); if (Character.isLetter(valuescount) System.out.println(valuescount + “是一个字母); if (Character.isUpperCase(valuescount) System.out.println(valuescount + “是大写形式); if(Character.isUnicodeIdentifierStart(valuescount) System.out.println(value

27、scount + “是 Unicode + “标识符的第一个有效字符); TextArea类 TextArea 对象是显示文本的多行区域。可以将它设置为允许编辑或只读。 TextArea类任务三 完成对话框 任务描述任务描述完成菜单项的“帮助”的对话框。本节目标本节目标 掌握各类对话框的使用; 对话框Dialog类 Dialog类和Frame类都是window的子类。但不同之处是,对话框必须依赖于某个窗口或组件,当它所依赖的窗口或组件消失时,对话框也消失;当它所依赖的窗口或组件可见时,对话框会自动恢复。 对话框也是一个容器,它的默认布局方式是Borderlayout。 Dialog对话框的模式

28、分为无模式和有模式两种。对话框Dialog类 Dialog类的构造方法有:Dialog类的常用方法文件对话框FileDialog类 FileDialog是Dialog的子类,它创建的对象称为文件对话框。文件对话框是一个打开文件和保存文件的有模式对话框。文件对话框必须依赖一个Frame对象。FileDialog类的主要方法消息对话框JOptionPane类 消息对话框是有模式对话框,进行一个重要的操作动作之前,最好能弹出一个消息对话框进行确认。可以调用Javax.swing包中的JOptionPane类的静态方法创建:public static void showMessageDialog(Co

29、mponent parentComponent, /消息对话框依赖的组件 String message, /要显示的消息 String title, /对话框的标题 int messageType); /对话框的外观,取值如下:JOptionPane.INFORMATION_MESSAGEJOptionPane.WARNING_MESSAGEJOptionPane.ERROR_MESSAGEJOptionPane.QUESTION_MESSAGE JOptionPane.PLAIN_MESSAGE确认对话框 确认对话框是有模式对话框 可以用javax.swing包中的JOptionPane类的

30、静态方法创建 public static int showConfirmDialog( Component parentComponent, /对话框所依赖的组件 Object mesage, /对话框上显示的消息 String title, /对话框的标题 int optionType); /对话框的外观,取值如下: JOptionPane.YES_NO_OPTION JOptionPane.YES_NO_CANCEL_OPTION JOptionPane.OK_CANCEL_OPTION确认对话框 当对话框消失后,showConfirmDialog方法会返回下列整数之一: JOptionP

31、ane.YES_OPTION JOptionPane.NO_OPTION JOptionPane.CANCEL_OPTION JOptionPane.OK_OPTION JOptionPane.CLOSED_OPTION 返回的具体值依赖于用户单击了对话框上的哪个按钮以及对话框上得关闭图标。颜色对话框 使用java.swing包中的JColorChooser类表静态方法创建: public static Color showDialog( Component component, /对话框所依赖的组件 String title,/对话框的标题 Color initialColor); /对话框

32、消失后返回的默认颜色 颜色对话框可根据用户在颜色对话框中选择的颜色返回一个颜色对象。任务四 记事本打开与保存功能实现 任务描述任务描述实现记事本的打开文件和保存文件的功能。本节目标本节目标掌握文件类的使用;掌握字节流的读写操作;掌握字符流的读写操作。 文件 1 什么是文件? 文件可认为是相关记录或放在一起的数据的集合 文件一般存储在哪里? JAVA程序一般通过什么去访问文件属性? JAVA API :java.io.File 类文件 2File 类类物理文件或目录构造文件对象操作文件或目录的属性(路径、权限、日期和时间等 ) 文件 3演示:示例 1import java.io.File;Fil

33、e file = new File(args0);System.out.println(文件或目录是否存在: + file.exists();System.out.println(是文件吗: + file.isFile();System.out.println(是目录吗: + file.isDirectory();System.out.println(名称: + file .getName();System.out.println(路径: + file.getPath();System.out.println(绝对路径: + file.getAbsolutePath();System.out.

34、println(最后修改时间: + file.lastModified(); System.out.println(“文件大小:” + file.length()+ “ 字节”); 流 1 流是指一连串流动的流是指一连串流动的字符,是以先进先出方先进先出方式发送信息式发送信息的通道InputStreamOutputStream来自数据源的数据流来自数据源的数据流流向目的地的数据流流向目的地的数据流AECDBF流 2流 3Java流的分类 字节流字节流 8 位位 InputStream OutputStream 字符流字符流 16 位位 Unicode Reader Writer文件的读写 文本

35、文件的读写 用用FileInputStream读文本文件读文本文件 用用FileOutputStream写文本文件写文本文件 用用BufferedReader读文本文件读文本文件 用用BufferedWriter写文本文件写文本文件用FileInputStream 读文本文件1 引入相关的类 import java.io.IOException; import java.io.InputStream; import java.io.FileInputStream; 构造一个文件输入流对象 InputStream fileobject = new FileInputStream(“text.tx

36、t”);用FileInputStream 读文本文件2 利用文件输入流类的方法读取文本文件的数据fileobject.available(); /可读取的字节数fileobject.read(); /读取文件的数据 关闭文件输入流对象fileobject.close();用FileInputStream 读文本文件3演示:示例 2 public static void main(String args) throws IOException int size; InputStream fileobject = new FileInputStream(args0 ); System.out.pr

37、intln(“可读取的字节数: + (size = fileobject.available(); char text = new char200 ; for (int count = 0; count size; count+) textcount = (char) fileobject.read(); System.out.print(textcount); System.out.println(); fileobject.close(); 使用 read( ) 方法一次读取一个字符,然后将字符存储在字符数组中并显示字符创建一个 FileInputStream 对象使用 available

38、( ) 方法确定文件的大小用FileOutputStream 写文本文件1 引入相关的类import java.io.IOException;import java.io.OutputStream;import java.io.FileOutputStream; 构造一个文件输出流对象OutputStream fos = new FileOutputStream(Text.txt);用FileOutputStream 写文本文件2 利用文件输出流的方法写文本文件String str =好好学习Java;byte words = str.getBytes();fos.write(words, 0

39、, words.length); 关闭文件输出流fos.close(); 用FileOutputStream 写文本文件 3演示:示例 3 public static void main(String args) try String str =好好学习Java; byte words = str.getBytes(); OutputStream fos = new FileOutputStream(Text.txt); fos.write(words, 0, words.length); System.out.println(Text文件已更新!); fos.close(); catch (

40、IOException obj) System.out.println(创建文件时出错!); 使用 write( ) 方法将数据写入文件用用BufferedReader 读文本文件读文本文件 1 引入相关的类import java.io.FileReader;import java.io.BufferedReader;import java.io.IOException; 构造一个BufferedReader对象FileReader fr=new FileReader(mytest.txt); BufferedReader br=new BufferedReader(fr); 用用BufferedReader 读文本文件读文本文件 2 利用BufferedReader的方法读取文本文件的数据 br.readLine(); /读取一行数据,返回字符串 关闭相关的流对象 br.close(); fr.close();用用Buffe

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论