Java程序設(shè)計(jì)項(xiàng)目教程(第二版)參考答案_第1頁
Java程序設(shè)計(jì)項(xiàng)目教程(第二版)參考答案_第2頁
Java程序設(shè)計(jì)項(xiàng)目教程(第二版)參考答案_第3頁
Java程序設(shè)計(jì)項(xiàng)目教程(第二版)參考答案_第4頁
Java程序設(shè)計(jì)項(xiàng)目教程(第二版)參考答案_第5頁
已閱讀5頁,還剩81頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

Java程序設(shè)計(jì)項(xiàng)目教程(第二版)-參考答案

項(xiàng)目1

一、思考題

LJava程序有幾種版本,分別是什么?

Java有三種版本,分別是J2ME、J2SE、J2EE

2.Java程序有何特點(diǎn)?

Java語言的特點(diǎn)如下:

①面向?qū)ο螅褐С执a繼承及重用,是完全面向?qū)ο蟮?,它不支持類似C

語言那樣的面向過程的程序設(shè)計(jì)技術(shù)。

②解釋執(zhí)行:Java解釋器(運(yùn)行系統(tǒng))能直接運(yùn)行目標(biāo)代碼指令。

③平臺(tái)無關(guān):Java源程序被編譯成一種高層次的與機(jī)器無關(guān)的Byte-codes

格式語言,被設(shè)計(jì)在Java虛擬機(jī)上運(yùn)行。

④多線程:Java提供的多線程功能使得在一個(gè)程序里可同時(shí)執(zhí)行多個(gè)小任

務(wù)。多線程帶來的好處是可以有更好的交互性能和實(shí)時(shí)控制性能。

⑤健壯性:Java致力于檢查程序在編譯和運(yùn)行時(shí)的錯(cuò)誤,類型檢查幫助檢

查出許多開發(fā)早期出現(xiàn)的錯(cuò)誤。

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

JVM即Java虛擬機(jī),是一臺(tái)可以存在于不同的真實(shí)的軟、硬件環(huán)境下的虛

擬的計(jì)算機(jī),其功能是將字節(jié)碼解釋為真實(shí)平臺(tái)能執(zhí)行的指令。Java正是通過

虛擬機(jī)JVM技術(shù),實(shí)現(xiàn)了與平臺(tái)無關(guān),實(shí)現(xiàn)“編寫一次,到處運(yùn)行”。因此,

任何平臺(tái)只要安裝相應(yīng)的Java虛擬機(jī)環(huán)境,就能運(yùn)行Java程序。

4.如何理解Java程序的基本結(jié)構(gòu)?

①語句packagepl;是建立一個(gè)包(文件夾),生成的類文件將存放于包

中。

②程序第一行publicclass類名{},是一個(gè)類定義語句。public關(guān)鍵字

指明類的訪問方式為公有,也就是在整個(gè)程序內(nèi)都可以訪問到它。如果將類定

義為public,則類其名稱必須與主文件名一致,并且大小寫敏感。

③類后大括號(hào)內(nèi)可以定義類的成員和方法,對(duì)于一個(gè)可執(zhí)行的Java類,

main方法是必需的,而且該main方法必須是公有(public)、靜態(tài)(static)

和沒有返回值(void)的,同時(shí)它只能帶一個(gè)字符串型(String口)的參數(shù)。

④程序的一行“〃……”是注釋,只說明不運(yùn)行。

⑤每個(gè)命令語句結(jié)束,必須以“;”結(jié)尾。

二、編程

1.編寫一Java應(yīng)用程序,要求在屏幕上輸出字符串“HappyNewYear!”。

classPrac1

(

publicstaticvoidmain(Stringargs[])

(

System,out.printin(z,HappyNewYear!");

)

}

2.編寫一個(gè)簡單的Java程序,在屏幕上輸出如下圖形:

*

***

classPrac2

(

publicstaticvoidmain(Stringargs[])

System,out.printIn("*〃);

System,out.printing***〃);

System,out.printin("*****");

}

}

項(xiàng)目2

一、選擇題

1.數(shù)組中可以包含什么類型的元素?(D)

A.int型B.String型C.數(shù)組D.以上都

可以

