Java基礎(chǔ)案例教程(第2版)課后習(xí)題答案_第1頁
Java基礎(chǔ)案例教程(第2版)課后習(xí)題答案_第2頁
Java基礎(chǔ)案例教程(第2版)課后習(xí)題答案_第3頁
Java基礎(chǔ)案例教程(第2版)課后習(xí)題答案_第4頁
Java基礎(chǔ)案例教程(第2版)課后習(xí)題答案_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第二十一頁第1章 Java開發(fā)入門一.填空題1.面向?qū)ο?,SUN2.JavaSE,JavaEE,JavaME3.面向?qū)ο蟆⒖缙脚_性、支持多線程4.JDK5.bin目錄二.判斷1.對2.錯3.錯4.對5.錯三.選擇1.C2.ABCD3.D4.A5.D四.簡答1.簡答性、面向?qū)ο蟆踩?、跨平臺性、支持多線程、分布性。2.Java程序運行時,必須經(jīng)過編譯和運行兩個步驟。首先將后綴名為.java的源文件進行編譯,生成后綴名為.class的字節(jié)碼文件,然后Java虛擬機將字節(jié)碼文件進行解釋執(zhí)行,并將結(jié)果顯示出來。五.編程HelloWorld.java1 publicclassHelloWorld{2 publicstaticvoidmain(String[]args){3 System.out.println("這是第一個Java程序!");4 }5 }第2章 Java編程基礎(chǔ)一.填空題1.class2.單行注釋、多行注釋、文檔注釋3.基本數(shù)據(jù)、引用數(shù)據(jù)4.&、&&、|、||5.容器、0二.判斷1.錯2.錯3.對4.對5.對三.選擇1.AC2.A3.B4.D5.C四.簡答1.Java語言的八種基本數(shù)據(jù)類型有:byte字節(jié)型,占一個字節(jié)。short短整型,占兩個字節(jié)。int整型,占4個字節(jié)。long長整型,占8個字節(jié)。float單精度浮點型,占4個字節(jié)。double雙精度浮點型,占8個字節(jié)。char字符型,占兩個字節(jié)。boolean型,表示邏輯值,有true和false兩個值,分別占一個字節(jié)。2.在switch條件語句和循環(huán)語句中都可以使用break語句。當(dāng)它出現(xiàn)在switch條件語句中時,作用是終止某個case并跳出switch結(jié)構(gòu)。當(dāng)它出現(xiàn)在循環(huán)語句中,作用是跳出循環(huán)語句,執(zhí)行循環(huán)后面的代碼;continue語句用在循環(huán)語句中,它的作用是終止本次循環(huán),執(zhí)行下一次循環(huán)。五.編程1.參考答案publicclassgetSum{ publicstaticvoidmain(String[]args){ intsum=0; for(inti=1;i<100;i++){ if(i%2!=0) sum+=i; } System.out.println(sum); }}2.參考答案publicclassExample28{ publicstaticvoidmain(String[]args){ int[]arr={22,24,76,12,21,33}; intmax=getMax(arr); System.out.println("max="+max); } staticintgetMax(int[]arr){ intmax=arr[0];/ for(intx=1;x<arr.length;x++){ if(arr[x]>max){ / max=arr[x]; } } returnmax; }}第3章 面向?qū)ο螅ㄉ希┮?、填空題1.封裝、繼承、多態(tài)2.class3.private、protected、public4.static5.private二、判斷題1.錯2.錯3.對4.對5.對三、選擇題1.D2.B3.D4.A5.B四、簡答題1.封裝、繼承、多態(tài)面向?qū)ο蟮奶攸c主要可以概括為封裝性、繼承性和多態(tài)性。其中封裝是面向?qū)ο蠛诵乃枷?,"將對象的屬性和行為封裝起來","不需要讓外界知道具體實現(xiàn)細節(jié)","這就是封裝思想。繼承性主要描述的是類與類之間的關(guān)系","通過繼承","可以在無需重新編寫原有類的情況下","對原有類的功能進行擴展。多態(tài)性指的是在程序中允許出現(xiàn)重名現(xiàn)象","它指在一個類中定義的屬性和方法被其它類繼承后","它們可以具有不同的數(shù)據(jù)類型或表現(xiàn)出不同的行為","這使得同一個屬性和方法在不同的類中具有不同的語義。2.在Java中,定義在類中的變量被稱為成員變量。定義在方法中的變量被稱為局部變量。如果在某一個方法中定義的局部變量與成員變量同名,這種情況是允許的。此時,在方法中通過變量名訪問到的是局部變量,而并非成員變量。五、編程題Student.javapublicclassStudent{privateStringsNo;privateStringsName;privateStringsSex;privateintsAge;privateintsJava;//getter&setter方法publicStringgetsNo(){returnsNo;}publicvoidsetsNo(StringsNo){this.sNo=sNo;}publicStringgetsName(){returnsName;}publicvoidsetsName(StringsName){this.sName=sName;}publicStringgetsSex(){returnsSex;}publicvoidsetsSex(StringsSex){this.sSex=sSex;}publicintgetsAge(){returnsAge;}publicvoidsetsAge(intsAge){this.sAge=sAge;}publicintgetsJava(){returnsJava;}publicvoidsetsJava(intsJava){this.sJava=sJava;}publicStudent(StringsNo,StringsName,StringsSex,intsAge,int sJava){this.sNo=sNo;this.sName=sName;this.sSex=sSex;this.sAge=sAge;this.sJava=sJava;}}Test.javapublicclassTest{ publicstaticvoidmain(String[]args){ Student[]students=newStudent[5]; students[0]=newStudent("220110","Tom","男",18,85); students[1]=newStudent("220111","Tohm","男",18,82); students[2]=newStudent("220112","Tomf","女",18,79); students[3]=newStudent("220113","WTom","男",18,85); students[4]=newStudent("220114","seTom","男",18,90); intsum=0; intaverage=0; intmax=students[0].getsJava(); intmin=students[0].getsJava(); for(Studentstudent:students){ intjava=student.getsJava(); sum+=java; if(max<java){ max=java; } if(min>java){ min=java; } } average=sum/(students.length); System.out.println("Java語言的平均成績是:"+average); System.out.println("Java語言成績的最大值是:"+max); System.out.println("Java語言成績的最小值是:"+min); }第4章 面向?qū)ο螅ㄏ拢┮?、填空題1.12.重寫3.final4.instanceof5.implements二、判斷題1.對2.對3.錯4.對5.錯三、選擇題1.B2.D3.B4.D5.C四、簡答題1.概念:在Java中","類的繼承是指在一個現(xiàn)有類的基礎(chǔ)上去構(gòu)建一個新的類","構(gòu)建出來的新類被稱作子類","現(xiàn)有類被稱作父類","子類會自動擁有父類所有可繼承的屬性和方法。好處:繼承性主要描述的是類與類之間的關(guān)系","通過繼承","可以無需重新編寫原有類的情況下","對原有類的功能進行使用和擴展。2.1、應(yīng)用程序不必為每一個子類編寫功能調(diào)用","只需要對抽象父類進行處理即可。大大提高程序的可復(fù)用性。2、子類的功能可以被父類的方法或引用變量所調(diào)用","這叫向后兼容","可以提高可擴充性和可維護性。3、使用多態(tài)可以解決項目中緊偶合的問題","提高程序的課擴展性.是OCP原則的一個具體的實現(xiàn)。五、編程題Employee.javaabstractclassEmployee{ privateStringname; //定義姓名name并私有化屬性 privateintmonth; //定義生日月份month并私有化屬性 publicEmployee(){} //無參構(gòu)造器 publicEmployee(Stringname,intmonth){//有參構(gòu)造方法 =name;//給屬性name初始化賦值 this.month=month;//給屬性month初始化賦值 } //獲取屬性name的方法 publicStringgetName(){ returnname;//返回name屬性 } //獲取屬性month的方法 publicintgetMonth(){ returnmonth;//返回month屬性 } //給屬性name賦初始值 publicvoidsetName(Stringname){ =name;//本類中的屬性name } //給屬性month賦初始值 publicvoidsetMonth(intmonth){ this.month=month;//本類中的屬性month }//創(chuàng)建getSalary()方法計算工資,參數(shù)month是月份,如果當(dāng)月是員工生日,獎勵100元 publicdoublegetSalary(intmonth){ doublesalary=0;//定義工資變量 //判斷當(dāng)前月份是否是員 工的生日月份,如果是獎勵100元 if(this.month==month){ salary=salary+100; returnsalary;//返回工資salary } }}SalariedEmployee.javaclassSalariedEmployeeextendsEmployee{ privatedoublemonthSalary; //封裝monthSalary屬性 publicSalariedEmployee(){} //無參構(gòu)造方法 //有參構(gòu)造方法參數(shù)姓名生日月份月薪 publicSalariedEmployee(Stringname,intmonth,doublemonthSalary){ super(name,month);//調(diào)用父類有參構(gòu)造方法 this.monthSalary=monthSalary;//為屬性monthSalary初始化賦值 } //獲取monthSalary的值 publicdoublegetMonthSalary(){ returnmonthSalary; } //給monthSalary賦值 publicvoidsetMonthSalary(doublemonthSalary){ this.monthSalary=monthSalary; } //覆蓋父類中的方法 publicdoublegetSalary(intmonth){//定義工資變量 doublesalary=monthSalary+super.getSalary(month); returnsalary; }}HourlyEmployee.javaclassHourlyEmployeeextendsEmployee{ privatedoublehourlySalary;//定義屬性hourlySalary每小時的工資 privateinthours; //定義屬性hours每月工作的小時數(shù) publicHourlyEmployee(){}//無參構(gòu)造方法 //有參構(gòu)造方法參數(shù)姓名生日月份每小時的工資每月工作的小時數(shù) publicHourlyEmployee(Stringname,intmonth,doublehourlySalary,int hours){ super(name,month); //調(diào)用父類有參構(gòu)造方法 this.hourlySalary=hourlySalary; //為屬性hourlySalary初始化賦值 this.hours=hours; //為屬性hours初始化賦值 } publicdoublegetHourlySalary(){//獲取hourlySalary的值 returnhourlySalary; } publicintgetHours(){//獲取hours的值 returnhours; } //定義set方法設(shè)置hourlySalaryhours的值 publicvoidsetHourlySalary(doublehourlySalary){ this.hourlySalary=hourlySalary; } publicvoidsetHourly(inthours){ this.hours=hours; } //覆蓋父類方法 publicdoublegetSalary(intmonth){ if(hours<0){//如果工作小時數(shù)小于0輸出數(shù)據(jù)錯誤 System.out.println("數(shù)據(jù)錯誤"); return0; } //小于160個小時的按照每個月的工作小時數(shù)乘以每小時的工資 elseif(hours<=160) returnhourlySalary*hours+super.getSalary(month); //超出160個小時的小時數(shù)按照1.5倍計算 elsereturnhourlySalary*160+hourlySalary*1.5*(hours- 160)+super.getSalary(month); }}SalesEmployee.javaclassSalesEmployeeextendsEmployee{ privatedoublesales; //定義銷售額sales privatedoublerate; //定義提成率rate publicSalesEmployee(){} publicSalesEmployee(Stringname,intmonth,doublesales,doublerate){ super(name,month); this.sales=sales; this.rate=rate; } publicdoublegetSales(){ returnsales; } publicdoublegetRate(){ returnrate; } publicvoidsetSales(doublesales){ this.sales=sales; } publicvoidsetRate(doublerate){ this.rate=rate; } publicdoublegetSalary(intmonth){ returnthis.getSales()*(1+this.getRate())+super.getSalary(month); }}BasePlusSalesEmployee.javaclassBasePlusSalesEmployeeextendsSalesEmployee{ privatedoublebaseSalary;//定義基礎(chǔ)工資baseSalary //無參構(gòu)造方法 publicBasePlusSalesEmployee(){} //有參構(gòu)造方法 publicBasePlusSalesEmployee(Stringname,intmonth,doublesales,double rate,doublebaseSalary){ super(name,month,sales,rate); this.baseSalary=baseSalary; } //get/set方法對私有屬性的調(diào)用和設(shè)置 publicdoublegatBaseSalary(){ returnbaseSalary; } publicvoidsetBaseSalary(){ this.baseSalary=baseSalary; } publicdoublegetSalary(intmonth){ returnbaseSalary+super.getSalary(month); }}Test.java//定義一個測試類publicclassTest{ publicstaticvoidmain(String[]args){ //聲明一個Employee類型的數(shù)組,并創(chuàng)建不同子類型的對象 Employee[]employee={newSalariedEmployee(“張三”,1,6000),new HourlyEmployee(“李 四”,2,50,180),newSalesEmployee(“王 五”,3,6500,0.15),newBasePlusSalesEmployee(“趙 六”,4,5000,0.15,2000)}; //打印每個員工的工資 for(inti=0;i<employee.length;i++) System.out.println(Math.round(employee[i].getSalary(10))); }}第5章 JavaAPI一.填空1.StringStringBuffer2.length()3.Math.abs();4.隨機產(chǎn)生數(shù)字5.Long字段標(biāo)準(zhǔn)Java計算時代(就是1970年1月1日開始)納秒數(shù)二.判斷1.錯2.錯3.錯4.對5.對三.選擇1.B2.C3.A4.A5.A四.簡答1.StringBuffer類和StringBuilder類的對象都可以被多次修改,并不產(chǎn)生新的未使用對象,StringBuilder類是JDK5中新加的類,它與StringBuffer之間最大不同在于StringBuilder的方法是線程安全的,也就是說StringBuffer不能被同步訪問,而StringBuilder可以。2.基本數(shù)據(jù)類型對應(yīng)的包裝類byteBytecharCharacterintIntegershortShortlongLongfloatFloatdoubleDoublebooleanBoolean五.編程1.參考答案publicstaticvoidmain(Stringargs){for(inti=0;i<10;i++){System.out.println(newRandom().nextInt(100));}}2.參考答案publicclassTest01{ publicstaticvoidmain(String[]args){ Stringstr="HelloWorld"; //字符串轉(zhuǎn)成char數(shù)組 char[]ch=str.toCharArray(); StringBufferbuffer=newStringBuffer(); for(inti=str.length()-1;i>=0;i--){ if(ch[i]>='A'&&ch[i]<='Z'){ buffer.append(String.valueOf(ch[i]).toLowerCase()); }elseif(ch[i]>='a'&&ch[i]<='z'){ buffer.append(String.valueOf(ch[i]).toUpperCase()); } } System.out.println(buffer.toString()); }}第6章 集合類一.填空1.Collection2.hashNext()next()3.ArrayList、LinkedList,HashSet、TreeSet,HashMap、TreeMap4.Key、Value5.數(shù)組二.判斷1.錯2.對3.對4.對5.錯三.選擇1.BC2.B3.ABCD4.D5.C四.簡答1.List的特點是元素有序、可重復(fù)。List接口的主要實現(xiàn)類有ArrayList和LinkedList。Set的特點是元素?zé)o序、不可重復(fù)。Set接口的主要實現(xiàn)類有HashSet和TreeSet。Map的特點是存儲的元素是鍵(Key)、值(Value)映射關(guān)系,元素都是成對出現(xiàn)的。Map接口的主要實現(xiàn)類有HashMap和TreeMap。2.由于ArrayList集合的底層是使用一個數(shù)組來保存元素,在增加或刪除指定位置的元素時,會導(dǎo)致創(chuàng)建新的數(shù)組,效率比較低,因此不適合做大量的增刪操作。但這種數(shù)組的結(jié)構(gòu)允許程序通過索引的方式來訪問元素,因此使用ArrayList集合查找元素很便捷。五.編程1.參考答案importjava.util.*;classStudent{

