Java程序设计项目教程(第二版)答案_第1页
Java程序设计项目教程(第二版)答案_第2页
Java程序设计项目教程(第二版)答案_第3页
Java程序设计项目教程(第二版)答案_第4页
Java程序设计项目教程(第二版)答案_第5页
已阅读5页,还剩81页未读 继续免费阅读

下载本文档

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

文档简介

Java程序设计项目教程(第二版)-参考答案

项目1

一、思考题

1.Java程序有几种版本,分别是什么?

Java有三种版本,分别是J2ME、J2SE、J2EE

2.Java程序有何特点?

Java语言的特点如下:

①面向对象:支持代码继承及重用,是完全面向对象的,它不支持类似C

语言那样的面向过程的程序设“技术。

②解释执行:Java解释器(运行系统)能直接运行目标代码指令。

③平台无关:Java源程序被编译成一种高层次的与机器无关的Byte-codes

格式语言,被设计在Java虚拟机上运行。

④多线程:Java提供的多线程功能使得在一个程序里可同时执行多个小任

务。多线程带来的好处是可以有更好的交互性能和实时控制性能。

⑤健壮性:Java致力于检查程序在编译和运行时的错误,类型检查帮助检

查出许多开发早期出现的错误。

3.什么是JVM,为什么需要JVM?

JVM即Javn虚拟机,是一台可以存在于不同的真实的软、硬件环境下的虚

拟的计算机,其功能是将字节码解释为真实平台能执行的指令。Java正是通过

虚拟机JVM技术,实现了与平台无关,实现“编写一次,到处运行”。因此,

任何平台只要安装相应的Java虚拟机环境,就能运行Java程序。

4.如何理解Java程序的基本结构?

①语句packagepl;是建立一个包(文件夹),生成的类文件将存放于包

中。

②程序第一行publicclass类名{},是一个类定义语句。public关键字

指明类的访问方式为公有,也就是在整个程序内都可以访问到它。如果将类定

义为public,则类其名称必须与主文件名一致,并且大小写敏感。

③类后大括号内可以定义类的成员和方法,对于一个可执行的Java类,

main方法是必需的,而且该main方法必须是公有(public)、静态(static)

和没有返回值(void)的,同时它只能带一个字符串型(String口)的参数。

④程序的一行“〃……”是注释,只说明不运行。

⑤每个命令语句结束,必须以“;”结尾。

二、编程

1.编写一Java应用程序,要求在屏幕上输出字符串“HappyNewYear!”。

classPracl

{

publicstaticvoidmain(Stringargs[])

(

System.out.printIn("HappyNewYear!");

)

)

2.编写一个简单的Java程序,在屏幕上输出如下图形:

*

***

51c51c51c5jc

classPrac2

(

publicstaticvoidmain(Stringargs[])

{

System.out.printlnC"*");

System,out.println(,z***");

System,out.printing*****");

)

项目2

一、选择题

1.数组中可以包含什么类型的元素?(D)

A.int型B.String型C.数组D.以上都

可以

2.Java中定义数组名为Arr,下面哪项可以得到数组元素的个数?(B)

A.Arr.length()B.Arr.lengthC.Arr(xyz)D.Arr

(xyz)

3.下面哪条语句定义了3个元素的数组?(A)

A.int[]a={20,30,40};

B.inta[]=newint(3);

C.int[3]array;

D.int[]arr;

4.下面的代码段中,执行之后i和j的值是(B)。

inti=10;

intj;

j=i++;

A.10,10B.11,10C.10,11D.11,11

二、编程

1.试编写一个程序,输入三条边长值,并判断这三条边长能不能构成三角

形,如果能,能构成什么样的三角形(一般、等边、等腰)C

importjava.util.*;

classPracticel{

publicstaticvoidmain(Stringargs[])

Scanners=newScanner(System,in);

inta,b,c;

a=s.nextlnt();

b=s.nextlnt();

c=s.nextlnt();

if(a+b>c&&a+c>b&&b+c>a)

if(a==b&&a==c)

System.out.print("构成的三角形为等边三角形。〃);

elseif(a==b||a==c||b==c)

System.out.print(〃构成的三角形为等腰三角形。〃);

else

System.out.print(〃构成的三角形为一般三角形。〃);

)

else

System.out.print(〃不能构成三角形。〃);

)

)