2.Java中定義數(shù)組名為Arr,下面哪項(xiàng)可以得到數(shù)組元素的個(gè)數(shù)?(B)

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

(xyz)

3.下面哪條語句定義了3個(gè)元素的數(shù)組?(A)

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

B.inta[]=newint(3);

C.int[3]array;

D.int[]arr;

4.下面的代碼段中,執(zhí)行之后i和j的值是(B)。

inti=10;

intj;

j=i++;

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

二、編程

1.試編寫一個(gè)程序,輸入三條邊長值,并判斷這三條邊長能不能構(gòu)成三角

形,如果能,能構(gòu)成什么樣的三角形(一般、等邊、等腰)。

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("構(gòu)成的三角形為等邊三角形?!?;

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

System.out.print("構(gòu)成的三角形為等腰三角形?!?;

else

System.out.print("構(gòu)成的三角形為一般三角形。");

)

else

System,out.print("不能構(gòu)成三角形?!?;

)

)

2.試編寫一個(gè)程序,讀入10個(gè)學(xué)生的成績,成績?cè)??59分為D,成績?cè)?/p>

60?79分為C,成績?cè)?0?89分為B,成績?cè)?0-100分為A,并輸出A、B、C、

D的人數(shù)個(gè)數(shù)。

importjava.util.*;

publicclassPractice2{

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("請(qǐng)輸入第"+(i+1)+”個(gè)人的成績");

c=getInputData();

while(c<0||c>100)

(

System,out.print(〃請(qǐng)重新輸入第〃+(i+l)+〃個(gè)學(xué)生的成績〃);

c=getInputData();

)

皿帽[1]=。;〃保存

System.out.println(numa[i]);

switch(numa[i]/10){

case10:

System,out.printin(〃成績?yōu)锳級(jí)!〃);

al++;

break;

case9:

System.out.println(〃成績?yōu)锳級(jí)!”);

al++;

break;

case8:

System,out.println(〃成績?yōu)锽級(jí)!〃);

a2++;

break;

case7:

System.out.printin(〃成績?yōu)镃級(jí)!〃);

a3++;

break;

case6:

System,out.printin(〃成績?yōu)镃級(jí)!〃);

a3++;

break;

default:

System,out.printin(〃成績?yōu)镈級(jí)!“);

a4++;

break;

System.out.printin(“90T00分的人數(shù)=〃+al);

System.out.printin(z,80-89分的人數(shù)="+a2);

System,out.printin(z,60-79分的人數(shù)="+@3);

System,out.printin(,z0-59分的人數(shù)=〃+a4);

}

publicstaticintgetlnputDataOthrowslOException

Scanners=newScanner(System,in);

intn=s.nextlnt();

returnn;

3.試編寫一個(gè)程序,輸出以下形式的圖形。

classPractices

(

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.試編寫游戲程序,完成猜數(shù)字游戲,數(shù)字是由計(jì)算機(jī)隨機(jī)產(chǎn)生的100以

內(nèi)整數(shù)。一次就猜中得100分,2次才猜中得90分,依次類推,超過10次無分。

程序最后輸出參與者得分。

importjava,util.*;

classPractice4

(

publicstaticvoidmain(Stringargs[])

(

inta=(int)(Math.randomO*10);

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);

}

)

項(xiàng)目3

一、選擇題

1.定義類頭(非內(nèi)部類)時(shí),不可能用到的關(guān)鍵字是(B)

A)classB)privateC)extendsD)public

2.下列類頭定義中,錯(cuò)誤的是(A)

A)publicxextendsy{...}B)publicclassxextendsy

{...)

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

3.設(shè)A為已定義的類名,下列聲明A類的對(duì)象a的語句中正確的是(D)

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

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

4.設(shè)X、Y均為已定義的類名,下列聲明類X的對(duì)象xl的語句中正確的

是(C)

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

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

5.設(shè)X、Y為已定義的類名,下列聲明X類的對(duì)象xl的語句中正確的是

(A)

A)staticXxl;B)publicXxl=newX(int

123);

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

6.有一個(gè)類A,以下為其構(gòu)造方法的聲明,其中正確的是(A)

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

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

7.有一個(gè)類Student,以下為其構(gòu)造方法的聲明,其中正確的是(B)

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

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

