Java程序设计教程 第六章

合集下载

Java程序设计案例教程(第二版)周怡、张英主编。第6章 习题答案

Java程序设计案例教程(第二版)周怡、张英主编。第6章 习题答案
return "0";
方法的覆盖:在子类中重定义父类的同名方法。方法覆盖表现为父类与子类之间的方法的多态性,其中形参表、返回值类型也必须相同,且子类方法不能有比父类方法更严格的访问权限。可以为编译时多态性或运行时多态性。
6.什么叫构造方法?构造方法的作用是什么?
答:构造方法是对象实例化时完成对象及其成员变量的初始化时所调用的一种特殊的方法。
}
}
//类Draw_Clean继承抽象类Draw_Eraser并覆盖抽象方法getEraser()
classDraw_CleanextendsDraw_Eraser
{
publicvoidgetEraser()
{
System.out.println("橡皮擦选项:选择橡皮擦>>>选中需要清除内容>>>确定");
运行时多态性:在编译时不能确定、只有在运行时才能确定执行多个同名方法的哪一个。
五、编程题
1.考虑设计一个绘图工具的面向对象描述,写出代码框架,充分应用抽象、多态等方法。
classDraw_Graph
{
doubleline;
doublecircle;
//定义构造方法
publicDraw_Graph()
* @return计算结果
*/
public Complex multiply(Complex complex){
double x = this.x * complex.x - this.y * complex.y;
double y = this.y * complex.x + this.x * complex.y;
return new Complex(x,y);

java语言程序设计第6章

java语言程序设计第6章
——例6_1
/
从键盘读入信息并在显示器上显示
import java.io.*;

public class Echo {

public static void main(String[] args) throws IOException {
输 出
BufferedReader in = new BufferedReader(
writer.write( "You can see how this is done.\n" ); writer.write("输入一行中文也可以\n"); writer.close(); //关闭流
}
}
19
08信管
6.2.1 写文本文件(续)
——例6_2运行结果
打开C盘根目录下的Hello.txt文件 文 件 读 写

使用这两个类的子类来读写8位的字节信


出 流
– 分为两部分
节点流
处理流
例子(读写二进制文件)
/
9
/
08信管
6.1.2 预定义的I/O流类概述(续)
——面向字节的流
输 入 输 出 流
阴影部分为节点流 10
08信管
6.1.2 预定义的I/O流类概述(续)
——标准输入输出
标准输入输出流对象

}
}
22
08信管
6.2.1 写文本文件(续)
——例6_4
使用BufferedWriter完成例6-2实现的功能
import java.io.*; //ex6_4
class Ex6_4 {
文 件
public static void main ( String[] args ) throws IOException { String fileName = "C:/newHello.txt" ; BufferedWriter out = new BufferedWriter(

解析JAVA程序设计第六章课后答案

解析JAVA程序设计第六章课后答案

第6章习题解答1.简述Java中设计图形用户界面程序的主要步骤。

对于设计图形用户界面程序而言,一般分为两个步骤:第一步,设计相应的用户界面,并根据需要对相关的组件进行布局;第二步,添加相关的事件处理,如鼠标、菜单、按钮和键盘等事件。

2.试说明容器与组件之间的关系。

组件(component)是图形用户界面中的各种部件(如标签、按钮、文本框等等),所有的组件类都继承自JComponent类。

容器(container)是用来放置其他组件的一种特殊部件,在java中容器用Container类描述。

3.阅读下面程序,说明其运行结果和功能。

//filename:MyFrame.javaimport java.awt.*;import java.awt.event.*;import javax.swing.*;public class MyFrame{public static void main(String agrs[]){JFrame f=new JFrame("简单窗体示例");f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);JLabel l=new JLabel("习题1");f.getContentPane().add(l,BorderLayout.CENTER);f.pack();f.setVisible(true);}}程序的运行结果如下:4.阅读下面程序,说明其运行结果和功能。

//filename:TestButton.javaimport java.awt.*;import javax.swing.*;public class TestButton extends JFrame{JButton b1,b2;TestButton(String s){super(s);b1=new JButton("按钮1");b2=new JButton("按钮2");setLayout(new FlowLayout());add(b1);add(b2);setSize(300,100);setVisible(true);}public static void main(String args[]){ TestButton test;test=new TestButton("测试按钮"); }}程序的运行结果如下:5.阅读下面程序,说明其运行结果和功能。

java语言程序设计第6章

java语言程序设计第6章
同父类的异常统一处理,也可区分不同的异常分别处理,使用非常灵活。
第6章 常见错误和异常处理
6.2.2 Exception类
Java语言的异常类是处理运行时错误的特殊类,每一种异常类对应一种特定 的运行错误。所有的Java异常类都是系统类库中的Exception类的子类 。 Exception类有若干子类,每一个子类代表了一种特定的运行时错误。这些 子类有些是系统事先定义好并包含在Java类库中的,称为系统定义的运行异 常。 系统定义的运行异常通常对应着系统运行错误。由于这种错误可能导致操作 系统错误甚至是整个系统的瘫痪,所以需要定义异常类来特别处理。 常见的系统定义异常如下: (1)ArithmeticException:数学错误。 (2)ArrayIndexOutOfBoundsException:数组下标越界使用。 (3)ClassNotFoundException:未找到欲使用的类。 (4)FileNotFoundException:未找到指定的文件或目录。
第6章 常见错误和异常处理
6.2.4 多异常的处理
如果所有的catch语句都不能与当前的异常对象匹配,则说明当前方法不能 处理这个异常对象,程序流程将返回到调用该方法的上层方法。如果这个上 层方法中定义了与所产生的异常对象相匹配的catch语句,流程就跳转到这 个catch语句中,否则将继续回溯更上层的方法。 如果所有的方法中都找不到合适的catch语句,则由Java运行系统来处理这 个异常对象。此时通常会中止程序的执行,退出虚拟机返回操作系统,并在 标准输出上打印相关的异常信息。 如果try语句体中所有语句的执行都没有引发异常,则所有的catch语句体都 会被忽略而不予执行。 catch语句体中的语句应根据异常的不同而执行不同的操作,比较通用的操 作是打印异常和错误的相关信息,包括异常名称、产生异常的方法名等。 由于异常对象与catch语句的匹配是按照catch语句的先后排列顺序进行的, 所以在处理多异常时应注意认真设计各catch语句的排列顺序。一般来说, 将处理较具体和较常见的异常的catch语句应放在前面,而可以与多种异常 相匹配的catch语句应放在较后的位置。此外,不能将子类异常的catch语句 放在父类的后面,否则在编译时会产生错误。

龚正罡Java语言程序设计基础教程(第6章)PPT课件

龚正罡Java语言程序设计基础教程(第6章)PPT课件

方法
方法说明
protected Component() public String getName() public void setName(String name) public Component getComponentAt(int
x,int y) public Font getFont() public Color getForeground() public Dimension getSize() public void paint(Graphics g) public void repaint() public void setSize(Dimension d) public void setVisible(boolean b) public void update(Graphics g)
构造一个新组件。 获得组件的名称。 将组件的名称设置为指定的字符串。 确定此组件或其直接子组件之一是否包含(x,y)位置,并且如
果是,则返回包含该位置的组件。 获得组件的字体。 获得组件的前景色。 以 Dimension 对象的形式返回组件的大小。 绘制此组件。 重绘此组件。 调整组件的大小,使其宽度为 d.width,高度为 d.height 根据参数 b 的值显示或隐藏此组件。 更新组件。
ep6_1 fr = new ep6_1("Hello Out There!"); // 构造方法
fr.setSize(200, 200); // 设置Frame的大小,缺省为(0,0)
10
6.3 常用容器
容器java.awt.Container也是一个类,实际上 是Component的子类,因此容器本身也是一个 组件,具有组件的所有性质,但是它的主要功 能是容纳其它组件和容器。一个容器可以容纳 多个组件,并使它们成为一个整体。容器可以 简化图形化界面的设计,以整体结构来布置界 面。所有的容器都可以通过add()方法向容器 中添加组件。

java程序设计第6章

java程序设计第6章

结束

注意: • Java中多维数组不一定是规则的矩阵形式。 1
x
4 7
5 8 y
6
表明java数组中有x个成员,第一个成员有1个元素, 第二个成员有3个元素,第三个成员有2个元素。
23
首页
上页
返回
下页
结束

6.3.1 二维数组的声明
二维数组的声明与一维数组类似,只是需要 给出两对方括号,其格式如下:
计算全院学生的英语平均成绩?
2
首页
上页
返回
下页
结束

数组 • 数组是用一个标识符(变量名)和一组下标 来代表一组具有相同数据类型的数据元素的 集合。 for(int i=0,sum=0;i<45;i++) sum=sum+grade[i]; average=sum/45;
优点:存取快速、简便;方便定位;操作灵活性
5
首页
上页
返回
下页
结束

int [] a1={23,-9,38,8,65}
数组名为a1,数组元素的数据类型为int,占4个 字节,共有5个初始值,故数组元素的个数为5。 系统为其分配5*4=20个字节的连续存储空间。
数组元素
a1[0]
23
a1[1]
–9
a1[2]
38
a1[3]始值
长度,对于每个已分配了存储空间的数组,Java用
一个数据成员length来存储这个数组的长度值。
使用如下:数组名.length
6.2.2 数组下标的灵活使用 数组作为一组变量的代表者其下标可以使用变量。 c6_2
13
首页
上页
返回

JAVA程序设计技能教程第6章

JAVA程序设计技能教程第6章

public static void main(String[] args){ Chinese people=new Chinese(); people=new Chinese("张三"); people=new Chinese("张三",20); } }
综上所述,super用来访问父类的成员变量和成员方法的引用 格式有以下几种: (1)super.成员变量 (2)super.(参数列表) (3)super. 成员方法([参数列表])
上面的两个类可以简写成下面的代码: 【例6-2】简写的学生类。 public class Person { public String name; public int age; public String getInfo(){...} } public class Student extends Person{ public String school; public String study(){...} }
public class DemoSuper extends Person{ public void print(){ System.out.println("DemoSuper:"); super.print(); } public static void main(String[] args){ DemoSuper test=new DemoSuper(); test.setName("张三"); test.setAge(20); test.print(); }
【例6-7】在对象初始化的时候自动调用this和super: class Person{ public static void print(String s){ System.out.println(s); } Person(){ print("A Person."); } Person(String name){ print("A person name is:"+name); } }

精品课件-JAVA语言程序设计教程(张席)-第6章

精品课件-JAVA语言程序设计教程(张席)-第6章
return this.var; } } public class TestGI{ public static void main(String arsg[]){
MyInterf <String> mi = null; //声明接口对象 mi = new MyClass <String>("Java"); //通过子类实例化对象 System.out.println("内容:" + mi.getVar()) ; } }
23
第6章 泛型与集合 (3) 无需再学习新的API:借助泛型,只要了解了这些类的
使用方法,就可以将它们应用到很多数据类型中。如果知道了 LinkedList<String>的使用方法,那么当然也会知道 LinkedList<Double>怎么用,无需为每一种数据类型学习不同的 API。
(4) 增加代码重用性:也是借助泛型,就算对集合类中的元 素类型进行了修改,集合类相关的代码也几乎不用修改。
元素element1和element2都有 element1.equals(element2)=false。另外,Set最多有一个 null元素。此接口模仿了数学上的集合 概念。
Collection接口、List接口、Set接口以及相关类的关系如 图6.2所示。
19
第6章 泛型与集合
<interface> Collection
6.1.3 泛型接口
Java 中(Java5 之后)不仅可以定义泛型类,也可以定义泛型接口。 【例 6-1】 泛型接口的定义和使用示例。
interface MyInterf< T>{ //定义泛型接口 public T getVar() ; //定义抽象方法,返回值是泛型类型

《Java程序设计实例教程》课件第6章

《Java程序设计实例教程》课件第6章

【相关知识及注意事项】 1.Applet简介 2.Applet的生命周期 3.Applet程序的基本结构 4.HTML文件中与Applet相关的标记 5.Applet中输出文字的基本方法
6.2 “同页Applet间的通信”案例
【案例说明】 本案例建立两个Applet小应用程序,一个
完成发送信息功能,另一个完成接受信息功 能。程序运行界面如图6-4所示。
6.1 “绘制统计图 ”案例
【案例说明】 本 实 例 设 计 一 个 Applet 小 应 用 程 序 , 通 过 HTML向Applet传递参数,绘制出统计图1 饼状统计图
【案例目的】
(1)掌握JApplet类及实现一个简单Applet程序 的过程;
(2)掌握Applet小应用程序的基本结构及方法 在程序中的作用;
(3)掌握HTML文件中与Applet相关的标记; (4)掌握Applet小程序与网页之间的传值方法; (5)掌握Font类和Color类的常用方法及其使
用。。
【技术要点】
(1)在HTML文件中使用<param>标记,定义 参数,并指定参数的值;
(2)在Applet小应用程序的init()方法中,使用 getParameter()方法读取HTML文件中的参数值, 在paint()方法中利用画圆弧的方法绘制圆盘状 统计图。
图6-4 同页Applet间的通信
【案例目的】 学习并掌握同页Applet间的通信。
【技术要点】
通过getAppletContext()方法得到当前运行页的 环境上下文AppletContext对象,再通过这个对 象的getApplet()方法得到指定的Applet。
【相关知识及注意事项】 1.同页Applet间的通信 2.Applet与浏览器间的通信

JAVA程序设计教程(第七版)第6章

JAVA程序设计教程(第七版)第6章

Copyright ©2012 Pearson Education, Inc.Chapter 6More Conditionals and LoopsJava Software SolutionsFoundations of Program DesignSeventh EditionJohn Lewis William LoftusMore Conditionals and Loops•Now we can fill in some additional details regarding Java conditional and repetition statements •Chapter 6 focuses on:–the switch statement –the conditional operator –the do loop –the for loop–drawing with the aid of conditionals and loops –dialog boxesCopyright ©2012 Pearson Education, Inc.OutlineThe switch Statement The Conditional Operator The do Statement The for StatementDrawing with Loops and Conditionals Dialog BoxesCopyright ©2012 Pearson Education, Inc.The switch Statement•The switch statement provides another way to decide which statement to execute next•The switch statement evaluates an expression, then attempts to match the result to one of several possible cases•Each case contains a value and a list of statements •The flow of control transfers to statementassociated with the first case value that matchesCopyright ©2012 Pearson Education, Inc.The switch Statement•The general syntax of a switch statement is:switch ( expression ){case value1:statement-list1case value2:statement-list2case value3:statement-list3case ...}switch and case are reserved wordsIf expression matches value2,control jumps to hereCopyright ©2012 Pearson Education, Inc.The switch Statement•Often a break statement is used as the last statement in each case's statement list• A break statement causes control to transfer to the end of the switch statement•If a break statement is not used, the flow of control will continue into the next case•Sometimes this may be appropriate, but often we want to execute only the statements associated with one caseCopyright ©2012 Pearson Education, Inc.The switch Statementswitch (option){case 'A':aCount++;break;case 'B':bCount++;break;case 'C':cCount++;break;}•An example of a switch statement:Copyright ©2012 Pearson Education, Inc.The switch Statement• A switch statement can have an optional default case•The default case has no associated value and simply uses the reserved word default•If the default case is present, control will transfer to it if no other case value matches•If there is no default case, and no other valuematches, control falls through to the statement after the switchCopyright ©2012 Pearson Education, Inc.The switch Statement•The type of a switch expression must be integers, characters, or enumerated types•As of Java 7, a switch can also be used with strings •You cannot use a switch with floating point values •The implicit boolean condition in a switch statement is equality•You cannot perform relational checks with a switch statement•See GradeReport.javaCopyright ©2012 Pearson Education, Inc.Copyright ©2012 Pearson Education, Inc.//********************************************************************// GradeReport.java Author: Lewis/Loftus //// Demonstrates the use of a switch statement.//********************************************************************import java.util.Scanner;public class GradeReport {//-----------------------------------------------------------------// Reads a grade from the user and prints comments accordingly.//-----------------------------------------------------------------public static void main (String[] args){int grade, category;Scanner scan = new Scanner (System.in);System.out.print ("Enter a numeric grade (0 to 100): ");grade = scan.nextInt();category = grade / 10;System.out.print ("That grade is ");continueCopyright ©2012 Pearson Education, Inc.continueswitch (category){case 10:System.out.println ("a perfect score. Well done.");break ;case 9:System.out.println ("well above average. Excellent.");break ;case 8:System.out.println ("above average. Nice job.");break ;case 7:System.out.println ("average.");break ;case 6:System.out.println ("below average. You should see the");System.out.println ("instructor to clarify the material "+ "presented in class.");break ;default :System.out.println ("not passing.");}}}Copyright ©2012 Pearson Education, Inc.continueswitch (category){case 10:System.out.println ("a perfect score. Well done.");break ;case 9:System.out.println ("well above average. Excellent.");break ;case 8:System.out.println ("above average. Nice job.");break ;case 7:System.out.println ("average.");break ;case 6:System.out.println ("below average. You should see the");System.out.println ("instructor to clarify the material "+ "presented in class.");break ;default :System.out.println ("not passing.");}}}Sample RunEnter a numeric grade (0 to 100): 91That grade is well above average. Excellent.OutlineThe switch Statement The Conditional Operator The do Statement The for StatementDrawing with Loops and Conditionals Dialog BoxesCopyright ©2012 Pearson Education, Inc.The Conditional Operator•The conditional operator evaluates to one of two expressions based on a boolean condition •Its syntax is:condition ? expression1: expression2•If the condition is true, expression1isevaluated; if it is false, expression2is evaluated •The value of the entire conditional operator is the value of the selected expressionCopyright ©2012 Pearson Education, Inc.The Conditional Operator•The conditional operator is similar to an if-else statement, except that it is an expression that returns a value •For example:larger = ((num1 > num2) ? num1 : num2);•If num1is greater than num2, then num1is assigned to larger ; otherwise, num2is assigned to larger •The conditional operator is ternary because it requires three operandsCopyright ©2012 Pearson Education, Inc.The Conditional Operator•Another example:•If count equals 1, the "Dime" is printed•If count is anything other than 1, then "Dimes" is printedSystem.out.println ("Your change is " + count +((count == 1) ? "Dime" : "Dimes"));Copyright ©2012 Pearson Education, Inc.Quick CheckCopyright ©2012 Pearson Education, Inc.Express the following logic in a succinct manner using the conditional operator.if (val <= 10)System.out.println("It is not greater than 10.");elseSystem.out.println("It is greater than 10.");Quick CheckCopyright ©2012 Pearson Education, Inc.Express the following logic in a succinct manner using the conditional operator.if (val <= 10)System.out.println("It is not greater than 10.");elseSystem.out.println("It is greater than 10.");System.out.println("It is" +((val <= 10) ? " not" : "") +" greater than 10.");OutlineThe switch Statement The Conditional Operator The do Statement The for StatementDrawing with Loops and Conditionals Dialog BoxesCopyright ©2012 Pearson Education, Inc.The do Statement• A do statement has the following syntax:do {statement-list ;}while (condition );•The statement-list is executed once initially, and then the condition is evaluated •The statement is executed repeatedly until the condition becomes falseCopyright ©2012 Pearson Education, Inc.Logic of a do Loop truecondition evaluatedstatementfalseCopyright ©2012 Pearson Education, Inc.The do Statement•An example of a do loop:•The body of a do loop executes at least once •See ReverseNumber.javaint count = 0;do {count++;System.out.println (count);} while (count < 5);Copyright ©2012 Pearson Education, Inc.Copyright ©2012 Pearson Education, Inc.//********************************************************************// ReverseNumber.java Author: Lewis/Loftus //// Demonstrates the use of a do loop.//********************************************************************import java.util.Scanner;public class ReverseNumber {//-----------------------------------------------------------------// Reverses the digits of an integer mathematically.//-----------------------------------------------------------------public static void main (String[] args){int number, lastDigit, reverse = 0;Scanner scan = new Scanner (System.in);continueCopyright ©2012 Pearson Education, Inc.continueSystem.out.print ("Enter a positive integer: ");number = scan.nextInt();do {lastDigit = number % 10;reverse = (reverse * 10) + lastDigit;number = number / 10;}while (number > 0);System.out.println ("That number reversed is " + reverse);}}Copyright ©2012 Pearson Education, Inc.continueSystem.out.print ("Enter a positive integer: ");number = scan.nextInt();do{lastDigit = number % 10;reverse = (reverse * 10) + lastDigit;number = number / 10;}while (number > 0);System.out.println ("That number reversed is " + reverse);}}Sample Run Enter a positive integer: 2896That number reversed is 6982Comparing while and dostatementtrue falsecondition evaluatedThe while Loop truecondition evaluatedstatementfalseThe do LoopCopyright ©2012 Pearson Education, Inc.OutlineThe switch Statement The Conditional Operator The do Statement The for StatementDrawing with Loops and Conditionals Dialog BoxesCopyright ©2012 Pearson Education, Inc.The for Statement• A for statement has the following syntax:for ( initialization ; condition ; increment )statement ;The initialization is executed once before the loop beginsThe statement is executed until thecondition becomes falseThe increment portion is executedat the end of each iterationCopyright ©2012 Pearson Education, Inc.Logic of a for loopstatement true condition evaluatedfalseincrementinitializationCopyright ©2012 Pearson Education, Inc.The for Statement• A for loop is functionally equivalent to the following while loop structure:initialization ;while ( condition ){statement ;increment ;}Copyright ©2012 Pearson Education, Inc.The for Statement•An example of a for loop:for (int count=1; count <= 5; count++)System.out.println (count);•The initialization section can be used to declare a variable•Like a while loop, the condition of a for loop is tested prior to executing the loop body•Therefore, the body of a for loop will execute zero or more timesCopyright ©2012 Pearson Education, Inc.The for Statement•The increment section can perform any calculation:for (int num=100; num > 0; num -= 5)System.out.println (num);• A for loop is well suited for executing statements a specific number of times that can be calculated or determined in advance •See Multiples.java •See Stars.javaCopyright ©2012 Pearson Education, Inc.Copyright ©2012 Pearson Education, Inc.//********************************************************************// Multiples.java Author: Lewis/Loftus //// Demonstrates the use of a for loop.//********************************************************************import java.util.Scanner;public class Multiples {//-----------------------------------------------------------------// Prints multiples of a user-specified number up to a user-// specified limit.//-----------------------------------------------------------------public static void main (String[] args){final int PER_LINE = 5;int value, limit, mult, count = 0;Scanner scan = new Scanner (System.in);System.out.print ("Enter a positive value: ");value = scan.nextInt();continueCopyright ©2012 Pearson Education, Inc.continueSystem.out.print ("Enter an upper limit: ");limit = scan.nextInt();System.out.println ();System.out.println ("The multiples of " + value + " between " +value + " and " + limit + " (inclusive) are:");for (mult = value; mult <= limit; mult += value){System.out.print (mult + "\t");// Print a specific number of values per line of output count++;if (count % PER_LINE == 0)System.out.println();}}}Copyright ©2012 Pearson Education, Inc.continueSystem.out.print ("Enter an upper limit: ");limit = scan.nextInt();System.out.println ();System.out.println ("The multiples of " + value + " between " +value + " and " + limit + " (inclusive) are:");for (mult = value; mult <= limit; mult += value){System.out.print (mult + "\t");// Print a specific number of values per line of output count++;if (count % PER_LINE == 0)System.out.println();}}}Sample RunEnter a positive value: 7Enter an upper limit: 400The multiples of 7 between 7 and 400 (inclusive) are:714212835424956637077849198105112119126133140147154161168175182189196203210217224231238245252259266273280287294301308315322329336343350357364371378385392399Copyright ©2012 Pearson Education, Inc.//********************************************************************// Stars.java Author: Lewis/Loftus //// Demonstrates the use of nested for loops.//********************************************************************public class Stars {//-----------------------------------------------------------------// Prints a triangle shape using asterisk (star) characters.//-----------------------------------------------------------------public static void main (String[] args){final int MAX_ROWS = 10;for (int row = 1; row <= MAX_ROWS; row++){for (int star = 1; star <= row; star++)System.out.print ("*");System.out.println();}}}Copyright ©2012 Pearson Education, Inc.//********************************************************************// Stars.java Author: Lewis/Loftus //// Demonstrates the use of nested for loops.//********************************************************************public class Stars{//-----------------------------------------------------------------// Prints a triangle shape using asterisk (star) characters.//-----------------------------------------------------------------public static void main (String[] args){final int MAX_ROWS = 10;for (int row = 1; row <= MAX_ROWS; row++){for (int star = 1; star <= row; star++)System.out.print ("*");System.out.println();}}}Output*******************************************************Quick CheckCopyright ©2012 Pearson Education, Inc.Write a code fragment that rolls a die 100 times and counts the number of times a 3 comes up.Quick CheckCopyright ©2012 Pearson Education, Inc.Write a code fragment that rolls a die 100 times and counts the number of times a 3 comes up.Die die = new Die();int count = 0;for (int num=1; num <= 100; num++)if (die.roll() == 3)count++;Sytem.out.println (count);The for Statement•Each expression in the header of a for loop is optional•If the initialization is left out, no initialization is performed•If the condition is left out, it is always considered to be true, and therefore creates an infinite loop •If the increment is left out, no increment operation is performedCopyright ©2012 Pearson Education, Inc.For-each Loops• A variant of the for loop simplifies the repetitive processing of items in an iterator •For example, suppose bookList is an ArrayList<Book>object•The following loop will print each book:for (Book myBook : bookList)System.out.println (myBook);•This version of a for loop is often called a for-each loopCopyright ©2012 Pearson Education, Inc.For-each Loops• A for-each loop can be used on any object that implements the Iterable interface•It eliminates the need to retrieve an iterator and call the hasNext and next methods explicitly•It also will be helpful when processing arrays, which are discussed in Chapter 8Copyright ©2012 Pearson Education, Inc.Quick CheckCopyright ©2012 Pearson Education, Inc.Write a for-each loop that prints all of the Student objects in an ArrayList<Student>object called roster .Quick CheckCopyright ©2012 Pearson Education, Inc.Write a for-each loop that prints all of the Student objects in an ArrayList<Student>object called roster .for (Student student : roster)System.out.println (student);OutlineThe switch Statement The Conditional Operator The do Statement The for StatementDrawing with Loops and Conditionals Dialog BoxesCopyright ©2012 Pearson Education, Inc.Drawing Techniques•Conditionals and loops enhance our ability to generate interesting graphics •See Bullseye.java•See BullseyePanel.java •See Boxes.java•See BoxesPanel.javaCopyright ©2012 Pearson Education, Inc.Copyright ©2012 Pearson Education, Inc.//********************************************************************// Bullseye.java Author: Lewis/Loftus //// Demonstrates the use of loops to draw.//********************************************************************import javax.swing.JFrame;public class Bullseye {//-----------------------------------------------------------------// Creates the main frame of the program.//-----------------------------------------------------------------public static void main (String[] args){JFrame frame = new JFrame ("Bullseye");frame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);BullseyePanel panel = new BullseyePanel();frame.getContentPane().add(panel);frame.pack();frame.setVisible(true );}}Copyright ©2012 Pearson Education, Inc.//********************************************************************// Bullseye.java Author: Lewis/Loftus //// Demonstrates the use of loops to draw.//********************************************************************import javax.swing.JFrame;public class Bullseye {//-----------------------------------------------------------------// Creates the main frame of the program.//-----------------------------------------------------------------public static void main (String[] args){JFrame frame = new JFrame ("Bullseye");frame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);BullseyePanel panel = new BullseyePanel();frame.getContentPane().add(panel);frame.pack();frame.setVisible(true );}}Copyright ©2012 Pearson Education, Inc.//********************************************************************// BullseyePanel.java Author: Lewis/Loftus //// Demonstrates the use of conditionals and loops to guide drawing.//********************************************************************import javax.swing.JPanel;import java.awt.*;public class BullseyePanel extends JPanel {private final int MAX_WIDTH = 300, NUM_RINGS = 5, RING_WIDTH = 25;//-----------------------------------------------------------------// Sets up the bullseye panel.//-----------------------------------------------------------------public BullseyePanel (){setBackground (Color.cyan);setPreferredSize (new Dimension(300,300));}continueCopyright ©2012 Pearson Education, Inc.continue//-----------------------------------------------------------------// Paints a bullseye target.//-----------------------------------------------------------------public void paintComponent (Graphics page){super .paintComponent (page);int x = 0, y = 0, diameter = MAX_WIDTH;page.setColor (Color.white);for (int count = 0; count < NUM_RINGS; count++){if (page.getColor() == Color.black) // alternate colorspage.setColor (Color.white);elsepage.setColor (Color.black);page.fillOval (x, y, diameter, diameter);diameter -= (2 * RING_WIDTH);x += RING_WIDTH;y += RING_WIDTH;}// Draw the red bullseye in the center page.setColor (Color.red);page.fillOval (x, y, diameter, diameter);}}Copyright ©2012 Pearson Education, Inc.//********************************************************************// Boxes.java Author: Lewis/Loftus //// Demonstrates the use of loops to draw.//********************************************************************import javax.swing.JFrame;public class Boxes {//-----------------------------------------------------------------// Creates the main frame of the program.//-----------------------------------------------------------------public static void main (String[] args){JFrame frame = new JFrame ("Boxes");frame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);BoxesPanel panel = new BoxesPanel();frame.getContentPane().add(panel);frame.pack();frame.setVisible(true );}}Copyright ©2012 Pearson Education, Inc.//********************************************************************// Boxes.java Author: Lewis/Loftus //// Demonstrates the use of loops to draw.//********************************************************************import javax.swing.JFrame;public class Boxes {//-----------------------------------------------------------------// Creates the main frame of the program.//-----------------------------------------------------------------public static void main (String[] args){JFrame frame = new JFrame ("Boxes");frame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);BoxesPanel panel = new BoxesPanel();frame.getContentPane().add(panel);frame.pack();frame.setVisible(true );}}Copyright ©2012 Pearson Education, Inc.//********************************************************************// BoxesPanel.java Author: Lewis/Loftus //// Demonstrates the use of conditionals and loops to guide drawing.//********************************************************************import javax.swing.JPanel;import java.awt.*;import java.util.Random;public class BoxesPanel extends JPanel {private final int NUM_BOXES = 50, THICKNESS = 5, MAX_SIDE = 50;private final int MAX_X = 350, MAX_Y = 250;private Random generator;//-----------------------------------------------------------------// Sets up the drawing panel.//-----------------------------------------------------------------public BoxesPanel (){generator = new Random();setBackground (Color.black);setPreferredSize (new Dimension(400, 300));}continueCopyright ©2012 Pearson Education, Inc.continue//-----------------------------------------------------------------// Paints boxes of random width and height in a random location.// Narrow or short boxes are highlighted with a fill color.//-----------------------------------------------------------------public void paintComponent(Graphics page){super .paintComponent (page);int x, y, width, height;for (int count = 0; count < NUM_BOXES; count++){x = generator.nextInt(MAX_X) + 1;y = generator.nextInt(MAX_Y) + 1;width = generator.nextInt(MAX_SIDE) + 1;height = generator.nextInt(MAX_SIDE) + 1;continueCopyright ©2012 Pearson Education, Inc.continueif (width <= THICKNESS) // check for narrow box {page.setColor (Color.yellow);page.fillRect (x, y, width, height);}elseif (height <= THICKNESS) // check for short box {page.setColor (Color.green);page.fillRect (x, y, width, height);}else {page.setColor (Color.white);page.drawRect (x, y, width, height);}}}}OutlineThe switch Statement The Conditional Operator The do Statement The for StatementDrawing with Loops and Conditionals Dialog BoxesCopyright ©2012 Pearson Education, Inc.Dialog Boxes• A dialog box is a window that appears on top of any currently active window •It may be used to:–convey information –confirm an action–allow the user to enter data –pick a color –choose a file• A dialog box usually has a specific, solitary purpose, and the user interaction with it is briefCopyright ©2012 Pearson Education, Inc.Dialog Boxes•The JOptionPane class provides methods that simplify the creation of some types of dialog boxes •See EvenOdd.java•Specialized dialog boxes for choosing colors and files are covered in Chapter 9Copyright ©2012 Pearson Education, Inc.Copyright ©2012 Pearson Education, Inc./********************************************************************// EvenOdd.java Author: Lewis/Loftus //// Demonstrates the use of the JOptionPane class.//********************************************************************import javax.swing.JOptionPane;public class EvenOdd {//-----------------------------------------------------------------// Determines if the value input by the user is even or odd.// Uses multiple dialog boxes for user interaction.//-----------------------------------------------------------------public static void main (String[] args){String numStr, result;int num, again;continueCopyright ©2012 Pearson Education, Inc.continuedo {numStr = JOptionPane.showInputDialog ("Enter an integer: ");num = Integer.parseInt(numStr);result = "That number is " + ((num%2 == 0) ? "even" : "odd");JOptionPane.showMessageDialog (null , result);again = JOptionPane.showConfirmDialog (null , "Do Another?");}while (again == JOptionPane.YES_OPTION);}}continuedo{numStr = JOptionPane.showInputDialog ("Enter an integer: ");num = Integer.parseInt(numStr);result = "That number is " + ((num%2 == 0) ? "even" : "odd");JOptionPane.showMessageDialog (null, result);again = JOptionPane.showConfirmDialog (null, "Do Another?");}while (again == JOptionPane.YES_OPTION);}}Summary•Chapter 6 focused on:–the switch statement–the conditional operator–the do loop–the for loop–drawing with the aid of conditionals and loops–dialog boxesCopyright ©2012 Pearson Education, Inc.Copyright ©2012 Pearson Education, Inc.。

java第6章

java第6章

清华大学出版社
Java程序设计教程
包的引用
Java中的语言核心包ng包,包 含常用类的定义,在程序运行时将自 动引入,不需要使用import语句。 使用import语句引用某包中的所有类 并不会自动引入其子包中的类, 应使 用两条import语句分别引入。
电脑基础· 实例· 上机系列丛书 清华大学出版社
电脑基础· 实例· 上机系列丛书 清华大学出版社
Java程序设计教程
包的声明
包名通常都使用小写。 在Java中的任何一个源文件最多只能 有一个包声明语句。 包名前可以带路径,形成多层次命名 空间。
电脑基础· 实例· 上机系列丛书
清华大学出版社
Java程序设计教程
包的声明
包的名字有层次关系,各层间以点分 隔,包层次必须与Java开发系统的文 件结构相同。 【例6-1】 多层次包的建立(光盘:\源 文件\第6章\例6-1.txt)。 建立了一个多层次包 China.beijing.Tsinghua。说明:
包的声明
包的声明格式为: package 包名1[包2[包3…..]]; 例如:Package rmation 包声明时,应注意以下几点:
电脑基础· 实例· 上机系列丛书
清华大学出版社
Java程序设计教程
包的声明
包的声明语句必须放在程序源文件的 开始位置,包语句之前只能有注释语 句,表示该文件中声明的全部类都属 于这个包。 可以在不同的文件中使用相同的包声 明语句,这时不同文件中定义的类都 放在了同一个包中。
Java程序设计教程
包的声明
要使用程序包,即将程序中出现的类放 在指定的包中,应首先在程序的当前目 录中创建相应的子目录(可以是多层目 录结构),然后将相应的源文件存放在 这个文件夹中,再编译这个程序,就可 形成用户自己的包。

Java语言程序设计基础教程课件(第6章)

Java语言程序设计基础教程课件(第6章)
通过滚动条来观察每个组件
只能向滚动面板添加一个组件
构造方法
ScrollPane() ScrollPane(int a)
a的取值: 1)SCROLLBARS_ALWAYS 、
2)SCROLLBARS_AS_NEEDED、
3)SCROLLBARS_NEVER
P134【例6-3】使用ScrollPane容器
con.add(String s,Component b) con.add(Component b,String s)

card.show(con,s) card.first(con) st(con) card.previous(con) card.next(con)
Container(容器)的子类,属内层容器
在外层容器内部实现分块布局
默认布局是FlowLayout布局
常用方法同Frame
java.awt.ScrollPane类——滚动面板
P133 【例6-2】使用Panel容器
6.3.3 ScrollPane
java.awt.ScrollPane——滚动面板
但是它的主要功能是容纳其它组件和容器
容器通过add()方法向容器中添加组件。
有三种类型的常用容器:
Frame、 Panel、 ScrollPane。
6.3.1 Frame
Frame类是Container类的间接子类
可以向窗口添加组件
顶层容器,不容许被添加
默认布局是BorderLayout
方法说明
绘制组件
重绘组件 设置组件的大小和位置 设置组件可见性 设置鼠标指向组件时的光 标形状。 将变化后的界面显示出来 更新组件

JAVA程序设计教程 第6章

JAVA程序设计教程 第6章

//最终异常处理代码
}
21
第6章
异常处理
1) try语句
在try语句后边有一对花括号,括起一个程序段,该程 序段指出了该程序段后面的catch( )方法所捕获的异常的范围。 该程序段中,调用了一个或多个可能产生异常的方法。
22
第6章
异常处理
2) catch( )方法
在try语句后面通常要跟有一个或多个catch( )方法,用 来处理try块内生成的异常事件。该方法只有一个参数:某 异常类的对象。这种异常类应是Throwable的子类。catch( ) 方法的方法体中给出了处理异常的语句。处理异常时常用下
27
第6章
异常处理
catch(ArrayIndexOutOfBoundsException e2) {
System.out.println(“Exception2:”+e2); } finally{ System.out.println(“Program is end\n”);
(Exception)。
5
第6章
异常处理
Java作为一个完全面向对象的语言,异常处理也是采用
面向对象的方法。所有的异常都是以类的形式存在的,除了 内置的异常类之外,Java也允许自己定义异常类。如果在一
个方法的运行过程中发生了异常,则这个方法将生成一个代
表该异常的对象,并把它提交给正在运行这个方法的系统, 这个过程称为抛出异常。系统在运行的时候查找处理异常的 方法,这个过程称为捕获异常。异常对象中包含有重要的信 息,包括发生异常事件的类型和异常发生时的程序运行状态。 对待异常通常不是简单地结束程序,Java语言的异常处理方 法有下列主要优点:
问题以统一的方式进行处理,不仅增加了程序的稳定性和可

Java程序设计经典教程课件第六章

Java程序设计经典教程课件第六章

3、Font Font类可以帮助定义控件字体的颜色和大小
(1)Font的构造器 Font( String name, int style, int size),创建一个 指定字体的Font对象。 name, Font对象的字体,如宋体等。 style,字型,用Font类中的常量PLAIN,BOLD,ITALIC来表 示; size,字号,表示大小 Font myfont = new Font( “宋体”,Font.BOLD+Font.ITALIC,72);
排列方式中,居中是默认方式。
FlowLayout myLayout = new FlowLayout(); ct.setLayout(myLayout);
FlowLayout myLayout = new FlowLayout(FlowLayout.LEFT); ct.setLayout(myLayout); FlowLayout myLayout = new FlowLayout(FlowLayout. RIGHT); ct.setLayout(myLayout);

事件源Event sources : 事件的产生者。典型的事件源是 组件。例如,在Button组件上点击鼠标会产生以这个 Button为源的一个事件:ActionEvent。 事件处理Event handlers :事件处理器,接收事件对象并 对其进行处理的方法。


一个事件能够送给多个事件处理event handlers; 一个事件处理Event handler可以监听多个组件产生 的事件。

二、边界布局管理器(BorderLayout) (1)这是Window,Frame,Dialog的默认布局管理器
(2)布局分为五个位置:CENTER、EAST、WEST、NORTH、 SOUTH,可以把组件放在任意五个位置中的一个,缺省位置是 CENTER。 (3)四周的组件先被放置,剩余的空间由位于中间的组件 占用;当容器的大小改变时,四周组件的厚度不会被改变,而 中间组件的大小需要改变。

Java程序设计教程第6章6.2 类的方法

Java程序设计教程第6章6.2  类的方法

System.out.print("总成绩:" + total);
}
Sysstheomw.Aouvgt.(p)rint("\n平均分: " + avg); }
20/61
现场编程
编写手机类(Phone)
可以下载音乐,可以播放这些音乐,可以进 行充电
重用电池类方法(Cell) 编写测试类(TestPhone)
public static void main(String[] args){

Student stu = new Student(); name = "神仙姐姐";
stu.sex
sex = 'F'; age = 18;
Байду номын сангаас
stu.age
stu.show();
}
}
3/61
实现计算平均分和课程总成绩 实现MyShopping系统菜单切换 实现MyShopping系统入口程序 实现客户信息的添加和显示 修改客户姓名 对客户姓名排序 实现模拟账户存取款功能
28/61
课堂操作—添加并生成JavaDoc文档
练习
需求说明
为我行我素购物系统的Manager类、Menu类添加 JavaDoc注释
使用MyEclipse工具,生成两个类的JavaDoc文档
29/61
工作原理
新鲜桃苹梨汁果汁
输 出 三 种 果 汁
为什么要用带参数的方法
30/61
如何使用带参数的方法3-1
* @author
* @version 2.0 2013/06/01
*/