2.试编写一个程序,读入10个学生的成绩,成绩在0〜59分为D,成绩在

60〜79分为C,成绩在80〜89分为B,成绩在90〜100分为A,并输出A、B、C、

D的人数个数。

importjava.util.

puhlinclassPractICP2{

publicstaticvoidmain(Stringargs[])throwslOException

(

inta=10,al=0,a2=0,a3=0,a4=0,c;

intnuma[]=newint[a];

for(inti=0;i<a;i++){

System.out.print(〃请输入第〃+(i+l)+〃个人的成绩〃);

c=getInputData();

while(c<0||c>100)

{

System.out.print("请重新输入第"+(i+l)+”个学生的成绩〃);

c=getInputData();

)

nunia[i]=c;〃保存

System,out.printIn(nunia[i]);

switch(numa[i]/10)(

case10:

System.out.printin「成绩为A级!”);

al++;

break;

case9:

System.out.printing成绩为A级!”);

al++;

break;

case8:

System.out.printing成绩为B级!”);

a2++;

break;

case7:

System,out.printin「成绩为C级!〃);

a3++;

break;

case6:

System,out.printing成绩为C级!〃);

a3++;

break;

default:

System,out.prinlln(“成绩为D级!〃);

a4++;

break;

System,out.printin(*90-100分的人数=〃+al);

System,out.printIn(?,80-89分的人数=〃+a2);

System,out.printIn(〃60-79分的人数=〃+a3);

System.out.printIn(z,0-59分的人数=〃+a4);

}

publicstaticintgetlnputDataOthrowslOExccption

Scanners=newScanner(System,in);

intn=s.nextlnt();

returnn;

3.试编写一个程序,输出以下形式的图形。

classPractice3

(

publicstaticvoidmain(Stringargs口)

(

for(inti=l:i<=4:i++)

{

for(intj=l;j〈=i;j++)

System,out.print(*");

for(intk=l;k<=5;k++)

System.out.print("*");

System,out.printlnO;

)

)

}

4.试编写游戏程序,完成猜数字游戏,数字是由计算机随机产生的100以

内整数。一次就猜中得100分,2次才猜中得90分,依次类推,超过10次无分。

程序最后输出参与者得分。

importjava.util.*;

classPractice4

(

publicstaticvoidmain(Stringargs[])

(

inta=(int)(Math,random。*⑼;

intguess,score=100;

Scanners=newScanner(System,in);

inti:

for(i=l;i<=10;i++)

(

guess=s.nextlnt();

if(guess==a)

break;

score=score-10;

)

System.out.print(i+”得分为:*+score);

)

}

项目3

一、选择题

1.定义类头(非内部类)时,不可能用到的关键字是(B)

A)classB)privateC)extendsD)public

2.下列类头定义中,错误的是(A)

A)publicxextendsy{...}B)publicclassxextendsy

{...)

C)classxextendsyimplementsyl{...}D)classx{...}

3.设A为已定义的类名,下列声明A类的对象a的语句中正确的是(D)

A)floatAa;B)publicAa=A();

C)Aa=newint();D)staticAa=newA();

4.设X、Y均为已定义的类名,下列声明类X的对象xl的语句中正确的

是(C)

A)publicXxl=newY();B)Xxl=X();

C)Xxl=newX();D)intXxl;

5.设X、Y为已定义的类名,下列声明X类的对象xl的语句中正确的是

(A)

A)staticXxl;B)publicXxl=newX(int

123);

C)Yxl;D)Xxl=X();

6.有一个类A,以下为其构造方法的声明,其中正确的是(A)

A)publicA(intx){...}B)staticA(intx){...}

C)publica(intx){...}D)voidA(intx){...}

7.有一个类Student,以下为其构造方法的声明,其中正确的是(B)

A)voidStudent(intx){...}B)Student(intx){...}

C)s(intx){...}D)voids(intx){...}