8.下列選項(xiàng)中,用于定義接口的關(guān)鍵字是(A)

A)interfaceB)implementsC)abstractD)class

9.現(xiàn)有類A和接口B,以下描述中表示類A實(shí)現(xiàn)接口B的語句是(A)

A)classAimplementsBB)classBimplementsA

C)classAextendsBD)classBextendsA

二、填空題

1.如果子類中的某個(gè)變量的變量名與它的父類中的某個(gè)變量完全一樣,則

稱子類中的這個(gè)變量隱藏了父類的同名變量。

2.如果子類中的某個(gè)方法的名字、返回值類型和參數(shù)列表與它的父

類中的某個(gè)方法完全一樣,則稱子類中的這個(gè)方法覆蓋了父類的同名方法。

3.抽象方法只有方法頭,沒有方法體。

4.接口中所有屬性均為pu為ic、static和final

的。

5.一個(gè)類如果實(shí)現(xiàn)一個(gè)接口,那么它就必須實(shí)現(xiàn)接口中定義的所有方法,

否則該類就必須定義成抽象的。

6.lava語言中用于表示類間繼承的關(guān)鍵字是extends。

7.下面是一個(gè)類的定義,請(qǐng)將其補(bǔ)充完整。

classStudent

(

Stringname;

intage;

Student(Strings,inti)

name=s;

age二i;

)

)

8.下面是一個(gè)類的定義,請(qǐng)將其補(bǔ)充完整。

class______A

{Strings;

staticinta=666;

A(Stringsi)

(

s=sl;

)

staticintgeta()

returna;

)

三、編程題

1.編寫一個(gè)類,描述學(xué)生的學(xué)號(hào)、姓名、成績。學(xué)號(hào)用整型,成績用浮點(diǎn)

型,姓名用String類型。編寫一個(gè)測(cè)試類,輸入學(xué)生的學(xué)號(hào)、姓名、成績,并

顯示該學(xué)號(hào)的學(xué)生姓名,以及成績。

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.nextDouble();

System.out.printin(s.name+〃的學(xué)號(hào)是〃+s.sNum+〃成績是〃+s.score);

2.設(shè)id—個(gè)Birthday類,其成員變量有:year,month,day;提供構(gòu)造方

法、輸出Birthday對(duì)象值的方法和計(jì)算年齡的方法。編寫程序測(cè)試這個(gè)類。