《Java程序设计案例教程》第06章

《Java程序设计案例教程》第06章

String school = "无锡职业技术学院";
s.showInfo();
public void showInfo() {
} }
showDetail();
System.out.println("new address:" + address + ",old address:"
+ super.address + ",school:" + school);
6.1 类的继承性
Java程序设计案例教程
幻灯片 3,共38页
3
6.1.1 继承的概念
❖ 继承是面向对象程序设计的一个重要特征 ❖ 若类B继承了类A
▪ 被继承的类A可称为基类、父类或超类 ▪ 继承类B称为派生类或子类
❖ 子类可以
▪ 继承基类的属性和方法 ▪ 增加基类没有的属性和方法 ▪ 重写基类的已有方法
6.2 继承的规则
❖ 6.2.1 成员变量的继承
▪ 属性的继承和扩展 ▪ 属性隐藏
❖ 6.2.2 成员方法的继承
▪ 方法的继承和扩展 ▪ 成员方法的重写
❖ 6.2.3 this和super关键字
Java程序设计案例教程
幻灯片 7,共38页
7
6.2.1 成员变量的继承
❖ 1、属性的继承和扩展 ❖ Circle类
Java程序设计案例教程
幻灯片 12,共38页
12
super
❖ super
▪ super只用在有继承关系的场合,意思是“父”,而不是“祖父” • 直接基类的成员变量:super.成员变量 • 直接基类的成员方法:super.成员方法([参数列表]) • 直接基类的构造方法:super([参数列表])