privateintage;

privateStringname;

publicStudent(intage,Stringname){

this.age=age;

=name;

}

publicStringtoString(){

returnage+":"+name;

}

publicinthashCode(){

returnname.hashCode()+age;

}

publicbooleanequals(Objectobj){

if(this==obj)

returntrue;

if(!(objinstanceofStudent))

returnfalse;

Studentstu=(Student)obj;

return.equals()&&this.age==stu.age;

}}publicclassTest{

publicstaticvoidmain(String[]args){

HashSet<Student>hs=newHashSet<Student>();

hs.add(newStudent(18,"zhangsan"));

hs.add(newStudent(20,"lisa"));

hs.add(newStudent(20,"lisa"));

System.out.println(hs);

}}2.參考答案interfaceGeneric<T>{publicabstractvoidget(Tt){}}classGeneric<T>implementsGeneric{publicvoidget(Tt){}}第7章 IO(輸入輸出)一.填空1.字節(jié)流、字符流2.java.io3.二進制(字節(jié))4.BufferedInputStreamBufferedOutputStream5.InputStreamReaderOutputStreamWriter二.判斷1.錯2.對3.錯4.錯三.選擇1.AB2.C3.A4.C5.C四.簡答1.字節(jié)流的兩個基類是InputStream和OutputStream,字符流的兩個基類是Reader和Writer,它們都是Object類的直接子類,字節(jié)流是處理以8位字節(jié)為基本單位的字節(jié)流類;Reader和Writer類是專門處理16位字節(jié)的字符流類。2.InputStreamReader是Reader的子類,它可以將一個字節(jié)輸入流轉(zhuǎn)換成字符輸入流,方便直接讀取字符。OutputStreamWriter是Writer的子類,它可以將一個字節(jié)輸出流轉(zhuǎn)換成字符輸出流,方便直接寫入字符。五.編程1.參考答案importjava.io.*;publicclassTest01{ publicstaticvoidmain(String[]args)throwsException{ //字節(jié)流拷貝 FileInputStreamin=newFileInputStream("E:/src.txt"); FileOutputStreamout=newFileOutputStream("E:/des1.txt"); byte[]buf=newbyte[1024]; intlen; while((len=in.read(buf))!=-1){ out.write(buf,0,len); } in.close(); out.close(); //字符流拷貝 BufferedReaderbf=newBufferedReader(newFileReader("E:/src.txt")); BufferedWriterbw=newBufferedWriter(newFileWriter("E:/des2.txt")); Stringstr; while((str=bf.readLine())!=null){ bw.write(str); bw.newLine(); } bf.close(); bw.close(); }}第8章 多線程一.填空1.ThreadRunnable2.新建狀態(tài)(New)、就緒狀態(tài)(Runnable)、運行狀態(tài)(Running)3.start()、run()方法4.sleep()5.synchronized二.判斷1.錯2.錯3.對4.對5.對三.選擇1.C2.C3.C4.D5.BC四.簡答1.一種是繼承java.lang包下的Thread類,覆寫Thread類的run()方法,在run()方法中實現(xiàn)運行在線程上的代碼。newThread(){publicvoidrun(){}}.start();另一種就是實現(xiàn)java.lang.Runnable接口,同樣是在run()方法中實現(xiàn)運行在線程上的代碼。classMyThreadimplementsRunnable{ publicvoidrun(){}}2.同步代碼塊的作用是控制線程,保證同步代碼塊中只能有一個線程在運行,保證了多線程操作數(shù)據(jù)的安全性。五.編程1.參考答案publicclassTest01{ publicstaticvoidmain(String[]args){ Teachert=newTeacher(); newThread(t,"陳老師").start(); newThread(t,"高老師").start(); newThread(t,"李老師").start(); }}classTeacherimplementsRunnable{ privateintnotes=50; publicvoidrun(){ while(true){ dispatchNotes(); if(notes<=0){ break; } } } privatesynchronizedvoiddispatchNotes(){ if(notes>0){ try{ Thread.sleep(10);//經(jīng)過的線程休眠10毫秒 }catch(InterruptedExceptione){ e.printStackTrace(); } System.out.println(Thread.currentThread().getName()+"發(fā)出的蘋果" +notes--); } }}第9章 網(wǎng)絡(luò)編程一、填空題1.UDP2.TCP3.DatagramSocket4.ServerSocket5.IO流二、判斷題1.對2.對3.錯4.對5.錯三、選擇題1.D2.A3.D4.B5.C四、簡答題1.UDP通信與TCP通信的區(qū)別在于,UDP中只有發(fā)送端和接收端,不區(qū)分客戶端與服務(wù)器端,計算機之間可以任意地發(fā)送數(shù)據(jù);而TCP通信是嚴(yán)格區(qū)分客戶端與服務(wù)器端的,在通信時,必須先由客戶端去連接服務(wù)器端才能實現(xiàn)通信,服務(wù)器端不可以主動連接客戶端,并且服務(wù)器端程序需要事先啟動,等待客戶端的連接。2.在TCP連接中必須要明確客戶端與服務(wù)器端,由客戶端向服務(wù)器端發(fā)出連接請求,每次連接的創(chuàng)建都需要經(jīng)過“三次握手”。第一次握手,客戶端向服務(wù)器端發(fā)出連接請求,等待服務(wù)器確認;第二次握手,服務(wù)器端向客戶端回送一個響應(yīng),通知客戶端收到了連接請求;第三次握手,客戶端再次向服務(wù)器端發(fā)送確認信息,確認連接。五、編程題AskServer.java/****在線客服咨詢?nèi)藛T**/publicclassAskServer{publicstaticvoidmain(String[]args){//創(chuàng)建DatagramSocket,發(fā)送接收數(shù)據(jù)都依賴他DatagramSocketsocket=null;try{socket=newDatagramSocket(8888);Scannerinput=newScanner(System.in);while(true){//準(zhǔn)備一個空的數(shù)據(jù)包,用來接收數(shù)據(jù)byte[]buf=newbyte[1024];DatagramPacketpacket=newDatagramPacket(buf,buf.length);//接收數(shù)據(jù)使用空的數(shù)據(jù)包socket.receive(packet);//輸出信息Stringinfo=newString(packet.getData(),0, packet.getLength());System.out.println("客戶端請求:"+info);//判斷是否退出if("bye".equals(info)){break;}//發(fā)送數(shù)據(jù)Stringresult=input.nextLine();byte[]buf2=result.getBytes();DatagramPacketpacket2=newDatagramPacket(buf2, buf2.length,packet.getAddress(),packet.getPort());socket.send(packet2);}}catch(SocketExceptione){e.printStackTrace();}catch(IOExceptione){e.printStackTrace();}finally{//關(guān)閉socketsocket.close();}}}AskClient.java/****在線客服客戶**/publicclassAskClient{publicstaticvoidmain(String[]args){//創(chuàng)建DatagramSocket,發(fā)送接收數(shù)據(jù)都依賴他DatagramSocketsocket=null;try{socket=newDatagramSocket(9999);Scannerinput=newScanner(System.in);while(true){//準(zhǔn)備要發(fā)送的數(shù)據(jù)Stringstr=input.nextLine();//bye//使用數(shù)據(jù)包把數(shù)據(jù)封裝起來byte[]buf=str.getBytes();DatagramPacketpacket=newDatagramPacket(buf,buf.length,InetAddress.getByName("52"),8888);//發(fā)送數(shù)據(jù)包socket.send(packet);//判斷是否退出if("bye".equals(str)){break;}//接收數(shù)據(jù)byte[]buf2=newbyte[1024];DatagramPacketpacket2=newDatagramPacket(buf2, buf2.length);socket.receive(packet2);System.out.println("服務(wù)器端反饋:"+ newString(packet2.getData(),0,packet2.getLength()));}}catch(SocketExceptione){e.printStackTrace();}catch(IOExceptione){e.printStackTrace();}finally{//關(guān)閉socketsocket.close();}}}第10章 JDBC一、填空題1.java.sql.DriverManager2.classpath3.update4.預(yù)編譯5.1二、判斷題1.錯2.錯3.對4.錯5.錯三、選擇題1.A2.A3.B4.B5.C四、簡答題 1.參考答案:(1)加載并注冊數(shù)據(jù)庫驅(qū)動;(2)通過DriverManager獲取數(shù)據(jù)庫連接;(3)通過Connection對象獲取Statement對象;(4)使用Statement執(zhí)行SQL語句;(5)操作ResultSet結(jié)果集;(6)回收數(shù)據(jù)庫資源。2.參考答案所謂預(yù)編譯,就是說當(dāng)相同的SQL語句再次執(zhí)行時,數(shù)據(jù)庫只需使用緩沖區(qū)中的數(shù)據(jù),而不需要對SQL語句再次編譯,從而有效提高數(shù)據(jù)的訪問效率。第11章 GUI一、填空題1.CENTER2.容器邊界3.setLayout()4.GridBagConstraints二、判斷題1.對2.錯3.錯4.對5.對三、選擇題1.D2.A3.A4.C5.C四、簡答題1.參考答案

1、創(chuàng)建GridbagLayout布局管理器,并使容器采用該布局管理器。

2、創(chuàng)建GridBagContraints對象(布局約束條件),并設(shè)置該對象的相關(guān)屬性。

3、調(diào)用GridBagLayout對象的setConstraints()方法建立GridBagConstraints對象和受控組件之間的關(guān)聯(lián)。

4、向容器中添加組件。2.參考答案(1)創(chuàng)建一個JMenuBar菜單欄對象,將其放置在JFrame窗口的頂部。(2)創(chuàng)建JMenu菜單對象,將其添加到JMenuBar菜單欄中。(3)創(chuàng)建JMenuItem菜單項,將其添加到JMenu菜單中。五、編程題CalTest.javaimportjavax.swing.*;importjava.awt.*;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;publicclassCalTestextendsJFrame{privateTextFieldfirText,secText,reText;privateJLabeleqLabel;privateJComboBoxjbox;privateString[]str;privateButtoncalb,clearb,exitb;privatePanelp,p2;publicstaticvoidmain(String[]args){newCalTest("運算器");}publicCalTest(){}publicCalTest(Stringtitle){setTitle(title);setLocation(500,200);setDefaultCloseOperation(3);setResizable(false);setLayout(newFlowLayout());init();pack();setVisible(true);}publicvoidinit(){p=newPanel();p.setSize(300,300);firText=newTextField(5);secText=newTextField(5);reText=newTextField(5);reText.setEditable(false);eqLabel=newJLabel("=");str=newString[]{"+","-","*","/"};jbox=newJComboBox(str);p.add(firText);p.add(jbox);p.add(secText);p.add(eqLabel);p.add(reText);add(p);p2=newPanel();calb=newButton("cal");calb.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEventarg0){//getSelectedItem()返回JComboBox所選項,返回Objection類型Stringsign=(String)jbox.getSelectedItem();

溫馨提示

  • 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)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論