classBirthday{

privateintyear;

privateintmonth;

privateintday;

publicBirthday(intyear,intmonth,intday)

{this.year=year;

this,month=month;

this.day=day;

)

publicvoidprintBirthDay()

{System.out.printin(year+〃-〃+month+〃-〃+day);

publicintprintAgeO

{return2021-year;}

publicstaticvoidmain(String[]args)

(

Birthdaybirth=newBirthday(1991,11,5);

birth.printBirthDay();

intage=birth.printAge();

System,out.printin(age);

)

)

3.編寫一個(gè)類,描述汽車,其中用字符型描述車的牌號(hào),用浮點(diǎn)型描述車

的價(jià)格。編寫一個(gè)測(cè)試類,其中有一個(gè)修改價(jià)格方法,對(duì)汽車對(duì)象進(jìn)行操作,

根據(jù)折扣數(shù)修改汽車的價(jià)格,最后在main方法中輸出修改過后的汽車信息。

publicclassChangeCar{

publicstaticvoidmain(String[]args){

Carc=newCar();

c.carNum=〃魯Al111”;

c.price=10;

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

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

changePrice(c);

System,out.println(z/AfterChange,thecar,sprice

is:〃+c.price);

)

publicstaticvoidchangePrice(Carc){

c.price=c.price*O.8;

)

classCar{

StringcarNum;

doubleprice;

)

4.編寫一個(gè)Java應(yīng)用程序,設(shè)計(jì)一個(gè)汽車類Vehicle,包含的屬性有車輪

個(gè)數(shù)wheels和車重weight。小車類Car是Vehicle的子類,其中包含的屬性

有載人數(shù)loader??ㄜ囶怲ruck是Car類的子類,其中包含的屬性有載重量

payloado每個(gè)類都有構(gòu)造方法和輸出相關(guān)數(shù)據(jù)的方法。

classVehicle

{

intwheels;

floatweight;

Vehicle(inta,floatb)

(

wheels=a;

weight=b;

voidoutDataO

System,out.print(Z/Thevehicle,s

data:wheels:zz+wheels+,/,weight:z/+weight);

)

)

classCarextendsVehicle

(

intloader;

Car(inta,floatb,intc)

(

super(a,b);

loader=c;

)

voidoutData()

(

super.outDataO;

System,out.print(zz,loader:z,+loader);

)

)

classTruckextendsCar

(

floatpayload;

Truck(inta,floatb,intc,floatd)

super(a,b,c);

payload=d;

)

voidoutData()

(

super.outDataO;

System,out.println(z,,payload:z,+payload);

)

)

classTest

(

publicstaticvoidmain(Stringargs[])

(

Vehiclev=newVehicle(4,7);

v.outDataO;

System,out.printlnO;

Carc=newCar(4,6,4);

c.outDataO;

System,out.printin();

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

t.outDataO;

5.定義一個(gè)接口CanFly,描述會(huì)飛的方法publicvoidfly();分別定義

類飛機(jī)和鳥,實(shí)現(xiàn)CanFly接口。定義一個(gè)測(cè)試類,測(cè)試飛機(jī)和鳥,在main方

法中創(chuàng)建飛機(jī)對(duì)象和鳥對(duì)象,讓飛機(jī)和鳥起飛。

interfaceCanFly

(

publicvoidfly();

)

classPlaneimplementsCanFly

{

publicvoidfly()

(

System.out.println("飛機(jī)需借助螺旋槳飛上了天空。;

)

)

classBirdimplementsCanFly

(

publicvoidfly()

System.out.println("鳥需借助翅膀飛上了天空?!?;

classTest

publicstaticvoidmain(Stringargs[])

{

Planep=newPlane();

Birdb=newBird();

p.fly();

b.flyO;

項(xiàng)目4

一、選擇題

1.關(guān)于異常的定義,下列描述中最正確的一個(gè)是(D)。

A)程序編譯錯(cuò)誤B)程序語法錯(cuò)誤

C)程序自定義的異常事件D)程序編譯或運(yùn)行時(shí)發(fā)生的異常事件

2.拋出異常時(shí),應(yīng)該使用的子句是(A)。

A)throwB)catchC)finallyD)throws

3.自定義異常類時(shí),可以繼承的類是(C)。

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

AssertionError

4.當(dāng)方法產(chǎn)生異常但卻無法確定該如何處理時(shí),應(yīng)采用的方法是(C)。

A)聲明異常B)捕獲異常C)拋出異常D)自定義異常

5.對(duì)于try{…}catch子句的排列方式,正確的一項(xiàng)是(A)。

A)子類異常在前,父類異常在后B)父類異常在前,子類異常在后

C)只能有子類異常D)父類異常與子類異常不能同時(shí)出

現(xiàn)

6.下列關(guān)于try、catch和finally的表述,錯(cuò)誤的是(C)。

A)try語句塊后必須緊跟catch語句塊B)catch語句塊必須緊跟在try

語句塊后

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

7.下列描述中,錯(cuò)誤的一項(xiàng)是(A)。

A)一個(gè)程序拋出異常,其他任何運(yùn)行中的程序都可以捕獲

B)算術(shù)溢出需要進(jìn)行異常處理

C)在方法中檢測(cè)到錯(cuò)誤但不知如何處理時(shí),方法就聲明異常

D)任何沒有被程序捕獲的異常最終被默認(rèn)處理程序處理

8.下面程序運(yùn)行時(shí),會(huì)產(chǎn)生的異常是(C)o

classTest{

publicstaticvoidmain(Stringar[])

{intx=0,y=20,z;

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

System,out.println("z="+z);

)

)

A)ArraylndexOutOfBoundsExceptionB)NumberFormatException

C)ArithMeticExceptionD)NullPointerException

二、填空題

1.一個(gè)trv代碼段后必須跟calch代碼段,finally代碼

段可以沒有。

2.自定2異常類必須繼承Exception類或其子類。

3.異常處理機(jī)制可以允許根據(jù)具體的情況選擇在何處處理異常,可以在當(dāng)