8.下列选项中,用于定义接口的关键字是(A)

A)interfaceB)implementsC)abstractD)class

9.现有类A和接口B,以下描述中表示类A实现接口B的语句是(A)

A)classAimplementsBB)classBimplementsA

C)classAextendsBD)classBextendsA

二、填空题

1.如果子类中的某个变量的变量名与它的父类中的某个变量完全一样,则

称子类中的这个变量了父类的同名变量。

2.如果子类中的某个方法的名字、返回值类型和参数列表与它的父

类中的某个方法完全一样,则称子类中的这个方法覆盖了父类的同名方法。

3.抽象方法只有方法头,没有方法体一。

4.接口中所有属性均为pu为ic、static和final

的。

5.一个类如果实现一个接口,那么它就必须实现接口中定义的所有方法,

否则该类就必须定义成的。

6.lava语言中用于表示类间继承的关键字是extends。

7.下面是一个类的定义,请将其补充完整。

classStudent

(

Stringname;

intage;

Student(Strings,inti)

(

name=s;

age=i;

)

)

8.下面是一个类的定义,请将其补充完整。

class______A

{Strings;

staticinta=666;

A(Stringsi)

(

s二si;

)

staticintgeta()

returna;

三、编程题

1.编写一个类,描述学生的学号、姓名、成绩。学号用整型,成绩用浮点

型,姓名用String类型。编写一个测试类,输入学生的学号、姓名、成绩,并

显示该学号的学生姓名,以及成绩。

importjava.util.*;

classStudent{

intsNum;

Stringname;

doublescore;

|

classTl_Student{

publicstaticvoidmain(String[]args){

Scannersc=newScanner(System,in);

Students=newStudent();

s.sNum=sc.nextlnt();

s.name;sc.next();

s.score=sc.nextDoubleO;

System,out.println(s.name+”的学号是"+s.sNum+"成绩是"+s.score);

)

)

2.设il^一个Birthday类,其成员变量有:year,month,day:提供构造方

法、输出Birthday对象值的方法和计算年龄的方法。编写程序测试这个类。

classBirthday{

privateintyear;

privateintmonth;

privateintday;

publicBirthday(intyear,intmonth,intday)

{this.year=year;

this.month=month;

this.day=day;

)

publicvoidprintBirthDay()

{System.out.println(year+"-"+month+"-"+day);

)

publicintprintAge()

{return2021-year,}

publicstaticvoidmain(String[]args)

(

Birthdaybirth=newBirthday(1991,11,5);

birth.printBirthDay();

intage=birth.printAgeO;

System,out.printIn(age);

)

)

3.编写一个类,描述汽车,其中用字符型描述车的牌号,用浮点型描述车

的价格。编写一个测试类,其中有一个修改价格方法,对汽车对象进行操作,

根据折扣数修改汽车的价格,最后在main方法中输出修改过后的汽车信息。

publicclassChangeCar{

publicstaticvoidmain(StringE]args){

Carc=newCar();

c.carNum=〃鲁Allll";

c.price=10;

System,out.printin("beforechange,thecar'snumandprice

is:〃+c.carNum+,z,+c.price);

changePrice(c);

System,out.printIn(z,AfterChange,thecar'sprice

is:〃+c.price);

}

publicstaticvoidchangePrice(Carc){

c.price=c.price*。.8;

classCar{

StringcarNum;

doubleprice;

}

4.编写一个Java应用程序,设计一个汽车类Vehicle,包含的属性有车轮

个数wheels和车重weighu小车类Car是Vehicle的子类,其中包含的属性

有载人数loader。卡车类Truck是Car类的子类,其中包含的属性有载重量

payloado每个类都有构造方法和输出相关数据的方法。

classVehicle

(

intwheels;

floatweight;

Vehicle(inta,floatb)

(

wheels=a;

weight=b;

voidoutDataO

System,out.print("Thevehicle,s

data:wheels:〃+whecls+〃,weight:z/+weight);

)

}

classCarextendsVehicle

(

intloader;

Car(inta,floatb,intc)

(

super(a,b);

loader=c;

)

voidoutDataO

(

super.outDataO;

System,out.printloader:?z+loader);

)

)

classTruckextendsCar

(

floatpayload;

Truck(inta,floatb,intc,floatd)

super(a,b,c);

payload'd;

)

voidoutDataO

(

super.outDataO;

System,out.printIn(z/,payload:,,+payload);

)

)

classTest

(

publicstaticvoidmain(Stringargs[])

(

Vehiclev=newVehicle(4,7);

v.outDataO;

System,out.printlnO;

Carc=newCar(4,6,4);

c.outDataO;

System.out.printlnO;

Truckt=newTruck(4,2,10,8);

t.outDataO;

}

5.定义一个接口CanFly,描述会飞的方法publicvoidfly();分别定义

类飞机和鸟,实现CanFly接口。定义一个测试类,测试飞机和鸟,在main方

法中创建飞机对象和鸟对象,让飞机和鸟起飞。

interfaceCanFly

{

publicvoidfly();

}

classPlaneimplementsCanFly

(

publicvoidfly()

(

System.out.printin(〃飞机需借助螺旋桨飞上了天空。〃);

}

}

classBirdimplementsCanFly

{

publicvoidfly()

(

System.out.printin("鸟需借助翅膀飞上了天空。〃);

}

}

classTest

publicstaticvoidmain(Stringargs[])

(

Planep=newPlane();

Birdb=newBird();

p.fly();

b.fly();

项目4

一、选择题

1.关于异常的定义,下列描述中最正确的一个是(D)。

A)程序编译错误B)程序语法错误

C)程序自定义的异常事件D)程序编译或运行时发生的异常事件

2.抛出异常时,应该使用的子句是(A)。

A)throwB)catchC)finallyD)throws

