




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
Java程序設(shè)計項目教程(第二版)-參考答案
項目1
一、思考題
1.Java程序有幾種版本,分別是什么?
Java有三種版本,分別是J2ME、J2SE、J2EE
2.Java程序有何特點?
Java語言的特點如下:
①面向?qū)ο螅褐С执a繼承及重用,是完全面向?qū)ο蟮?,它不支持類似C
語言那樣的面向過程的程序設(shè)“技術(shù)。
②解釋執(zhí)行:Java解釋器(運行系統(tǒng))能直接運行目標(biāo)代碼指令。
③平臺無關(guān):Java源程序被編譯成一種高層次的與機器無關(guān)的Byte-codes
格式語言,被設(shè)計在Java虛擬機上運行。
④多線程:Java提供的多線程功能使得在一個程序里可同時執(zhí)行多個小任
務(wù)。多線程帶來的好處是可以有更好的交互性能和實時控制性能。
⑤健壯性:Java致力于檢查程序在編譯和運行時的錯誤,類型檢查幫助檢
查出許多開發(fā)早期出現(xiàn)的錯誤。
3.什么是JVM,為什么需要JVM?
JVM即Javn虛擬機,是一臺可以存在于不同的真實的軟、硬件環(huán)境下的虛
擬的計算機,其功能是將字節(jié)碼解釋為真實平臺能執(zhí)行的指令。Java正是通過
虛擬機JVM技術(shù),實現(xiàn)了與平臺無關(guān),實現(xiàn)“編寫一次,到處運行”。因此,
任何平臺只要安裝相應(yīng)的Java虛擬機環(huán)境,就能運行Java程序。
4.如何理解Java程序的基本結(jié)構(gòu)?
①語句packagepl;是建立一個包(文件夾),生成的類文件將存放于包
中。
②程序第一行publicclass類名{},是一個類定義語句。public關(guān)鍵字
指明類的訪問方式為公有,也就是在整個程序內(nèi)都可以訪問到它。如果將類定
義為public,則類其名稱必須與主文件名一致,并且大小寫敏感。
③類后大括號內(nèi)可以定義類的成員和方法,對于一個可執(zhí)行的Java類,
main方法是必需的,而且該main方法必須是公有(public)、靜態(tài)(static)
和沒有返回值(void)的,同時它只能帶一個字符串型(String口)的參數(shù)。
④程序的一行“〃……”是注釋,只說明不運行。
⑤每個命令語句結(jié)束,必須以“;”結(jié)尾。
二、編程
1.編寫一Java應(yīng)用程序,要求在屏幕上輸出字符串“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.數(shù)組中可以包含什么類型的元素?(D)
A.int型B.String型C.數(shù)組D.以上都
可以
2.Java中定義數(shù)組名為Arr,下面哪項可以得到數(shù)組元素的個數(shù)?(B)
A.Arr.length()B.Arr.lengthC.Arr(xyz)D.Arr
(xyz)
3.下面哪條語句定義了3個元素的數(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òu)成三角
形,如果能,能構(gòu)成什么樣的三角形(一般、等邊、等腰)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("構(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.試編寫一個程序,讀入10個學(xué)生的成績,成績在0?59分為D,成績在
60?79分為C,成績在80?89分為B,成績在90?100分為A,并輸出A、B、C、
D的人數(shù)個數(shù)。
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)+”個學(xué)生的成績〃);
c=getInputData();
)
nunia[i]=c;〃保存
System,out.printIn(nunia[i]);
switch(numa[i]/10)(
case10:
System.out.printin「成績?yōu)锳級!”);
al++;
break;
case9:
System.out.printing成績?yōu)锳級!”);
al++;
break;
case8:
System.out.printing成績?yōu)锽級!”);
a2++;
break;
case7:
System,out.printin「成績?yōu)镃級!〃);
a3++;
break;
case6:
System,out.printing成績?yōu)镃級!〃);
a3++;
break;
default:
System,out.prinlln(“成績?yōu)镈級!〃);
a4++;
break;
)
)
System,out.printin(*90-100分的人數(shù)=〃+al);
System,out.printIn(?,80-89分的人數(shù)=〃+a2);
System,out.printIn(〃60-79分的人數(shù)=〃+a3);
System.out.printIn(z,0-59分的人數(shù)=〃+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.試編寫游戲程序,完成猜數(shù)字游戲,數(shù)字是由計算機隨機產(chǎn)生的100以
內(nèi)整數(shù)。一次就猜中得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.定義類頭(非內(nèi)部類)時,不可能用到的關(guān)鍵字是(B)
A)classB)privateC)extendsD)public
2.下列類頭定義中,錯誤的是(A)
A)publicxextendsy{...}B)publicclassxextendsy
{...)
C)classxextendsyimplementsyl{...}D)classx{...}
3.設(shè)A為已定義的類名,下列聲明A類的對象a的語句中正確的是(D)
A)floatAa;B)publicAa=A();
C)Aa=newint();D)staticAa=newA();
4.設(shè)X、Y均為已定義的類名,下列聲明類X的對象xl的語句中正確的
是(C)
A)publicXxl=newY();B)Xxl=X();
C)Xxl=newX();D)intXxl;
5.設(shè)X、Y為已定義的類名,下列聲明X類的對象xl的語句中正確的是
(A)
A)staticXxl;B)publicXxl=newX(int
123);
C)Yxl;D)Xxl=X();
6.有一個類A,以下為其構(gòu)造方法的聲明,其中正確的是(A)
A)publicA(intx){...}B)staticA(intx){...}
C)publica(intx){...}D)voidA(intx){...}
7.有一個類Student,以下為其構(gòu)造方法的聲明,其中正確的是(B)
A)voidStudent(intx){...}B)Student(intx){...}
C)s(intx){...}D)voids(intx){...}
8.下列選項中,用于定義接口的關(guān)鍵字是(A)
A)interfaceB)implementsC)abstractD)class
9.現(xiàn)有類A和接口B,以下描述中表示類A實現(xiàn)接口B的語句是(A)
A)classAimplementsBB)classBimplementsA
C)classAextendsBD)classBextendsA
二、填空題
1.如果子類中的某個變量的變量名與它的父類中的某個變量完全一樣,則
稱子類中的這個變量了父類的同名變量。
2.如果子類中的某個方法的名字、返回值類型和參數(shù)列表與它的父
類中的某個方法完全一樣,則稱子類中的這個方法覆蓋了父類的同名方法。
3.抽象方法只有方法頭,沒有方法體一。
4.接口中所有屬性均為pu為ic、static和final
的。
5.一個類如果實現(xiàn)一個接口,那么它就必須實現(xiàn)接口中定義的所有方法,
否則該類就必須定義成的。
6.lava語言中用于表示類間繼承的關(guān)鍵字是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.編寫一個類,描述學(xué)生的學(xué)號、姓名、成績。學(xué)號用整型,成績用浮點
型,姓名用String類型。編寫一個測試類,輸入學(xué)生的學(xué)號、姓名、成績,并
顯示該學(xué)號的學(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.nextDoubleO;
System,out.println(s.name+”的學(xué)號是"+s.sNum+"成績是"+s.score);
)
)
2.設(shè)il^一個Birthday類,其成員變量有:year,month,day:提供構(gòu)造方
法、輸出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.編寫一個類,描述汽車,其中用字符型描述車的牌號,用浮點型描述車
的價格。編寫一個測試類,其中有一個修改價格方法,對汽車對象進(jìn)行操作,
根據(jù)折扣數(shù)修改汽車的價格,最后在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應(yīng)用程序,設(shè)計一個汽車類Vehicle,包含的屬性有車輪
個數(shù)wheels和車重weighu小車類Car是Vehicle的子類,其中包含的屬性
有載人數(shù)loader??ㄜ囶怲ruck是Car類的子類,其中包含的屬性有載重量
payloado每個類都有構(gòu)造方法和輸出相關(guān)數(shù)據(jù)的方法。
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();分別定義
類飛機和鳥,實現(xiàn)CanFly接口。定義一個測試類,測試飛機和鳥,在main方
法中創(chuàng)建飛機對象和鳥對象,讓飛機和鳥起飛。
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.關(guān)于異常的定義,下列描述中最正確的一個是(D)。
A)程序編譯錯誤B)程序語法錯誤
C)程序自定義的異常事件D)程序編譯或運行時發(fā)生的異常事件
2.拋出異常時,應(yīng)該使用的子句是(A)。
A)throwB)catchC)finallyD)throws
3.自定義異常類時,可以繼承的類是(C)。
A)ErrorB)AppletC)Exception及其子類D)
AssertionError
4.當(dāng)方法產(chǎn)生異常但卻無法確定該如何處理時,應(yīng)采用的方法是(C)。
A)聲明異常B)捕獲異常C)拋出異常D)自定義異常
5.對于try{…}catch子句的排列方式,正確的一項是(A)。
A)子類異常在前,父類異常在后B)父類異常在前,子類異常在后
C)只能有子類異常D)父類異常與子類異常不能同時出
現(xiàn)
6.下列關(guān)于try、catch和finally的表述,錯誤的是(C)。
A)by語句塊后必須緊跟catch語句塊B)catch語句塊必須緊跟在
語句塊后
C)可以有try但無catchD)可以有try但無finally
7.下列描述中,錯誤的一項是(A)。
A)一個程序拋出異常,其他任何運行中的程序都可以捕獲
B)算術(shù)溢出需要進(jìn)行異常處理
C)在方法中檢測到錯誤但不知如何處理時,方法就聲明異常
D)任何沒有被程序捕獲的異常最終被默認(rèn)處理程序處理
8.下面程序運行時,會產(chǎn)生的異常是(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.異常處理機制可以允許根據(jù)具體的情況選擇在何處處理異常,可以在當(dāng)
前方法中捕獲并處理,也可以用throws子句把它交給調(diào)用方法
去處理。
4.數(shù)組下標(biāo)越界對應(yīng)的類是__ArrayIndexOutOfBoundsException_____
5.為達(dá)到高效運行的要求,一運行時產(chǎn)生—的異常,可以直接交函嬴
虛擬機系統(tǒng)來處理,而Exception類派生出的非運行異常,要求編寫程序捕
獲或者聲明。
三、編程題
1.從鍵盤輸入5個數(shù),求出5個數(shù)的階乘之和。若輸入負(fù)數(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,“input:'));
try
(
if(x<0)thrownewException();
for(intk=l;k<=x;k++)
sum=sum+j;
}catch(Exceptione)
{
System.out.printin("輸入了一個負(fù)數(shù),請重新輸入!〃);
i—;
)
)
System.out.println]”階乘和為:〃+sum);
)
)
2.設(shè)計自己的異常類,從鍵盤輸入一個數(shù),若輸入的數(shù)不小于0,則輸出它
的平方根。若小于0,則輸出提示信息“輸入錯誤”。(求平方根的方法
為:Math,sqrt(intx))
importjavax.swing.*;
classMyExceptionextendsException
(
staticinti=3;
MyException()
(
super(〃產(chǎn)生異常!〃);
)
)
classExceptionTest
(
publicstaticvoidmain(Stringargs[])
(
int
x=lnteger.parselnt(JOptionPane.showInputDialog(null,“input:〃));
try
(
if(x<0)thrownowMyException();
System,out.printin(〃輸入數(shù)的平方根為:〃+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.按設(shè)定的行數(shù)和列數(shù)以網(wǎng)格的形式排列組件。
C.將窗口劃分成五部分,在這五個區(qū)域中添加組件。
D.組件相互疊加排列在容器中。
3.BorderLayout的布局策略是(C)
A.按添加的順序由左至右將組件排列在容器中。
B.按設(shè)定的行數(shù)和列數(shù)以網(wǎng)格的形式排列組件。
C.將窗口劃分成五部分,在這五個區(qū)域中添加組件。
D.組件相互疊加排列在容器中。
4.GridLayout的布局策略是(B)
A.按添加的順序由左至右將組件排列在容器中。
B.按設(shè)定的行數(shù)和列數(shù)以網(wǎng)格的形式排列組件。
C.將窗口劃分成五部分,在這五個區(qū)域中添加組件。
D.組件相互疊加排列在容器中。
5.JFrame中內(nèi)容窗格缺省的布局管理器是(B)
A.FlowLayoutB.BorderLayoutC.GridLayoutD.CardLayout
6.監(jiān)聽事件和處理事件(B)
A.都由Listener完成B.都由相應(yīng)事件Listener處注冊的構(gòu)
件完成
C.由Listener和構(gòu)件分別完成D.由Listener和窗口分別完成
7.在下列事件處理機制中不是機制中的角色的是(A)
A.事件B.事件源C.事件接口D.事件處
理者
8.addActionListcner(this)方法中的this參數(shù)表示的意思是(B)
A.當(dāng)有事件發(fā)生時,應(yīng)該使用this監(jiān)聽器B.this對象類會處理
此事件
C.this事件優(yōu)先于其他事件D.只是一種形式
9,下列關(guān)于Component的方法中,錯誤的是(A)
A.getName()用于獲得組件的名字B.getSize()用于獲得組件
的大小
C.setColor()用于設(shè)置前景顏色D.setVisible()設(shè)置組
件是否可見
10.當(dāng)窗口關(guān)閉時,會觸發(fā)的事件是(C)
A.ContainerEventB.ItemEventC.WindowEvent
D.MouseEvent
二、填空題
1.AWT的用戶界面組件庫被更穩(wěn)定、通用、靈活的庫取代,該庫稱為—
swingo
2.布局管理器用于安排容器上的GUI組件。
3.設(shè)置容器布局管理器的方法是setLayoutO。
4.當(dāng)釋放鼠標(biāo)按鍵時,將產(chǎn)生_mouseRelease事件。
5.Java為那些聲明了多個方法的Listener接口提供了一個對應(yīng)的適配
翟_,在該類中實現(xiàn)了對應(yīng)接口的所有方法。
6.ActionEvcnt事件的監(jiān)聽接口是ActionListcner,注冊方法名是_
addActionListener(),事件處理方法名是publicvoid
actionperformed。。
7.圖形用戶界面通過事件響應(yīng)用戶和程序的交互,產(chǎn)生事件的組
件稱為事件源°
8.Java的Swing包中定義菜單的類是JMenu。
三、編程題
1.設(shè)計如圖所示樣式的圖形用戶界面(不要求實現(xiàn)功能)。
I當(dāng)前時間:p一時四分眄"秒
I鬧鐘時間:I-時I―分I-秒
鬧鐘設(shè)置四三1
importjavax.swing.*;
classDemo
publicDemo()
JLabelbl=newJLabcl("當(dāng)前時間:“);
JLabelb2=newJLabel("時”);
JLabelb3=newJLabel("分”);
JLabelb4=newJLabel("秒”);
JLabelb5=newJLabel("鬧鐘時間:");
JLabelb6=newJLabel("時”);
JLabelb7=newJLabel(〃分”);
JLabelb8=newJLabel(〃秒〃);
JLabelb9=newJLabel("鬧鐘設(shè)置”);
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("關(guān)");
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.編寫一個將華氏溫度轉(zhuǎn)換為攝氏溫度的程序。其中一個文本框輸入華氏
溫度,另一個文本框顯示轉(zhuǎn)換后的攝氏溫度,一個按鈕完成溫度的轉(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=newJ3utton("轉(zhuǎn)換”);
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.設(shè)計一個界面如圖。當(dāng)點擊“確認(rèn)”按鈕后,使“開始考試”按鈕可用,
并使“學(xué)號”、“姓名”后的文本框及“確認(rèn)”按鈕不可用。點擊“開始考試”
按鈕后,使“下一題”按鈕可用,同時設(shè)置“開始考試”按鈕不可用。
:C/S考試系統(tǒng)□0?
importjava.awt.*;
importjava.awt.event.*;
importjavax.swing.*;
classTestPanelextendsJPanelimplementsActionListener
(
JButtonstartButton;
JLabeltimeLabel;
JTextAreaquestionArea;
JRadioButtonradicButton[]=newJRadioButton[5];〃五個單選按鈕,
目的是設(shè)置前四個答案選項都不選中,而第五個選項選中,但第五個按鈕設(shè)置為不可見
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("學(xué)號:〃);
xm=newJLabel("姓名:”);
xhl=newJTextField(lO);
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();}
}
項目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.下面的程序?qū)崿F(xiàn)了在窗口中繪制一個以(70,70)為圓心,50為半徑,
邊框是綠色的圓,圓心是紅色的。應(yīng)填入的語句行是(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.在窗體的坐標(biāo)(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()方法的參數(shù)是Graphics類的實例。
2.drawRect(intxl,intyl,intx2,inty2)中,x2和y2分別代表矩形的
寬度、高度。
3.如果在(60,80)處畫一個點,通過drawOval方法實現(xiàn),則該方法中的參
數(shù)應(yīng)為(60,80,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 防水辦事處協(xié)議書
- 打胎分手后協(xié)議書
- 攝影店轉(zhuǎn)讓協(xié)議書
- 實驗室三方協(xié)議書
- 花溪區(qū)離婚協(xié)議書
- 孵化室承包協(xié)議書
- 打疫苗自愿協(xié)議書
- 糧油店合伙協(xié)議書
- 聘銷售總監(jiān)協(xié)議書
- 投資后保密協(xié)議書
- 2025年商法知識競賽考試試卷及答案
- 2025屆廣東省佛山市順德區(qū)龍江鎮(zhèn)八下物理期末統(tǒng)考試題含解析
- 2025年山東省臨沂市平邑縣中考一模語文試題(含答案)
- 食品安全自查、從業(yè)人員健康管理、進(jìn)貨查驗記錄、食品安全事故處置保證食品安全的規(guī)章制度
- 2025中考語文??甲魑难侯}(10大主題+10篇范文)
- 《管理信息系統(tǒng)》課程設(shè)計報告范文
- GB∕T 37821-2019 廢塑料再生利用技術(shù)規(guī)范
- 測量學(xué)地形圖的基本知識培訓(xùn)講義PPT(講解)
- 自控實驗三線性定常系統(tǒng)的穩(wěn)態(tài)誤差
- 特種設(shè)備作業(yè)人員考試中心質(zhì)量管理手冊(共31頁)
- COC文件審核清單
評論
0/150
提交評論