前方法中捕獲并處理,也可以用throws子句把它交給調(diào)用方法

去處理。

4.數(shù)組下標(biāo)越界對(duì)應(yīng)的類是__ArraylndexOutOfBoundsException______

5.為達(dá)到高效運(yùn)行的要求,一~運(yùn)行時(shí)產(chǎn)生—的異常,可以直接交由嬴

虛擬機(jī)系統(tǒng)來處理,而Exception類派生出的非運(yùn)行異常,要求編寫程序捕

獲或者聲明。

三、編程題

1.從鍵盤輸入5個(gè)數(shù),求出5個(gè)數(shù)的階乘之和。若輸入負(fù)數(shù)時(shí),產(chǎn)生異常

并進(jìn)行相應(yīng)的處理。

importjavax.swing.*;

classExceptionExam

publicstaticvoidmain(Stringargs[])

inti,sum=0,j;

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

j=l;

int

x=Integer.parselnt(JOptionPane.showInputDialog(null,zzinput:〃));

try

{

if(x<0)thrownewException();

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

j=j*k;

sum=sum+j;

}catch(Exceptione)

System.out.printin("輸入了一個(gè)負(fù)數(shù),請(qǐng)重新輸入!”);

i—;

)

)

System,out.printin(”階乘和為:"+sum);

2.設(shè)計(jì)自己的異常類,從鍵盤輸入一個(gè)數(shù),若輸入的數(shù)不小于0,則輸出它

的平方根。若小于0,則輸出提示信息“輸入錯(cuò)誤”。(求平方根的方法

為:Math.sqrt(intx))

importjavax.swing.*;

classMyExceptionextendsException

staticinti=3;

MyException()

(

super(〃產(chǎn)生異常!〃);

i

)

classExceptionTest

(

publicstaticvoidmain(Stringargs[])

(

int

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

try

(

if(x<0)thrownewMyExceptionO;

System,out.printin(〃輸入數(shù)的平方根為:〃+Math.sqrt(x));

}catch(MyExceptione)

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

System,out.printin("異常編號(hào)為:"+e.i);

項(xiàng)目5

、選擇題

1.下面屬于容器類的是(A)

A.JFrameB.JTextFieldC.ColorD.JMenu

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

A.按添加的順序由左至右將組件排列在容器中。

B.按設(shè)定的行數(shù)和列數(shù)以網(wǎng)格的形式排列組件。

C.將窗口劃分成五部分,在這五個(gè)區(qū)域中添加組件。

D.組件相互疊加排列在容器中。

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

A.按添加的順序由左至右將組件排列在容器中。

B.按設(shè)定的行數(shù)和列數(shù)以網(wǎng)格的形式排列組件。

C.將窗口劃分成五部分,在這五個(gè)區(qū)域中添加組件。

D.組件相互疊加排列在容器中。

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

A.按添加的順序由左至右將組件排列在容器中。

B.按設(shè)定的行數(shù)和列數(shù)以網(wǎng)格的形式排列組件。

C.將窗口劃分成五部分,在這五個(gè)區(qū)域中添加組件。

D.組件相互疊加排列在容器中。

5.JFrame中內(nèi)容窗格缺省的布局管理器是(B)

A.FlowLayoutB.BorderLayoutC.GridLayoutD.CardLayout

6.監(jiān)聽事件和處理事件(B)

A.都由Listener完成B.都由相應(yīng)事件Listener處注冊(cè)的構(gòu)

件完成

C.由Listener和構(gòu)件分別完成D.由Listener和窗口分別完成

7.在下列事件處理機(jī)制中不是機(jī)制中的角色的是(A)

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

理者

8.addActionListener(this)方法中的this參數(shù)表示的意思是(B)

A.當(dāng)有事件發(fā)生時(shí),應(yīng)該使用this監(jiān)聽器B.this對(duì)象類會(huì)處理

此事件

C.this事件優(yōu)先于其他事件D.只是一種形式

9.下列關(guān)于Component的方法中,錯(cuò)誤的是(A)

A.getName()用于獲得組件的名字B.getSize()用于獲得組件

的大小

C.setColor()用于設(shè)置前景顏色D.setVisible()設(shè)置組

件是否可見

10.當(dāng)窗口關(guān)閉時(shí),會(huì)觸發(fā)的事件是(C)

A.ContainerEventB.ItemEventC.WindowEvent

D.MouseEvent

二、填空題

1.AWT的用戶界面組件庫被更穩(wěn)定、通用、靈活的庫取代,該庫稱為—

swing

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

3.設(shè)置容器布局管理器的方法是setLayoutO。

4.當(dāng)釋放鼠標(biāo)按鍵時(shí),將產(chǎn)生_mouseRelease事件。

5.Java為那些聲明了多個(gè)方法的Listener接口提供了一?個(gè)對(duì)應(yīng)的適配

盎_,在該類中實(shí)現(xiàn)了對(duì)應(yīng)接口的所有方法。

6.ActionEvent事件的監(jiān)聽接口是AclionListener,注冊(cè)方法名是_

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

actionperformed。。

7.圖形用戶界面通過事件響應(yīng)用戶和程序的交互,產(chǎn)生事件的組

件稱為事件源。

8.Java的Swing包中定義菜單的類是JMenu。

三、編程題

1.設(shè)計(jì)如圖所示樣式的圖形用戶界面(不要求實(shí)現(xiàn)功能)。

當(dāng)前時(shí)間:陵時(shí)忸-分恃"秒

鬧鐘時(shí)間:|一時(shí)|一分|一秒

鬧鐘設(shè)置

importjavax.swing.*;

classDemo

publicDemo()

JLabelblnewJLabel(〃當(dāng)前時(shí)間:〃);

JLabelb2newJLabel(〃時(shí)〃);

JLabelb3newJLabel("分”);

JLabelb4newJLabel(〃秒〃);

JLabelb5newJLabel(〃鬧鐘時(shí)間:〃);

JLabelb6newJLabel(〃時(shí)〃);

JLabelb7=newJLabel(“分”);

JLabelb8newJLabel("秒");

JLabelb9=newJLabel(〃鬧鐘設(shè)置“);

JTextFieldtl=newJTextField(/z8z,,3);

JTextFieldt2=newJTextField(〃57〃,3);

JTextFieldt3=newJTextField(〃59〃,3);

JTextFieldt4=newJTextField(3);

JTextFieldt5=newJTextField(3);

JTextFieldt6=newJTextField(3);

JButtonbtl=newJButton(〃開”);

JButtonbt2=newJButton(“關(guān)〃);

JFramewin=newJFrame();

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(true);

}

publicstaticvoidmain(Stringarg[])

newDemo();

)

2.編寫一個(gè)將華氏溫度轉(zhuǎn)換為攝氏溫度的程序。其中一個(gè)文本框輸入華氏

溫度,另一個(gè)文本框顯示轉(zhuǎn)換后的攝氏溫度,一個(gè)按鈕完成溫度的轉(zhuǎn)換。使用

下面的公式進(jìn)行溫度轉(zhuǎn)換:攝氏溫度=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=newJButton("轉(zhuǎn)換”);

JFramewin=newJFrame();

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(true);

)

publicvoidactionPerformed(ActionEvente)

(

t2.setText(〃"+5?0/9*(Float.parseFloat(tl.getText())-32));

)

publicstaticvoidmain(Stringarg[])

(

newDemo();

}

)

3.設(shè)計(jì)一個(gè)界面如圖。當(dāng)點(diǎn)擊“確認(rèn)”按鈕后,使“開始考試”按鈕可用,

并使“學(xué)號(hào)”、“姓名”后的文本框及“確認(rèn)”按鈕不可用。點(diǎn)擊“開始考試”

按鈕后,使“下一題”按鈕可用,同時(shí)設(shè)置“開始考試”按鈕不可用。

三C/S考試系統(tǒng)□0?

importjava.awt.event.*;

importjavax.swing.*;

classTestPanelextendsJPanelimplementsActionListener

|

JButtonstartButton;

JLabeltimeLabel;

JTextAreaquestionArea;

JRadioButtonradioButton[]=newJRadioButton[5];〃五個(gè)單選按鈕,

目的是設(shè)置前四個(gè)答案選項(xiàng)都不選中,而第五個(gè)選項(xiàng)選中,但第五個(gè)按鈕設(shè)置為不可見

ButtonGroupbuttonGroup=newButtonGroupO;

JButtonanswerButton;

JButtonquestionButton;

JButtonscoreButton;

publicTestPanel()

(

setLayout(newBorderLayout());

JPanelnorthPanel=newJPanel();

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

startButton=newJButton(〃開始考試“);

startButton.addActionListener(this);

timeLabel=newJLabel(〃考試剩余時(shí)間〃);

northPanel.add(startButton);

northPanel.add(timeLabel);

add(northPanel,BorderLayout.NORTH);

questionArea=newJTextArea(30,10);

questionArea.setLineWrap(true);

questionArea.setWrapStyleWord(true);

questionArea.setFont(newFont(〃幼圓〃,F(xiàn)ont.PLAIN,16));

intvScroll=ScrolIPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED;

inthScroll=ScrolIPaneConstants.HORIZONTAL_SCROLLBAR_NEVER;

add(new

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

JPanelsouthPanel=newJPanel();

JPanelradioPanel二newJPanel();〃放5個(gè)單選按鈕的面板

Strings□={〃A〃,〃B〃,〃C〃,〃D〃,〃〃};

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

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

buttonGroup.add(radioButton[i]);

radioPanel,add(radioButton[i]);

)

radioBu11on[radioButton.1ength-1].setVisible(false);〃第五個(gè)

單選按鈕不可見

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);

)

}

)