3.自定义异常类时,可以继承的类是(C)。

A)ErrorB)AppletC)Exception及其子类D)

AssertionError

4.当方法产生异常但却无法确定该如何处理时,应采用的方法是(C)。

A)声明异常B)捕获异常C)抛出异常D)自定义异常

5.对于try{…}catch子句的排列方式,正确的一项是(A)。

A)子类异常在前,父类异常在后B)父类异常在前,子类异常在后

C)只能有子类异常D)父类异常与子类异常不能同时出

6.下列关于try、catch和finally的表述,错误的是(C)。

A)by语句块后必须紧跟catch语句块B)catch语句块必须紧跟在

语句块后

C)可以有try但无catchD)可以有try但无finally

7.下列描述中,错误的一项是(A)。

A)一个程序抛出异常,其他任何运行中的程序都可以捕获

B)算术溢出需要进行异常处理

C)在方法中检测到错误但不知如何处理时,方法就声明异常

D)任何没有被程序捕获的异常最终被默认处理程序处理

8.下面程序运行时,会产生的异常是(C)o

classTest(

publicstaticvoidmain(Stringar[])

{intx=0,y=20,z;

z=(x+y)/(x*y);

System.out.println[〃z="+z);

)

}

A)ArrayIndexOutOfBoundsExceptionB)NumberFomatException

C)ArithMeticExceptionD)NulIPointerException

二、填空题

1.一个try代码段后必须跟catch代码段,finally代码

段可以没有。

2.自定义异常类必须继承Exception类或其子类。

3.异常处理机制可以允许根据具体的情况选择在何处处理异常,可以在当

前方法中捕获并处理,也可以用throws子句把它交给调用方法

去处理。

4.数组下标越界对应的类是__ArrayIndexOutOfBoundsException_____

5.为达到高效运行的要求,一运行时产生—的异常,可以直接交函嬴

虚拟机系统来处理,而Exception类派生出的非运行异常,要求编写程序捕

获或者声明。

三、编程题

1.从键盘输入5个数,求出5个数的阶乘之和。若输入负数时,产生异常

并进行相应的处理。

importjavax.swing.*;

classExceptionExam

publicstaticvoidmain(Stringargs[])

inti,sum=0,j;

for(i=0;i<5;i++)

j=l;

int

