java语言程序设计[电子教案和教学指南]_第1页
java语言程序设计[电子教案和教学指南]_第2页
java语言程序设计[电子教案和教学指南]_第3页
java语言程序设计[电子教案和教学指南]_第4页
java语言程序设计[电子教案和教学指南]_第5页
已阅读5页,还剩299页未读 继续免费阅读

下载本文档

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

文档简介

第1章 Java概述及开发环境搭建,本章学习要点:,什么是Java语言,Java语言是如何产生和发展壮大的;Java编程语言应用在哪些领域;Java语言有哪些特点;Java开发和执行环境的安装与使用;Java应用程序的基本开发过程;了解JVM(Java虚拟机)的工作原理;选择一种Java集成开发环境;,1.1 Java语言的产生及应用领域,1.1.1 Java语言的前世今生,1、Java的前世,2、Java的今生,1.1.2Java当前应用的领域,Java的发展过程,目前Java提供以下三个版本:,1、JavaSE(Java 2 Platform, Standard Edition): Java标准版(桌面应用)开发平台 2、JavaEE(Java 2 Platform, Enterprise Edition):企业级应用开发平台 3、JavaME(Java 2 Platform, Micro Edition):移动嵌入式开发平台,1.2 Java语言的特点,1简单的语言,2面向对象的语言,3分布式语言,4可移植的语言,5健壮的语言,6安全的语言,7解释型语言,8多线程的语言,共有八大特点:,1.3 Java语言开发和执行环境,1、JDK的下载,访问sun公司的JDK下载页,网址如下:/javase/downloads/index_jdk5.jsp,2、JDK的安装,双击下载的文件进入安装界面,然后根据提示一步一步安装,直至完成。,3、环境变量配置,设置path路径,%path%;.; c:Program FilesJavajdk1.5.0_14bin,Path变量的值应为:,设置classpath变量,设置好path变量后,在命令提示符下,输入javac ,验证是否设置成功。当显示如下图所示信息时,表示设置成功:,(假设我们的JDK的安装目录为:c:Program FilesJavajdk1.5.0_14 ),4、Java集成开发环境Eclipse介绍,现在比较流行的集成开发环境非常多,如:Jcreator、BlueJ、NetBean、JBuilder、Sun One Studio、Eclipse等,Eclipse是众多的JavaIDE中最为出色的一个,Eclipse下载网址为:,运行界面如下图所示:,注意: 运行eclipse需要系统已经正确配置JDK Path和classpath环境变量,因为eclipse集成开发工具也是用Java语言编写的。,1.4 “Hello,World!”应用程序分析,1、第一个Java程序打印“Hello World!”,启动Eclipse编译软件,新建一个HelloJava类文件,并在其中输入如下代码:,public class HelloJava public static void main(String args) System.out.println(Hello world!); ,如下图所示:,几点说明如下:,1、Java源程序文件名必须以.java为扩展名 记住:我们在编写java源程序时一定要以.java为扩展名,否则不能通过编译!,2、主文件名与类名必须一致 类名就是关键字class后面的名字,在我们这个程序中类名为HelloJava。当我们保存这个文件时,我们必须为源文件取名为HelloJava.java,否则程序也不能正常编译。,3、Java程序是区分大小写的 在Java中是严格区分大小写的,这一点和C+是一致的,其实大部分编程语言都是区分大小写的。,2、“HelloJava”的编译和执行,点击“运行”菜单下的“运行”子菜单,弹出如下图所示的对话框:,在“Main类”文本框中输入“HelloJava”类文件名,然后点击“运行”即可。,运行结果如下图所示:,此处即为输出结果,3、常见错误提示原因分析,见书上,4、Java应用程序的基本结构,包声明:如: package org.lzb.first;,注意:Java中包声明语句必须位于程序的开始,即Java源程序的第一行。,类导入:如:import java.util.Date;,类声明:如:public class HelloWorld ,变量声明:如:private String now;,成员方法声明:如: private void say() ,续:,Java注释单行注释:由/开始,从/到本行结束的所有字符在程序运行时都不会被执行。多行注释 :多行注释由/*开始,到下一个*/结束,当中所有的字符在程序运行时都不会被执行,多行注释可以一次注释多行语句。,主方法声明: 主方法也称为main方法。main方法是Java应用程序的入口,程序的执行就是从main()开始的。例:public static void main(String args)HelloWorld hw=new HelloWorld();/生成HelloWorld类的对象hwhw.say();/调用hw对象的方法say() ,5、命名规范,包的命名 由小写字母和数字组成,Java语言内置的包以java和javax开头,比如:java.util;别的组织开发的包以组织的Internet域名部分开头,比如:com.sun,com.borland。,类和接口的命名 声明一个类时类名和接口名首字母要大写,如果类名和接口名由多个单词组成那么每个单词的首字母应该大写,其余部分要小写,例如public class ChinaStudent()。,方法的命名 方法的名字第一个单词必须由小写字母组成。如果方法名由多个单词组成,后面的单词用大写字母开头,例如public void sayHello()。,变量的命名 变量的命名与方法的命名一致。,常量的命名 常量的命名必须全部为大写,如果由多个单词组成,每个单词之间用下划线分隔。,1.5 Java虚拟机介绍,MyJavaProgram.class,MyJavaProgram.java,编辑器(javac),虚拟机(JVM),续:,1.6 JavaAPI帮助文档的使用,1.7 复习与提示,在线版本的帮助文档的URL地址如下:/Java_Docs/html/zh_CN/api/index.html,Java编程语言的产生与应用领域;Java语言的特点;Java开发和执行环境的安装与使用;Java应用程序的基本开发过程;了解JVM(Java虚拟机)的工作原理;选择一种Java集成开发环境;,本章学习了:,一个典型的Java程序结构的组成部分包括:,包声明包导入类声明变量声明主方法声明注释,Java标识符应该满足以下规则:,关键字不能作为标识符使用标识符的首字母必须是字母、下划线(_)、美元符号($)或人民币符号(¥)。标识符除首字母外其它部分可由数字(0-9)、字母(a-z,A-Z)、下划线(_)及美元符号($)组成。标识符的长度没有限制标识符是大小写敏感的,Java标识符应该遵守如下的命名规范:,包名应该小写。类名和接口名第一个单词应该大写,如果超过一个单词,每个单词首字母应该大写,其余部分应该小写。方法名开头应该为小写字母,如果超过一个单词,后面的单词应该用大写字母开头,其余部分应该小写。常量的命名应该为全部大写,如果超过一个单词,单词之间应该用下划线分隔。,要进行Java程序开发,我们必须设置好环境变量:,PATH环境变量:是告诉系统到哪里去找Java编译和执行程序;,CLASSPATH环境变量:是告诉我们的Java程序到哪里寻找程序中使用到的各种Java类库。,Java的发展过程,第2章 Java基础语法,本章学习要点:,Java关键字、标识符、数据类型、常量与变量;Java运算符与表达式;流程控制;类与对象的概念;继承、接口和包;,2.1 关键字、标识符、数据类型、常量与变量,2.1.1 关键字 2.1.2 标识符 2.1.3 数据类型 2.1.4 常量和变量,2.1.1 关键字,关键字对JAVA编译器有特殊的含义,它们可标识数据类型名或程序构造名。,2.1.2 标识符,标识符用来标识变量、类、接口、包和方法的名字。Java程序中的一切对象和变量都需要一个专门的名字来标识。Java规定标识符必须满足以下命名规则。 关键字不能作为标识符使用标识符的首字母必须是字母、下划线(_)、美元符号($)或人民币符号(¥)。标识符除首字母外其它部分可由数字(0-9)、字母(a-z,A-Z)、下划线(_)及美元符号($)组成。标识符的长度没有限制标识符是大小写敏感的,2.1.3 数据类型,逻辑类boolean字符类char型 整数类型byte,short,int,long 浮点类型double,float 数据类型优先关系和相互转换,2.1.4 常量和变量,1. 常量和变量,常量:用保留字final来实现,变量:是java程序中的基本存储单元,它的值是可以变化的,它的定义包括变量名、变量类型和作用域几个部分。变量名必须是一个合法的标识符变量名应具有一定的含义,以增加程序的可读性变量类型可以为前面所说的任意一种数据类型。,2.1.4 常量和变量,2. 变量的作用域,声明一个变量的同时也就指明了变量的作用域,变量的作用域指明可访问该变量的一段代码。按作用域来分,变量可以有下面几种:局部变量、类变量、方法参数、例外处理参数。,2.2 运算符与表达式,2.2.1算术运算符 2.2.2关系运算符 2.2.3布尔逻辑运算符 2.2.4位运算符 2.2.5其他运算符 2.2.6运算符的优先级和表达式,2.2.1算术运算符,算术运算符包括加号(+)、减号(-)、乘号(*)、除号(/)、取模(%)、自增运算符(+)、自减运算符(-)等。 在算术运算符中,有以下几点需要注意的地方:算术运算符的总体原则是先乘除、后加减,括号优先。整数除法会直接砍掉小数,而不是进位。与C语言同,对取模运算符%来说,其操作数可以为浮点数如:37.2%10=7.2。JAVA也用一种简写形式进行运算,并同时进行赋值操作。例如,为了将10加到变量x,并将结果赋给x,可用:x+=10。JAVA对加运算符进行了扩展,使它能够进行字符串的连接,如“abc”+“def”,得到串“abcdef”。,2.2.2关系运算符,关系运算符用来比较两个操作数,由两个操作数和关系运算符构成一个关系表达式。关系运算符的操作结果是布尔类型,即如果运算符对应的关系成立,则关系表达式结果为true,否则为false。,2.2.3布尔逻辑运算符,布尔逻辑运算符用来连接关系表达式,常与关系运算符一起使用,作为流控制语句的判断条件。逻辑(&)、逻辑或(|)为二元运算符;逻辑非(!)为一元运算符。,2.2.4位运算符,按位与运算符(&) 按位或运算符(|)按位异或运算符()按位取反运算符()左移位运算符(与),2.2.5其他运算符,1条件运算符(?:,在JAVAV中,条件运算符(?:)与C语言中的使用规则是完全一致的,使用的形式是x ?y:z;,2扩展赋值运算符,赋值运算符“=”的作用是将运算符右边表达式的值赋给左边的变量。扩展赋值运算符的作用是先进行某种运算后,再对运算的结果进行赋值操作。 前面曾介绍过JAVA可以用一种简写形式进行运算,并同时进行赋值操作。例如,为了将10加到变量x,并将结果赋给x,可用:x+=10(等价于x=x+10)。,2.2.6运算符的优先级和表达式,优先级决定了同一表达式中多个运算符被执行的先后次序,运算符的优先顺序从高到低,同级的运算符则按从左到右的方向进行。,2.3 流程控制,2.3.1块作用域 2.3.2分支选择结构 2.3.3循环结构,2.3.1块作用域,在介绍控制结构之前,先了解一下“块”或“代码块”(block)的知识。 所谓“块”或“复合语句”,是指用一对花括号包围起来的任意数量的简单JAVA语句。块定义着变量的“作用域”(scope)。一个块可嵌入到另一个块内,下面是嵌套方法内的一个代码块。,2.3.2分支选择结构,1、if-else语句if-else语句是JAVA程序中最常见的选择控制结构,其基本语法形式如下:if(条件表达式) 语句组1; else 语句组2; ,2.3.2分支选择结构,2、switch语句 switch语句(又称开关语句)是和case语句一起用的,其功能是根据某个表达式的值在多个case引导的多个分支语句中选择一个来执行。它的一般格式如下 switch (表达式) case 判断值 1:语句块1 ;break; case 判断值 2:语句块2 ;break; case 判断值 3:语句块3 ;break; case 判断值 n:语句块n ;break; default:语句块n+1 ,2.3.3循环结构,JAVA中有三种语句来实现循环结构,分别是while,do-while和for语句。 1while语句 while语句的格式如下: while (条件表达式) 循环体语句; ,2. do-while语句do-while循环又称“直到型”循环,语句的格式如下:do 循环体语句;while (条件表达式),2.3.3循环结构,2.3.3循环结构,3. for语句 当你事先知道了循环会被重复执行多少次时,可以选择确定循环结构for循环。for循环的格式如下: for (表达式1;表达式2;表达式3) 循环体语句; 另外,for语句可以转换成等价的while结构如下: 表达式1; while (表达式2) 循环体语句; 表达式3; ,2.3.3循环结构,4嵌套语句 一个循环体内可以包含另一个完整的循环结构,构成多重环结构,while、do-while、和for三种循环结构也可以互相嵌套。 循环结构与分支结构也可相互嵌套,以实现复杂算法。分支结构的任意一个分支都可以嵌套一个完整的循环结构,同样循环体中也可以包含完整的分支结构。,2.4 类和对象,2.4.1 类 2.4.2对象2.4.3构造方法 2.4.4 抽象类和抽象方法 2.4.5 final类,2.4.1类,1. 类的定义,类的基本定义方法如下: 修饰符 class 类名 extends 父类 implements 接口名 类成员变量声明 类方法声明 其中,修饰符public,abstract,final 说明了类的属性,2.4.1类,2Java的修饰符 private protected public default final abstract,2.4.1类,3类的成员变量Java中类的成员变量声名方式如下:修饰符 变量类型 变量名 =变量初值 例如:public int a,b=12;Protected String s=”Java”;类成员变量的修饰符分为两类:访问控制修饰符和非访问控制修饰符。,4类的成员方法 可以把一个程序中多次用到的某个任务定义为方法,方法的基本组成部分包括方法头声明和方法体两部分,Java中类的成员方法声名方式如下: 修饰符 返回类型 方法名(参数列表)throws 例外名1,例外名2 方法体 ,2.4.1类,2.4.2对象,在面向对象程序设计中,对象有三个主要的特性: 对象的行为对象能做什么,或者说可以对这个对象施加什么方法。 对象的状态当对象施加方法时,对象如何反应。 对象的标识符对象是如何与可能具有相同行为和状态的其他对象相区别。,2.4.2对象,1对象的生成 对象的生成包括声明、实例化和初始化。JAVA中生成对象的方式为: 修饰符 类名 对象名 =new 类名 (实际参数列表); 2对象的使用 通过运算符“.”可以实现对变量的访问和方法的调用。变量和方法可以通过设定访问权限来限制其它对象对它的访问。 3对象的释放 Java语言提供了垃圾收集机制对对象占用的内存进行管理,主要是对不再使用的对象所占用的内存空间进行回收。,2.4.3构造方法,1利用构造方法创建对象 在多数情况下,初始化一个对象的最终步骤是去调用这个对象的构造方法。构造方法负责对象的初始化工作,给实例变量赋予合适的初始值。 2构造方法的特点: 构造方法和类具有相同的名字。 一个类可以有多个构造方法。 构造方法可以有0个、1个或多个参数。 构造方法没有返回值。 构造方法总是和new 运算符一起被调用。 3构造方法重载 当调用类的成员方法时,实际参数必须与方法的参数匹配。如果该方法有更多的灵活性,能以不同的参数调用一个方法,那会更有用。,2.4.4 抽象类和抽象方法,1抽象类定义规则 抽象类必须用abstract关键字来修饰,抽象方法也必须用abstract来修饰。 抽象类不能被实例化,也就是不能用new关键字去产生对象。 抽象方法只需声明,而不需实现。 含有抽象方法的类必须声明为抽象类,抽象类的子类必须覆盖所有的抽象方法后才能被实例化,否则这个子类还是抽象类。 2抽象方法的写法 abstract返回值类型 抽象方法(参数列表);,final类不能被继承,即不能有子类,如:final class A,2.4.5 final类,如果一个方法被修饰为final方法,则这个方法不能被重写。如果一个成员变量被修饰为final,就是常量。,2.5.1 继承的定义 2.5.2 类继承的实现 2.5.3 成员变量的隐藏和方法的重写,2.5 继承,2.5.1 继承的定义,继承性是软件复用的一种形式。新类由已存在的类生成,通过保留它们的属性和行为,并且根据新类的要求对性能加以修改,添加新的属性和行为。 JAVA中,类java.lang.Obiect是一切类的父类或根类,所有的类都是通过直接或间接地继承java.lang.Object得到的。,2.5.2 类继承的实现,父类包括所有直接或间接继承它的类,从一个常用父类扩展来的所有类的集合是一个树型结构。例如:员工经理秘书经理主管程序员。,在子类和父类的关系中要分清“是一个(is-a)”关系和“有一个”关系。“是”是继承性,一个子类对象类按父类对象类型同样对待,例如一个公司有几百人,这些人是公司的成员,包括一般员工和经理。在“经理”和“雇员”之间有一个明显的“is-a”关系。每一个经理都是一个员工:“is-a”关系就是继承的特点。,2.5.2 类继承的实现,在类的声明中加入extends关键字即可创建一个类的子类。其格式如下: class 子类名 extends 父类名 下面的程序说明如何定义Manager类并使其继承Employee类。 class Manager extends Employee /added methods and fields 子类可以继承父类中访问权限设定为public、protected、default的成员变量和方法。但是不能继承访问权限为private的成员变量和方法。,2.5.3 成员变量的隐藏和方法的重写,在类的层次结构中,当子类的成员变量与父类的成员变量同名时,子类的成员变量会隐藏父类的成员变量;当子类的方法与父类的方法具有相同的名字、参数列表、返回值类型时,子类的方法就叫做重写了父类的方法,当重写的方法在子类的对象被调用时,它总是参考在子类中定义的版本,在父类定义的方法就被隐藏。关于方法的重写,在JAVA中有以下几点需要说明: (1)方法重写仅发生在两个方法的名字、参数列表和返回值完全一致的情况下,如果不是,则不会被重写。 (2)重写的方法不能比被重写的方法有更严格的访问权限。 (3)重写的方法不能比被重写的方法产生更多的异常。,子类在隐藏了父类的成员变量或重写了父类的方法后,有时还要用到父类的成员变量,或在重写的方法中使用父类中被重写的方法以简化代码的编写,这时就要访问父类的成员变量或调用父类的方法,JAVA中通过super来实现对父类成员的访问。 super的使用如下: 用来访问父类被隐藏的成员变量。格式为: super.variable 用来调用父类中被重写的方法。格式为: super.Method(参数列表); 用来调用父类的构造方法。格式为: super(参数列表);,2.5.3 成员变量的隐藏和方法的重写,2.6接口和包,2.6.1 接口的定义 2.6.2 接口的实现 2.6.3 Java中包的概念与使用,2.6.1 接口的定义,接口的定义使用interface关键字,而类使用class关键字 定义接口的方式如下: 修饰符interface 接口名称 /方法说明和静态常量 ,2.6.2 接口的实现,类的声明中用implements子句来表示一个类实现了某个接口,在类体中可以使用接口中定义的常量,而且必须实现接口中定义的所有方法。一个类可以实现多个接口,在implements子句中用逗号分隔。在类中实现接口所定义的方法时,方法的声明必须与接口中所定义的完全一致。 在下例中,首先定义一个接口A,内含一个常量g和一个抽象方法show()。类B实现接口A,在B中具体实现了接口中的抽象方法show(),输出g的值。,2.6.2 接口的实现,例:实现接口。 Interface A Double g=9.8; void show(); class B implements A public void show() System.out.println(“g=”+g); class InterfaceTest public static void main(String args) B b=new B(); b.show(); ,2.6.3 Java中包的概念与使用,1包的概念 包是Java中的文件组织形式,对应系统的文件夹。 2包的使用 Java中包的声明形式如下: Package 包名 例如:package example.code.oo; 一个类如果要引用其它包下的类需要使用import关 键字。而指定一个类需要指定这个类所在包的完整路径。例如:import java.util.ArrayList;,2.7 复习与提示,首先,介绍了JAVA语言提供的各种数据类型和运算符。基本的运算符包括算术运算符、关系运算符、逻辑运算符、位运算符、赋值运算符、条件运算符。优先级决定了同一表达式中多个运算符被执行的先后次序,结合性则决定了并列的相同优先级运算的先后执行顺序。应当掌握好各种运算符的优先级。 其次,虽然Java语言是面向对象的程序设计语言,但是面向对象的编程也是以面向过程编程为基础而发展起来的,在对象的方法等程序片内部,仍然需要严格遵守传统的结构化程序设计原则。所以应当熟练掌握结构化程序设计的三种基本流程:顺序结构、选择结构和循环结构。 最后,介绍了面向对象的基本概念和基本特征,然后分别对Java中类、对象、接口和包等进行介绍。从类的定义引申到对类的修饰成员变量、成员方法、的介绍。之后又介绍了继承、重载的概念,final类和抽象类。,第3章 聊天室项目分析,本章学习要点:,聊天室的工作原理;,了解客户/服务器(C/S)模式;,分析聊天室项目采用的技术要点;,3.1 概述,3.2 聊天室项目的工作原理,一、客户/服务器(C/S)模式,1、面向连接的通信机制2、消息请求转发,友好的用户聊天界面用户必须经过注册、登录方可使用本聊天室,显示当前在线用户用户可以保存聊天信息,可以监视所有用户的聊天信息将用户的注册信息放入数据库中根据数据库验证用户的登录请求显示当前在线用户发送系统消息,向所有在线用户广播保存用户的聊天信息,1、客户端应具备的功能,二、 网络聊天室功能,2、服务器应具备的功能,本项目需要采用的Java技术,1、Java图形界面编程,我们选择利用Swing包中的各个组件来开发我们的用户界面。,3.3 聊天室项目技术分析,2、Java事件处理机制,事件处理即应用程序对用户参与软件运行过程的响应,事件编程和图形界面编程是密不可分的。,4、Java中文件和流的操作,在Java中数据的输入输出是利用一种称为“流”的机制来实现的。本聊天室项目提供了将聊天信息保存为磁盘文件的功能,因此需要对文件输入输出流将进行详细讲解 。,3、Java网络编程模型,本聊天室项目是一种基于C/S(客户端/服务器)结构的在线式聊天系统,基于网络的编程始终贯穿其中。本项目采用面向连接的基于TCP/IP协议的Scoket编程模型,重点探讨数据对象在网络中的发送和接收过程。,通过连接数据库来实现将用户的注册信息是保存在数据库中的功能。,在本聊天室项目中,服务器端必须要实现能够同时让多个客户端连接并进行通信的功能。这就要求程序必须具备多线程处理的能力。,6、Java数据库编程,5、Java多线程,7、Java集合的使用,在本聊天室项目中,我们需要采用了集合类来保存我们的用户列表对象和输出流对象。,本章小结,3.4 复习与提示,本章分析了聊天室项目的运行机制,阐述了基于C/S结构的网络程序的工作原理。在对聊天室的分析过程中逐步确定需要涉及的Java相关知识点。,第4章 实现客户端界面,本章学习要点:,了解Java图形界面编程方法;,Java Swing包的使用;,掌握实现聊天室客户端编程所必须的基本知识与技能;,4.1 需求分析,作为在线网络聊天室,要完成如下的功能:,实现一个用户聊天的软件运行界面。,通过这个界面在线用户应该能够输入聊天信息。,在线用户也应该能够看到所有其他用户发出的聊天信息。,4.2确定任务单 :,任务:通过对需求的理解,经过分析,可以初步得出客户端界面大致如下图所示:,图4.1 聊天室客户端界面,4.3 任务:完成客户端窗口界面,一、确定步骤:,二、分析步骤:,1、确定登录窗口界面所用到的控件 预备知识,Swing是AWT的扩展,它提供了许多新的图形界面组件。Swing组件以J开头,除了有与AWT类似的按钮(JButton)、标签(JLabel)、复选框(JCheckBox)、菜单(JMenu)等基本组件外,还增加了一些丰富的高层组件,如表格(JTable)、树(JTree)。,Java中常用的Swing组件如下表所示:,swing各组件功能及操作方法简介:,1)JFrame类创建窗口 JFrame可为应用程序构建主框架,JFrame类继承了Frame类。 Component :抽象类,归纳了所有图形用户界面上的组件。 Containter:容器也是组件,特别的是容器中可以容放组件。构造方法,JFrame 提供了两个方法:getContentPane 和 setContentPane 就是用于获取和设置其 Content Pane 的。,JFrame的设置和显示方法,在JFrame窗口中加入组件,frame.getContentPane().add(childComponent),a)用getContentPane( )方法获得JFrame的内容面板,再对其加入组件:,b)建立一个JPanel或 JDesktopPane之类的中间容器,把组件添加到容器中,用setContentPane()方法把该容器置为JFrame的内容面板,JPanel contentPane=new JPanel( );/把其它组件添加到Jpanel中;frame.setContentPane(contentPane); /把contentPane对象设置成为frame的内容面板或者: frame.getContentPane.add(contentPane);,2) JPanel概述 面板(JPanel)是一个轻量容器组件,用法与Panel相同,用于容纳界面元素,以便在布局管理器的设置下可容纳更多的组件,实现容器的嵌套。,JPanel, JScrollPane, JSplitPane, JInteralFrame都属于常用的中间容器,是轻量组件。JPanel的缺省布局管理器是FlowLayout。,2) JPanel概述构造方法:,public JPanel():创建一个FlowLayout布局的面板public JPanel(LayoutManger layout):创建一个指定布局的面板,如:JPanel p1=new JPanel(new BorderLayout();说明:面板的默认布局是FlowLayout,不同于Container的默认。,3)标签(JLabel),构造方法 JLabel() 创建一个空标签 JLabel(String c) 指定标签文本 JLabel(String c,Icon ,Imageicon icon,JLabel.left/JLabel.right) 同时显示图标与文本常用设置方法 设置标签显示文本:public void setText(String c) 取得标签显示文本:public String getText() 字体设置:public void setFont(Font f) 前景色设置: public void setForeground(Color c),按钮是窗口程序中最常用的一种组件,按钮提供用户快速启动某一动作的方法,用户只需做的就是单击它们。按钮由Button类创建,而Button类是由Component类直接扩展的。 按钮是一个常用组件,按钮可以带标签或图象,用户可通过按钮发布命令。,4)按钮(JButton),构造方法:,JButton()JButton(Icon icon) /按钮上显示图标JButton(String text) /按钮上显示字符JButton(String text, Icon icon) /按钮上既显示图标又显示字符,5)单行文本框(JTextField),文本框是AWT的基本组件,文本框是用来在窗口中显示文字的矩形框,这些文字可以被用户编辑。文本框可以用来输入文字、编辑文字、并显示所输入的文字、读取用户输入的文字。文本框分为单行文本框和多行文本框。,构造方法:,JTextField(); /创建一个无任何内容的文本框对象JTextField(int columns); /指定宽度JTextField(String text); /指定初始化文本JTextField(String text, int columns); /即指定宽度又指定文字信息,常用方法:,设置标签显示文本:public void setText(String c)取得标签显示文本:public String getText()字体设置:public void setFont(Font f)前景色设置: public void setForeground(Color c),6)密码文本框(JPasswordField),密码输入框则只有一种 (JPasswordField)。JPasswordField 是 JTextField 的子类,它们的主要区别是 JPasswordField 不会显示出用户输入的东西,而只会显示出程序员设定的一个固定字符,比如 * 或者 #。,构造方法,JPasswordField() ; JPasswordField(Document doc, String txt, int columns) JPasswordField(int columns) JPasswordField(String text) JPasswordField(String text, int columns),其它方法,chargetPassword() chargetEchoChar() voidsetEchoChar(charc) 设置为了隐藏密码而显示的字符,默认为 * 字符也用 getText 方法和 setText 获得或者设置文本内容 (当然在用户界面上是隐藏的) 。,显示多行文本。构造方法: JTextArea() JTextArea(int rows,columns) 指定尺寸 JTextArea(String text) 指定初始化文本 JTextArea(String text,int rows, int columns),7)多行文本框(JTextArea),常用设置方法: public void setLineWrap(boolean wrap):换行状态设置 public void setRows(int rows) :设置行数 public void setColumns(int columns):设置列数 说明:颜色、字体、内容的设置同上(setForeground、setFont、setText),JComboBox每次只能选择其中的一项,但是可编辑每项的内容,而且每项的内容可以是任意类,而不再局限于String。,(8)组合框(JComboBox),作用 以下拉列表的方式给出若干选项,提供用户从中选择。 下拉列表在单击箭头时才能浏览其中的项目。,构造方法 JComboBox():创建一个默认数据项的组合框。 JComboBox(Object items):创建一个包含指定数组各元素的组合框。,常用方法 Object getSelectedItem():返回当前选择项 int getSelectedIndex():返回当前选择项的序数(从0开始) int getItemCount():返回组合框中的项数。,适用于数量较多的选项以列表形式显示,里面的项目可以由任意类型对象构成。支持单选和多选。,9)列表(JList),作用 以多行列表的方式给出若干选项,提供用户从中选择。,构造方法: JList():创建一个内容为空的列表框。 JList(Object items):创建一个包含指定数组各元素的列表框。,常用方法确定列表框尺寸: void setVisibleRowCount(int num):设置列表可见行数。 void setFixedCellWidth(int width):设置列表框的固定宽度(像素)。 void setFixedCellHeight(int height):设置列表框的固定高度。,其它方法 Boolean isSelectedIndex(int index):序数为index的项是否被选中。,复选框提供简单的on/off开关,旁边显示文本标签。,10)复选框(JCheckBox),作用 给出若干选项,提供用户选择。 复选框有两种状态:选中和未选中。在一组复选框中,同时可以选择多项。,构造方法 JCheckBox() 无选项文本、无选中 JCheckBox(String text) 指定选项文本、无选中 JCheckBox(String text,boolean select),常用方法 isSelected():可测得复选框是否被选中。,单选框JRadioButton与AWT中的复选框组功能类似。,11)单选框(JRadioButton),作用 给出若干选项,提供用户选择其中一项。 单选按钮同复选框一样也有两种状态:选中和未选中。 多个单选按钮通常组织在一个按钮组中工作,此时只能选择其中一项。,构造方法 JRadioButton() 无文本、无选中 JRadioButton(String text) 指定选项文本、无选中 JRadioButton(String text, boolean selected) 指定选项文本,已选中,常用方法 isSelected():可测得单选按钮是否被选中,=TestTextField.java= import java.awt.*; import javax.swing.*; public class TestTextField extends JFrame public static void main(String args) JFrame f=new JFrame(Java程序设计基础); Container c=f.getContentPane(); JPanel p=new JPanel(); c.add(p); ImageIcon icon=new ImageIcon(imageQ1.gif); /创建一个即有文字信息又有图像的标签对象,且图像位置设置在左边显示 JLabel l=new JLabel(JLabel举例,icon,JLabel.LEFT); /实例化两个文件标签 JLabel l1=new JLabel(用户名);,例6:请在窗体中添加一个标题标签,一个“用户名”标签,一个“密码”标签,两个单行文本框,长度各为10。,JLabel l2=new JLabel(密 码); /实例化两个宽度均为10的JTextField对象 JTextField tf1=new JTextField(10); JTextField tf2=new JTextField(10); p.add(l); p.add(l1); p.add(tf1); p.add(l2); p.add(tf2); f.setSize(100,200); f.setVisible(true); ,输出结果:,结果聊天室客户端要用的控件如下:,2、确定聊天室客户端界面的布局方式预备知识 Java通过布局管理器确定容器中各组件的大小和位置,布局管理器是执行布局管理的特殊的类。Java 提供布局管理器类有:FlowLayout, GridLayout, BorderLayout, CardLayout,及 GridBagLayout等。 布局管理器类是从Object 类扩展过来的,并且由java.awt 包提供。,FlowLayout(流布局) FlowLayout会将组件按照从左到右,从上到下的方式排列,按加入(add()方法)到容器的顺序布局控件。同时,组件的排列随容器大小的变化而变化,但组件大小保持不变。,构造函数: FlowLayout():/组件位置中心对齐,组件间距为5像素。 FlowLayout(int align):/以指定方式对齐,组件间距为5像素。 FlowLayout(FlowLayout.RIGHT,20,40);,GridLayout的规则相当简单,允许用户以行和列指定布局方式,每个单元格的尺寸决定于单元格(主要取决于行数)的数量和容器的大小,组件大小一致。,GridLayout(网格布局),构造函数: GridLayout() GridLayout(int rows,int cols) GridLayout(int rows

温馨提示

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

最新文档

评论

0/150

提交评论