classMyFrameextendsJFrameimplementsActionListener

(

JButtonstartButton;

JLabelxh,xm;

JTextFieldxhl,xml;

JButtonok;

TestPaneltp=newTestPanel();

MyFrame()

(

JPanelp=newJPanel();

xh=newJLabel(“學(xué)號(hào):〃);

xm二newJLabel(〃姓名:〃);

xhl=newJTextField(10);

xml=newJTextField(lO);

ok=newJButton("確認(rèn)”);

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();}

項(xiàng)目6

一、選擇題

1.以下類中,具有繪圖能力的類是(B)。

A)ImageB)GraphicsC)FontD)Color

2.Graphics類中提供的繪圖方法分為兩類:一類是繪制圖形,另一類是繪

制(B)。

A)屏幕B)文本C)顏色D)圖像

3.下列方法中不屬于Graphics類的顯示文本的方法是(D)。

A)drawBytesB)drawCharsC)drawStringD)drawLine

4.下面的程序?qū)崿F(xiàn)了在窗口中繪制一個(gè)以(70,70)為圓心,50為半徑,

邊框是綠色的圓,圓心是紅色的。應(yīng)填入的語句行是(B)。

classexamextendsFrame

publicvoidpaint(Graphicsg)

{

g.setColor(Color,green);

g.drawOval(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.drawOval(70,70,70,70);

5.在窗體的坐標(biāo)(50,50)處以紅色顯示“紅色文字”,填入的正確語句

是(C)O

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。方法的參數(shù)是Graphics類的實(shí)例。

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

寬度、高度。

3.如果在(60,80)處畫一個(gè)點(diǎn),通過drawOval方法實(shí)現(xiàn),則該方法中的參

數(shù)應(yīng)為(60,80,1,1)。

4.如果畫圓角矩形,drawRect方法中的參數(shù)應(yīng)為3個(gè),其中后兩個(gè)參

數(shù)的作用是表示圓角的寬度和高度。

5.如果設(shè)定輸出在某個(gè)組件上的文本的字體,用的方法是

setFont(),該方法中的參數(shù)應(yīng)是Font類的對(duì)象。

6.以下程序輸出的是繪制一條(20,20)到(20,50)之間的綠色直

classexamextendsFrame

{publicvoidpaint(Graphicsg)

{g.setColor(Color,green);

g.drawRect(20,20,1,30);

)

三、編程題

1.編寫程序,藍(lán)色輸出26個(gè)大寫字母,隨機(jī)彩色輸出26個(gè)小寫字母。

importjava.awt.*;

publicclassExercise61extendsFrame

publicExercise4_3_l()

{

setSize(600,200);

setVisible(true);

publicvoidpaint(Graphicsg)

(

chars[]=newchar[26];

inti;

g.setColor(Color,blue);

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

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論