Java程序设计精编教程(第3版) 第6章-子类与继承

Java程序设计精编教程(第3版) 第6章-子类与继承
2021/10/18 1
例子3
在下面的例子3中,子类B重写了父类的computer() 方法,运行效果如图6.4。
2021/10/18 1
§6.4 super关键字 子类可以隐藏从父类继承的成员变量和方法,
如果在子类中想使用被子类隐藏的成员变量或方 法就可以使用关键字super。
2021/10/18 1
2021/10/18 1
例子1
例子1中的Student类是People类的子类。程序 运行效果如图6.1。
2021/10/18 1
§6.2.2 子类和父类不在同一包中的继承性
如果子类和父类不在同一个包中,那么,子 类继承了父类的protected、public成员变量做 为子类的成员变量,并且继承了父类的 protected、public方法为子类的方法,继承的 成员或方法的访问权限保持不变。
2021/10/18 1
§6.2 子类的继承性
所谓子类继承父类的成员变量作为自己的 一个成员变量,就好象它们是在子类中直接声 明一样,可以被子类中自己定义的任何实例方 法操作。
所谓子类继承父类的方法作为子类中的一个 方法,就象它们是在子类中直接定义了一样, 可以被子类中自己定义的任何实例方法调用。
《Java程序设计精编教程(第3版)》 第6章
子类与继承
导读
主要内容 • 子类与父类 • 子类的继承性 • 成员变量的隐藏和方法重写 • super关键字 • final关键字 • 对象的上转型对象 • 继承与多态 • abstract类与abstract方法 • 面向抽象编程 • 开-闭原则
2021/10/18 1
§6.3.2 方法重写(Override)
子类通过重写可以隐藏已继承的实例方法。 1.重写的语法规则
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