x=Integer.parselnt(JOptionPane.showInputDialog(null,“input:'));

try

(

if(x<0)thrownewException();

for(intk=l;k<=x;k++)

sum=sum+j;

}catch(Exceptione)

{

System.out.printin("输入了一个负数,请重新输入!〃);

i—;

)

)

System.out.println]”阶乘和为:〃+sum);

)

)

2.设计自己的异常类,从键盘输入一个数,若输入的数不小于0,则输出它

的平方根。若小于0,则输出提示信息“输入错误”。(求平方根的方法

为:Math,sqrt(intx))

importjavax.swing.*;

classMyExceptionextendsException

(

staticinti=3;

MyException()

(

super(〃产生异常!〃);

)

)

classExceptionTest

(

publicstaticvoidmain(Stringargs[])

(

int

x=lnteger.parselnt(JOptionPane.showInputDialog(null,“input:〃));

try

(

if(x<0)thrownowMyException();

System,out.printin(〃输入数的平方根为:〃+Math.sqrt(x));

}catch(MyExceptione)

System,out.println(e.getMessage());

System.out.printin(〃异常编号为:〃+e.i);

)

)

项目5

一、选择题

1.下面属于容器类的是(A)

A.JFrameB.JTextFieldC.ColorD.JMenu

2.FlowLayout的布局策略是(A)

A.按添加的顺序由左至右将组件排列在容器中。

B.按设定的行数和列数以网格的形式排列组件。

C.将窗口划分成五部分,在这五个区域中添加组件。

D.组件相互叠加排列在容器中。

3.BorderLayout的布局策略是(C)

A.按添加的顺序由左至右将组件排列在容器中。

B.按设定的行数和列数以网格的形式排列组件。

C.将窗口划分成五部分,在这五个区域中添加组件。

D.组件相互叠加排列在容器中。

4.GridLayout的布局策略是(B)

A.按添加的顺序由左至右将组件排列在容器中。

B.按设定的行数和列数以网格的形式排列组件。

C.将窗口划分成五部分,在这五个区域中添加组件。

D.组件相互叠加排列在容器中。

5.JFrame中内容窗格缺省的布局管理器是(B)

A.FlowLayoutB.BorderLayoutC.GridLayoutD.CardLayout

6.监听事件和处理事件(B)

A.都由Listener完成B.都由相应事件Listener处注册的构

件完成

C.由Listener和构件分别完成D.由Listener和窗口分别完成

7.在下列事件处理机制中不是机制中的角色的是(A)

A.事件B.事件源C.事件接口D.事件处

理者

8.addActionListcner(this)方法中的this参数表示的意思是(B)

A.当有事件发生时,应该使用this监听器B.this对象类会处理

此事件

C.this事件优先于其他事件D.只是一种形式

9,下列关于Component的方法中,错误的是(A)

A.getName()用于获得组件的名字B.getSize()用于获得组件

的大小

C.setColor()用于设置前景颜色D.setVisible()设置组

件是否可见

10.当窗口关闭时,会触发的事件是(C)

A.ContainerEventB.ItemEventC.WindowEvent

D.MouseEvent

二、填空题

1.AWT的用户界面组件库被更稳定、通用、灵活的库取代,该库称为—

swingo

2.布局管理器用于安排容器上的GUI组件。

3.设置容器布局管理器的方法是setLayoutO。

4.当释放鼠标按键时,将产生_mouseRelease事件。

5.Java为那些声明了多个方法的Listener接口提供了一个对应的适配

翟_,在该类中实现了对应接口的所有方法。

6.ActionEvcnt事件的监听接口是ActionListcner,注册方法名是_

addActionListener(),事件处理方法名是publicvoid

actionperformed。。

7.图形用户界面通过事件响应用户和程序的交互,产生事件的组

件称为事件源°

8.Java的Swing包中定义菜单的类是JMenu。

三、编程题

1.设计如图所示样式的图形用户界面(不要求实现功能)。

I当前时间:p一时四分眄"秒

I闹钟时间:I-时I―分I-秒

闹钟设置四三1

importjavax.swing.*;

classDemo

publicDemo()