6.2 图形绘制
6.2.1 6.2.2 6.2.3 6.2.4 直线 矩形 椭圆 多边形
6.2.1 直线
在Java的java.awt.Graphics类里面提供画线 功能的是drawLine函数,其具体的调用格式 如下: drawLine(int x1,int y1,int x2,int y2) 该方法需要四个参数,其中(x1,y1)表 示线段的起点坐标,(x2,y2)表示线段的 终点坐标。
6.2.4 多边形
还有一种绘图的方式是以一个类Polygon的对象作 为输入参数传给drawPolygon或fillPolygon方法的。 如下所示: drawPolygon(Polygon p) fillPolygon(Polygon p) 类Polygon是Java在java.awt包中提供的一个工具 类,它重载了两种构造函数来创建它的对象:一 种是不带参数列表,另一种的参数列表与上面 drawPolygon或fillPolygon方法的参数列表相同。 如: Polygon p1=new Polygon(); Polygon p2=new Polygon(poly_2x,poly_2y,poly_n); p1对象可以用类Polygon中定义的addpoint方法将 多边形的各个顶点坐标添加到该对象中。
小结
本章以AWT图形设计包为例介绍了Java中如 何绘制图形以及文本和颜色等属性的设置。 在程序实现时采用图形绘制功能可以使得应 用程序更加具有吸引力。实践说明,良好的 图形效果和丰富的色彩让用户使用起来赏心 悦目。因此,在Java界面的实现过程中,利 用Java的图形绘制功能尽量实现比较美观实 用的界面也是一项不容忽视的工作。
6.4.2 颜色
Java语言支持各种彩色效果,从8位的伪彩 色到24位的真彩色都支持。Java在java.awt 中定义了一个类Color,专门用来处理各种 色彩信息。类Color中重载了三种构造函数 来创建它的对象。 (1)以三个int型的整数,这三个参数分别代 表了红、绿、蓝三种颜色的值,介于0~ 255之间,创建的对象将以这三种颜色为基 色混合组成。如下面这个对象是浅灰色的: Color gray=new Color(192,192,192);
6.3 文本
这些术语以及与各方法之间的关系用图表示 如图6-5所示。
上一行文本
Fj
下一行文本
上升线 getAscent() getDescent() getLeading() getHerght() 基线 下降线
6.4 属性设置
6.4.1 字体 6.4.2 颜色
6.4.1 字体
Java中对字体的设置是通过类Font来进行的, 该类也包括在java.awt包中。创建Font对象 的方法如下: Font ft=new Font(String name,int style,int size); 它有三个输入参数,name是设置的字体名 称,如“Times New Roman”;style是设置 的字型,它不是一个数字,而是类Font中的 静态变量,如Font BOLD;size是以象素为 单位的文字大小。
6.4.2 颜色
为了方便编程者使用常见的颜色,类Color 中定义了几个静态变量,分别代表不同的颜 色,可以直接使用。 这些静态变量有: Color.black 黑色 Color.blue 蓝色 Color.cyan 青色 Color.darkGray 深灰色 Color.gray 灰色 Color.green 绿色 Color.lightGray 浅灰色 Color.magenta 紫红色 Color.orange 橙色 Color.pink 粉红色 Color.red 红色 Color.white白色 Color.yellow 黄色
6.3 文本
2. 获取字体信息 Java可以通过FontMetrics类来控制文字在小应用 程序画面上的显示位置。创建FontMetrics对象的 方式是调用类Graphics中的getFontMetrics方法, 如: FontMetrics ftm=g.getFontMetrics(); 文字处理有关的几个术语: (1)Leading:两行文字之间的间隔。 (2)BaseLine:用于对齐一行文字的底线。 (3)Ascent:从字符顶部到BaseLine的距离。 (4)Descent:从字符底部到BaseLine的距离。 (5)Height:Leading、Ascent和Descent三者的和。
6.3 文本
1. 绘制文本 Java中绘制文本时,一般先考虑是否可直接 使用面向文本的Component对象,如: Label、TextField和TextArea等。如果这些类 都不适合,则再考虑采用Graphics类中的 drawBytes()、drawChars()或drawString()等 来绘制文本。例如: g.drawString("Hello World!",x,y);
6.2.4 多边形
在java.awt.Graphics类中绘制多边形的格式 如下: drawPolygon(int xPoints[],int yPoints[],int nPoints) fillPolygon(int xPoints[],int yPoints[],int nPoints) 两个方法分别是以线条方式和填充方式画多 边形。xPoints与yPoints为两个数组,保存 多边形各个顶点的x坐标和y坐标,两个数组 的长度应该相同。nPoints指定该多边形有 多少个顶点,其值不能大于数组的长度,系 统根据nPoints的值从数组中取指定个元素。
Java程序设计教程
第6章 Java图形设计
6.1 6.2 6.3 6.4 图形坐标 图形绘制 文本 属性设置
6.1 图形坐标
Java在java.awt包中定义了一个类Graphics, 在这个类中封装了所有的有关图形绘制和处 理的方法。为了进行图形操作,需要在程序 的开头引入包含这个类的包: Import java.awt.*; Java中的坐标间距是以像素为单位的,这就 决定了Java中的坐标值只能为整数。同时, Java语言不支持三维坐标系,虽然可以采用 阴影达到一定的立体效果,但Java没有提供 相应的高度或深度参数。
6.2.2 矩形
(2)圆角矩形。 圆角矩形,就是指矩形的四个顶角呈圆弧状,每 个圆弧其实是由四分之一的圆弧所构成。画圆角 矩形的两个方法的调用格式如下: drawRoundRect(int x,int y,int width,int height,int arcWidth,int arcHeight) fillRoundRect(int x,int y,int width,int height,int arcWidth,int arcHeight) 它们除了有和画普通矩形含义相同的四个参数外, 还多了两个用来描述圆角性质的参数。其中 arcWidth代表了圆角弧的长轴,arcHeight代表了 圆角弧的短轴。当arcWidth=width并且 arcHeight=height时,圆角矩形就变成了椭圆。
6.2.2 矩形
(3)立体矩形。 立体矩形也可以说是三维矩形。其实Java中的立 体矩形并非真正的三维图形,而仅仅是在矩形的 边框上增加一点阴影,使矩形看上去相对表平面 好像有凸出或凹下的效果。其函数的调用格式如 下: draw3DRect(int x,int y,int width,int height,boolean raised) draw3DRect(int x,int y,int width,int height,boolean raised) 这两个函数中前四个参数与drawRect函数中所用 的参数是一样的。第五个参数raised是定义该立体 矩形是具有凸出(true)还是凹下(false)的效 果,由于Java立体矩形中的阴影实在太薄,立体 效果当然也就不太明显。
6.2.3 椭圆
在Java中绘制椭圆的函数是把该椭圆的外接 矩形作为参数,其调用格式与绘制普通矩形 的函数相似: drawOval(int x,int y,int width,int height) fillOval(int x,int y,int width,int height) 这里要特别注意:x和y不是椭圆的圆心坐标, 而是该椭圆外接矩形的左上角Байду номын сангаас坐标。因此, 画椭圆时应该把椭圆看成是一个矩形对待, 这将有助于在坐标系统中定位椭圆。另外, Graphics类不专门提供画圆的函数,而只需 将width与height参数设置成相等就可了。
6.4.1 字体
类Font定义了三个静态常量来设置字型,分 别为:Font.BOLD、Font.ITALIC和 Font.PLAIN。三者分别代表粗体、斜体和普 通型。它们除了可以单独使用外,Java还允 许用加号将它们连接起来组合使用。如: Font ft=new Font("Courier",Font.BOLD+Font.ITALIC,18); 该语句的功能是创建一个字体为Courier, 字型为粗体加斜体,大小为18号的Font对 象。
6.2.2 矩形
(1)普通矩形。 画普通矩形需要调用drawRect或者fillRect 函数,具体调用格式如下: drawRect(int x,int y,int width,int height) fillRect(int x,int y,int width,int height) 其中前两个参数分别表示矩形的左上角坐标 x和y,后两个参数分别表示矩形的宽度和高 度。
6.4.2 颜色
(2)以一个int型值为参数,这个参数一般以 十六进制表示,它的16至23位代表红色值, 8~15位代表绿色值,而0~7位代表蓝色值, 创建的对象是一个混合色。如: Color gray=new Color(0xffc0c0c0); (3)以三个float型值为参数,分别代表了红、 绿、蓝三种颜色的值,介于0.0~1.0之间, 创建的对象也是一个混合色,如: Color gray=new Color(0.753, 0.753, 0.753);
相关文档
最新文档