JLabelbl=newJLabcl("当前时间:“);

JLabelb2=newJLabel("时”);

JLabelb3=newJLabel("分”);

JLabelb4=newJLabel("秒”);

JLabelb5=newJLabel("闹钟时间:");

JLabelb6=newJLabel("时”);

JLabelb7=newJLabel(〃分”);

JLabelb8=newJLabel(〃秒〃);

JLabelb9=newJLabel("闹钟设置”);

JTextFieldtl=newJTextField(*8*,3);

JTextFieldt2=newJTextField(*57*»3);

JTextFieldt3=newJTextField("59”,3);

JTextFieldt4=newJTextField(3);

JTextFieldt5=newJTextField(3);

JTextFieldt6=newJTextField(3);

JButtonbtl=ncwJ3utton("开");

JButtonbt2=newJ3utton("关");

JFramewin=newJFrame0;

win.setLayout(newFlowLayout());

win.add(bl)

win.add(tl)

win.add(b2)

win.add(t2)

win.add(b3)

win.add(t3)

win.add(b4)

win.add(b5)

win.add(t4)

win.add(b6)

win.add(t5)

win.add(b7)

win.add(t6)

win.add(b8)

win.add(b9)

win.add(btl);

win.add(bt2);

win.setSize(340,160);

win.setVisible(trje);

)

publicstaticvoidmain(Stringarg[])

newDemo();

)

}

2.编写一个将华氏温度转换为摄氏温度的程序。其中一个文本框输入华氏

温度,另一个文本框显示转换后的摄氏温度,一个按钮完成温度的转换。使用

下面的公式进行温度转换:摄氏温度=5/9X(华氏温度-32)。

importjava.awt.*;

importjava.awt.event.*;

importjavax.swing.*;

classDemoimplementsActionListener

{JLabelbl,b2;

TJextFieldtl,t2;

publicDemo()

{

bl=newJLabel("华氏温度:〃);

b2=newJLabel("摄氏温度:”);

tl=newJ(6);

t2=newJTextField(6);

JButtonbtl=newJ3utton("转换”);

JFramewin=newJFrame0;

win.setLayout(newFlowLayout());

win.add(bl);

win.add(tl);

win.add(b2);

win.add(t2);

win.add(btl);

btl.addActionListener(this);

win.setSize(160,120);

win.setVisible(trje);

)

publicvoidactionPerformed(ActionEvente)

(

t2.setTextC*+5.0/9*(Float.parseFloat(tl.getText())-32));

}

publicstaticvoidmain(Stringarg[])

(

newDemo();

)

)

3.设计一个界面如图。当点击“确认”按钮后,使“开始考试”按钮可用,

并使“学号”、“姓名”后的文本框及“确认”按钮不可用。点击“开始考试”

按钮后,使“下一题”按钮可用,同时设置“开始考试”按钮不可用。

:C/S考试系统□0®

importjava.awt.*;

importjava.awt.event.*;

importjavax.swing.*;

classTestPanelextendsJPanelimplementsActionListener

(

JButtonstartButton;

JLabeltimeLabel;

JTextAreaquestionArea;

JRadioButtonradicButton[]=newJRadioButton[5];〃五个单选按钮,

目的是设置前四个答案选项都不选中,而第五个选项选中,但第五个按钮设置为不可见

ButtonGroupbuttonGroup=newButtonGroupO;

JButtonanswerButton;

JButtonquestionButton;

JButtonscoreButton;

publicTestPanel()

(

setLayout(newBorderLayout());

JPanelnorthPanel=newJPanel();

northPanel.setLayout(newGridLayout(2,1));

startButton=newJButton("开始考试");

startButton.addActionListener(this);

timeLabel=newJLabel("考试剩余时间”);

northPanel.add(startButton);

northPanel.add(timeLabel);

add(northPanel,BorderLayout.NORTH);

questionArea=newJTextArea(30,10);

questionArea.setLineWrap(true);

questionArea.setWrapStyleWord(true);

questionArea.setFont(newFont("幼圆”,Font.PLAIN,16));

intvScroll=ScrolIPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED;

inthScroll=ScrolIPaneConstants.HORIZONTAL_SCROLLBAR_NEVER;

add(new

JScrollPane(questionArea,vScroll,hScrol1),BorderLayout.CENTER);

JPanelsouthPanel=newJPanel();

JPanelradioPanel=newJPanel();〃放5个单选按钮的面板

String=

for(inti=0;i<radioButton.length;i++)

radioButton[i]=newJRadioButton(s[i],false);

buttonGroup.add(radioButton[i]);

radioPanel.add(radioButton[i]);

)

radioButton[radioButton,length-1].setVisible(false);〃第五个

单选按钮不可见

answerButton=newJButton("提交答案”);

answerButton.setEnabled(false);

answerButton.addActionListener(this);

questionButton=newJButton("下一题”);

questionButton.setEnabled(false);

questionButton.addActionListener(this);

scoreButton=newJButton("成绩”);

scoreButton.setEnabled(false);

scoreButton.addActionListener(this);

southPanel.add(radioPanel);

southPanel.add(answerButton);

southPanel.add(questionButton);

southPanel.add(scoreButton);

add(southPanel,BorderLayout.SOUTH);

)

publicvoidactionPerformed(ActionEvente)

(

if(e.getSource()==startButton)

(

questionButton.setEnabled(true);

startButton.setEnabled(false);

}

)

}

classMyFrameextendsJFramcimplementsActionListencr

(

JButtonstartButton;

JLabelxh,xm;

JTcxtFieldxhl,xirl;

JButtonok;

TestPaneltp=newTestPanelO;

MyFrame()

(

JPanelp=newJPanel0;

xh二newJLabel("学号:〃);

xm=newJLabel("姓名:”);

xhl=newJTextField(lO);

xml=newJTextField(lO);

ok=newJButton("确认");

p.add(xh);p.add(xhl);

p.add(xm);p.add(xml);p.add(ok);

add(p,BorderLayout.NORTH);

add(tp);

ok.addActionListener(this);

setSize(400,300);

setVisible(true);

)

publicvoidactionPerformed(ActionEvente)

(

tp.startButton.setEnabled(true);

xhl.setEnabled(false);

xml.setEnabled(false);

ok.setEnabled(false);

)

publicstaticvoidmain(Stringar[])

{newMyFrame();}

}

项目6

一、选择题

1.以下类中,具有绘图能力的类是(B)。

A)ImageB)GraphicsC)FontD)Color

2.Graphics类中提供的绘图方法分为两类:一类是绘制组形,另一类是绘

制(B)o

A)屏幕B)文本C)颜色D)图像

3.下列方法中不属于Graphics类的显示文本的方法是(D)。

A)drawBytesB)drawCharsC)drawStringD)drawLine

4.下面的程序实现了在窗口中绘制一个以(70,70)为圆心,50为半径,

边框是绿色的圆,圆心是红色的。应填入的语句行是(B)。

classexamextendsFrame

publicvoidpaint(Graphicsg)

(

g.setColor(Color,green);

g.drawOva1(20,20,100,100);

g.setColor(Color,red);

)

A)drawRect(70,70,1,1);B)g.drawRect(70,70,1,1);

C)g.drawLine(70,70,1,1);D)g.drawOva1(70,70,70,70);

5.在窗体的坐标(50,50)处以红色显示“红色文字”,填入的正确语句

是(C)。

classexamextendsFrame

{publicvoidpaint(Graphicsg)

g.drawString(”红色文字”,50,50);

)

)

A)g.setColor(Color.Red);B)setColor(Color,red);

C)g.setColor(Color,red);D)setcolor(Color,red);

6.下列方法中不能完成画直线的方法是(D)。

A)drawPolylineB)drawRectC)drawLineD)drawChars

二、填空题

1.paint()方法的参数是Graphics类的实例。

2.drawRect(intxl,intyl,intx2,inty2)中,x2和y2分别代表矩形的

宽度、高度。

3.如果在(60,80)处画一个点,通过drawOval方法实现,则该方法中的参

数应为(60,80,

温馨提示

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

评论

0/150

提交评论