java2實用教程(3版)-耿祥義-習題解答_第1頁
java2實用教程(3版)-耿祥義-習題解答_第2頁
java2實用教程(3版)-耿祥義-習題解答_第3頁
java2實用教程(3版)-耿祥義-習題解答_第4頁
java2實用教程(3版)-耿祥義-習題解答_第5頁
已閱讀5頁,還剩143頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

習題解答

第一章習題

1.

需3個步驟:

1)用文本編輯器編寫源文件

2)使用javac編譯源文件,得到字節碼文件

3)應用程序使用解釋器運行;小應用程序使用瀏覽器運行。

2.

應用程序必須有一個類含有publicstaticvoidmain(String

args[])方法,含有該方法的類稱為應用程序的主類。小應用程序

必須有一個類是java.applet.Applet類的子類,該類稱做主類。

應用程序中可以沒有public類,若有的話可以是應用程序中的

任何一個類。小應用程序的主類必須用public修飾。

3.

java的源程序是由若干個書寫形式互相獨立的類組成的。小

應用程序的主類必須用public修飾。應用程序中可以沒有public

類,若有的話可以是應用程序中的任何一個類。一個java的源

程序至多可以有一個public類。Java源文件的名字可以和其中

某個類的名字相同,擴展名是Java,但是,如果源程序中有public

類,那么源文件的名字必須和這個public類的名字相同,擴展

名是java。

4.屬于操作,解答略。

第二章習題

1.用來標識類名、變量名、方法名、類型名、數組名、文件名

的有效字符序列稱為標識符。標識符由字母、下劃線、美元符

號和數字組成,并且第?個字符不能是數字字符

2.關鍵字就是Java語言中已經被賦予特定意義的一些單詞,

不可以把關鍵字作為名字來用。

3.boolean,char,byte,short,int,long,float,doubleo

4.b=x;

5.數組b的長度為4

b[0]=l

6.屬于操作題,解答略。

7.屬于操作題,解答略。

8.

publicclassE

{publicstaticvoidmain(Stringargs[])

{charcStart=,a',cEnd=,3';

for(charc=cStart;c<=cEnd;c++)

{System.out.print。"+c);

)

}

}

第三章習題

L你愛她

2.beep!!

3.

publicclassXiti3_3

{publicstaticvoidmain(Stringargs[])

{doublesum=0,a=l;

inti=l;

while(i<=20)

{sum=sum+a;

i++;

a=a*i;

System.out.println("sum="+sum);

)

)

publicclassXiti4

{publicstaticvoidmain(Stringargs[])

{inti,j;

for(j=2;j<=100;j++)

{for(i=2;i<=j/2;i++)

{if(j%i==O)

break;

)

if(i>”2)

{System.out.print(""-Hj);

)

)

)

)

5.

classXiti5

{publicstaticvoidmain(Stringargs[])

{doublesum=0,a=l,i=l;

do{sum=sum+a;

i++;

a=(1.0/i)*a;

)

while(i<=20);

System.out.printin("使用do-while循環計算的

sum="+sum);

for(sum=0,i=1,a=1;i<=20;i++)

{a=a*(1.0/i);

sum=sum+a;

}

System.out.println("使用for循環計算的sum="+sum);

)

)

6.

classXiti6

{publicstaticvoidmain(Stringargs[])

{intsum=O,i,j;

for(i=1;i<=l000;i++)

{for(j=l,sum=0;j<i;j++)

{if(i%j==O)

sum=sum+j;

)

if(sum==i)

System.out.println("完數:"+i);

)

)

)

7.

publicclassEXiti7

{publicstaticvoidmain(Stringargs[])

{intm=8,item=m,i=l;

longsum=0;

while(i<=10)

{sum=sum+item;

i++;

item=item*10+m;

}

System,out.println(sum);

fbr(i=l,sum=0,item=m;i<=10;i++)

{sum=sum+item;

item=item*10+m;

)

System.out.println(sum);

)

)

8.

publicclassE

{publicstaticvoidmain(Stringargs[])

{intn=l;

longsum=0;

while(true)

{sum=sum+n;

n++;

if(sum>=8888)

break;

}

System.out.println("滿足條件的最大整數:"+(n-l));

)

)

第四章習題

1.用該類創建對象時。

2.一個類中可以有多個方法具有相同的名字,但這些方法的

參數必須不同,即或者是參數的個數不同,或者是參數的類型

不同

3.可以。不可以。

4.不可以。

5.如果子類和父類不在同一個包中,那么,子類繼承了父類

的protected、public成員變量做為子類的成員變量,并且繼

承了父類的protected、public方法為子類的方法。如果子類

和父類不在同一個包里,子類不能繼承父類的友好變量和友好

方法。

6.成員變量又分為實例變量和類變量,用static修飾的變量是

類變量。那么類變量和實例變量有什么區別呢?一個類通過使

用new運算符可以創建多個不同的對象,不同的對象的實例變

量將被分配不同的內存空間,如果類中的成員變量有類變量,

那么所有對象的這個類變量都分配給相同的一處內存,改變其

中一個對象的這個類變量會影響其它對象的這個類變量。也就

是說對象共享類變量。

7.如果子類和父類在同一個包中,那么子類自然地繼承了其

父類中不是private的成員變量作為自己的成員變量,并且也自

然地繼承了父類中不是private的方法作為自己的方法。繼承的

成員或方法的訪問權限保持不變。如果子類和父類不在同一個

包中,那么子類繼承了父類的protected,public成員變量做為

子類的成員變量,并且繼承了父類的protected>public方法為

子類的方法,繼承的成員或方法的訪問權限保持不變。如果子

類和父類不在同一個包里,子類不能繼承父類的友好變量和友

好方法。

如果子類中有一個方法和父類的方法名字相同,而類型不

同,那么必須保證參數不同,否則將發生重載錯誤。

8.不可以。

9.abstract類。

10.假設B類是A類子類或間接子類,當我們用子類B創建一

個對象,并把這個對象的引用放到A類的對象中時,稱這個A

類對象是子類對象的上轉型對象。

11.可以把實現某一接口的類創建的對象的引用賦給該接口聲

明的接口變量中。那么該接口變量就可以調用被類實現的接口

中的方法。

12.main方法是static方法,不能操作類的實例成員,因此,程

序中的floatc=a+b;語句是錯誤的。

13.100

14.8

100

15.接口體中包含常量定義和方法定義兩部分。接口體中只進

行方法的聲明,不許提供方法的實現,所以,方法的定義沒有

方法體,且用分號結尾。

如果一個類使用了某個接口,那么這個類必須實現該接口的

所有方法,即為這些方法提供方法體。在類中實現接口的方法

時,方法的名字、返回類型、參數個數及類型必須與接口中的

完全一致。要注意的是,接口中的方法被默認是public的,所

以類在實現接口方法時,一定要用public來修飾。另外,如果

接口的方法的返回類型如果不是void的,那么在類中實現該接

口方法時,方法體至少要有一個return語句;如果是void型,

類體除了兩個大括號外,也可以沒有任何語句。

如果一個類聲明實現一個接口,但沒有實現接口中的所有方

法,那么這個類必須是abstract類。

16.

classA

{publicfinalvoid耳)

{charcStart='a',cEnd-z';

fbr(charc=cStart;c<=cEnd;c++)

{System.out.print(""+c);

)

)

)

classBextendsA

{publicvoidg()

{charcStart='a',cEnd-CD';

fbr(charc=cStart;c<=cEnd;c++)

{System.out.print(""+c);

)

)

publicclassXiti16

{publicstaticvoidmain(Stringargs[])

{Bb=newB();

b.f();

b-g();

)

)

17.

classMyExceptionextendsException

{Stringmessage;

MyException(intm)

{message="數字"+m+"不符合要求";

)

publicStringtoString()

{returnmessage;

)

)

classStudent

{publicvoidspeak(intm)throwsMyException

{if(m>1000)thrownewMyException(m);

System.out.println(m);

)

}

publicclassXitil7

{publicstaticvoidmain(Stringargs[])

{Studentb=newStudent();

try{b.speak(555);

b.speak(8888);

)

catch(MyExceptione)

{System.out.println(e.toString());

)

)

)

18.

classNopositiveExceptionextendsException

{Stringmessage;

NopositiveException(intm,intn)

message="數字"+m+”或,+n+"不是正整數”;

)

publicStringtoString()

{returnmessage;

)

)

classA

{publicintfifinta,intb)throwsNopositiveException

{if(a<=0||b<=0)

{NopositiveExceptionexception=new

NopositiveException(a,b);

throwexception;

)

if(b<a)

{inttemp=0;

temp=a;

a=b;

b=temp;

)

intr=b%a;

while(r!=O)

{b=a;

a=r;

r=b%a;

)

returna;

)

)

classBextendsA

{publicintf(inta,intb)throwsNopositiveException

{intdivision=super.f(a,b);

return(a*b)/division;

)

)

publicclassXiti18

{publicstaticvoidmain(Stringargs[])

{Aa=newA();

Bb=newB();

try(

System.out.println("最大公約數:"+a.f(36,24));

System.out.println("最小公倍數:*'+b.f(36,24));

)

catch(NopositiveExceptione)

{System.out.println(e.toStringO);

)

)

)

第五章習題

importjava.applet.*;

importjava.awt.*;

publicclassBoyextendsApplet

{publicvoidpaint(Graphicsg)

{Stringsl,s2,tl-'ABCDabcd";

sl=tl.toUpperCase();

s2=tl.toLowerCase();

g.drawString(s1,30,6。);

g.drawString(s2,30,90);

}一

}

importjava.applet.*;

importjava.awt.*;

publicclassBoyextendsApplet

{publicvoidpaint(Graphicsg)

{Stringsl,s2,s3,tl="ABCDabcd";

sl=tl.toUpperCase();

s2=tl.toLowerCase();

s3=sl.concat(s2);

g.drawString(s1,30,60);

g.drawString(s2,30,90);

g.drawString(s3,30,l20);

}

}

3.屬于操作題,解答略。

4.屬于操作題,解答略。

5.屬于操作題,解答略。

第六章習題

1.

importjava.util.Date;

importjava.text.SimpleDateFormat;

publicclassXiti1

{publicstaticvoidmain(Stringargs[])

{DatenowTime=newDate();

SimpleDateFormatmatter=newSimpleDateFormat("E

dd日HH時mm分");

StringfavorFormat=matter.format(nowTime);

System.out.println(favorFormat);

)

2.

importjava.util.Calendar;

classCalendarBean

{intyear,month,nextDay;

publicvoidsetYear(intyear)

{this.year=year;

)

publicintgetYear()

{returnyear;

)

publicvoidsetMonth(intmonth)

{this.month=month;

)

publicintgetMonth()

{returnmonth;

)

publicString[][]getCalendar()

{Stringa[][]=newString[6][7];

Calendar曰^=Calendar.getInstance();

日歷.set(year,month-1,1);

int星期兒=日歷.get(Calendar.DAYOFWEEK)-1;

intday=0;

if(month==11|month==31|month==51|month==71|month==81|mon

th==10||month==12)

{day=31;

)

if(month==4||month==6||month==9||month==11)

{day=30;

)

if(month==2)

{if(((year%4==0)&&(year%100!=0))||(year%400==0))

{day=29;

)

else

{day=28;

nextDay=l;

for(intk=0;k<6;k++)

{if(k==O)

——11仃=星期幾;j<7;j++)

{a[k][j]=""+nextDay;

nextDay++;

)

else

fbr(intj=0;j<7&&nextDay<=day;j++)

{a[k][j]=""+nextDay;

nextDay++;

}

)

returna;

)

)

publicclassXiti2

{publicstaticvoidmain(Stringargs[])

{CalendarBeancb=newCalendarBean();

cb.setYear(2006);

cb.setMonth(2);

String[][]rili=cb.getCalendar();

Stringtitile[]={“日",“一“,“二“,“三”,“四“,“五六“};

for(inti=0;i<titile.1ength;i++)

{System.out.printf("%4s",titile[i]);

)

System.out.println("");

fbr(inti=O;i<rili.length;i++)

{fbr(intj=O;j<rili[i].length;j++)

{if(rili[i][j]!=null)

System.out.printf("%5s",rili[i][j]);

else

System.out.printf('*%5s'*,*''*);

)

System.out.println("");

)

)

publicclassXiti3

{publicstaticvoidmain(Stringargs[])

{intyear1,month1,day1,year2,month2,day2;

try

{yearl=Integer.parseInt(args[O]);

month1=lnteger.parselnt(args[l]);

day1=lnteger.parselnt(args[2]);

year2=lnteger.parselnt(args[3]);

month2=lnteger.parselnt(args[4]);

day2=lnteger.parselnt(args[5]);

)

catch(NumberFormatExceptione)

{year1=2007;

month1=0;

dayl=l;

year2=2008;

month2=0;

day2=l;

)

Calendarcalendar=Calendar.getInstance();

calendar.set(yearl,month1,day1);

longtimeYear1=calendar.getTimeInMillis();

calendar.set(year2,month2,day2);

longtimeYear2=calendar.getTimeInMillis();

long相隔關數

=Math.abs((timeYearl-timeYear2)/(1000*60*60*24));

System.out.println(""+year1+"年"+monthl+"月

”+dayl+”日利”+

year2+"年"+month2+"月

"+day2+"H相隔”+相隔天數+”天)

)

)

4.

publicclassXiti4

{publicstaticvoidmain(Stringargs[])

{doublea=0,b=0,c=0;

a=12;

b=24;

c=Math.max(a,b);

System.out.println(c);

c=Math.min(a,b);

System.out.println(c);

c=Math.pow(2,3);

System.out.println(c);

c=Math.abs(-0.123);

System.out.println(c);

c=Math.asin(0.56);

System.out.println(c);

c=Math.cos(3.14);

System.out.println(c);

c=Math.exp(l);

System.out.println(c);

c=Math.log(8);

System.out.println(c);

)

)

importjava.math.*;

publicclassE

{publicstaticvoidmain(Stringargs[])

{Bigintegersum=newBigInteger("O"),

xiang=newBiglnteger("1"),

ONE=newBiglnteger("l"),

TWO=newBiglnteger("2"),

i=ONE,

m=newBigInteger("60");

while(pareTo(m)<=0)

{if(i.remainder(TWO).compareTo(ONE)==0)

sum=sum.add(xiang);

i=i.add(ONE);

xiang=xiang.multiply(i);

)

System.out.println(sum);

)

)

第七章習題

1.Frame容器的默認布局是BorderLayout布局,Panel容器的

默認布局是FlowLayout布局。

2.不可以

3.可以

4.

importjava.util.StringTokenizer;

importjava.awt.*;

importjava.awt.event.*;

publicclassXiti4

{publicstaticvoidmain(Stringargs[])

{ComputerFramefr=newComputerFrame();

fr.setTitle("計算的窗口”);

)

)

classComputerFrameextendsFrameimplementsTextListener

{TextAreatextl,text2;

intcount=l;

doublesum=0,aver=0;

publicComputerFrame()

{setLayout(newFlowLayout());

textl=newTextArea(6,20);

text2=newTextArea(6,20);

add(textl);

add(text2);

text2.setEditable(false);

textl.addTextListener(this);

setSize(300,320);

setVisible(true);

addWindowListener(newWindowAdapter()

{publicvoidwindowClosing(WindowEvente)

{System.exit(O);

)

});

validate();

)

publicvoidtextValueChanged(TextEvente)

{Strings=textl.getText();

sum=0;

aver=0;

StringTokenizerfenxi=newStringTokenizer(s,",'\n"');

intn=fenxi.countTokens();

count=n;

doublea[]=newdouble[n];

for(inti=0;i<=n-l;i++)

{Stringtemp=fenxi.nextToken();

try{a[i]=Double.parseDouble(temp);

sum=sum+a[i];

)

catch(Exceptionee)

{count";

)

)

aver=sum/count;

text2.setText(null);

text2.append("\n和:"+sum);

text2.append("\n平均值:"+aver);

)

)

5.

importjava.util.StringTokenizer;

importjava.awt.*;

importjava.awt.event.*;

publicclassXiti5

{publicstaticvoidmain(Stringargs[])

{PickWordFramepwf=newPickWordFrame();

pwf.setTitle("挑單詞");

)

)

classPickWordFrameextendsFrame

{TextAreatextl,text2;

Buttonbutton;

publicPickWordFrame()

{textl=newTextArea(6,20);

text2=newTextArea(6,20);

button=newButton("確定");

add(text1,BorderLayout.WEST);

add(text2,BorderLayout.EAST);

add(button,BorderLayout.SOUTH);

button.addActionListener(newActionListener()

publicvoid

actionPerformed(ActionEvente)

{text2.append("\n"+textl.getSelectedText());

)

}

);

setSize(300,320);

setVisible(true);

addWindowListener(newWindowAdapter()

{publicvoidwindowClosing(WindowEvente)

{System.exit(O);

)

});

validate();

)

)

6.

importjava.applet.*;

importjava.awt.*;

importjava.awt.event.*;

publicclassXiti6

{publicstaticvoidmain(Stringargs[])

{ComputerFramefr=newComputerFrame();

fr.setTitle("計算)

)

)

classComputerFrameextendsFrameimplements

ActionListener

{TextFieldtextl,text2,text3;

Buttonbutton1,button!,button3,button4;

Labellabel;

publicComputerFrame()

{setLayout(newFlowLayout());

text1=newTextField(l0);

text2=newTextField(lO);

text3=newTextField(l0);

label=newLabel("",Label.CENTER);

label.setBackground(Color.green);

add(textl);

add(label);

add(text2);

add(text3);

buttonl=newButton("加");

button2=newButton("減");

button3=newButton("乘");

button4=newButton("除");

add(buttonl);

add(button2);

add(button3);

add(button4);

button1.addActionListener(this);

button!.addActionListener(this);

button3.addActionListener(this);

button4.addActionListener(this);

setSize(300,320);

setVisible(true);

addWindowListener(newWindowAdapter()

{publicvoidwindowClosing(WindowEvente)

{System.exit(O);

)

});

validateQ;

)

publicvoidactionPerformed(ActionEvente)

{doublen;

if(e.getSource()==button1)

{doublenl,n2;

try{nl=Double.parseDouble(text1.getText());

n2=Double.parseDouble(text2.getText());

n=nl+n2;

text3.setText(String.valueOfifn));

label.setText("+");

}

catch(NumberFormatExceptionee)

{text3.setText("請輸入數字字符”);

)

)

elseif(e.getSource()==button2)

{doublenl,n2;

try{nl=Double.parseDouble(text1.getText());

n2=Double.parseDouble(text2.getText());

n=nl-n2;

text3.setText(String.valueOfifn));

label.setText("-");

catch(NumberFormatExceptionee)

{text3.setText("請輸入數字字符)

)

)

elseif(e.getSource()==button3)

{doublenl,n2;

try{nl=Double.parseDouble(text1.getText());

n2=Double.parseDouble(text2.getText());

n=nl*n2;

text3.setText(String.valueOf(n));

label.setText("*");

)

catch(NumberFormatExceptionee)

{text3.setText("請輸入數字字符”);

elseif(e.getSource()=button4)

{doublenl,n2;

try{nl=Double.parseDouble(text1.getText());

n2=Double.parseDouble(text2.getText());

n=nl/n2;

text3.setText(String.valueOffn));

label.setText("/");

)

catch(NumberFormatExceptionee)

{text3.setText("請輸入數字字符)

)

)

validate();

)

)

7.

importjavax.swing.*;

importjava.awt.*;

importjava.awt.event.*;

publicclassXiti7

{publicstaticvoidmain(Stringargs[])

{newWindowBox();

)

)

classWindowBoxextendsFrameimplementsActionListener

{BoxbaseBox,boxVl,boxV2;

TextFieldinputName,inputProfession,inputEmail;

Buttonbutton;

TextAreatextShow;

WindowBox()

{inputName=newTextField(20);

inputProfession=newTextField(20);

inputEmail=newTextField(20);

button=newButton("確定");

button.addActionListener(this);

textShow=newTextArea();

PanelpNorth=newPanel(),

pSouth=newPanel();

boxVl=Box.createVerticalBox();

boxVl.add(newLabel,姓名"));

boxV1.add(Box.createVerticalStrut(8));

boxVl.add(newLabel("email"));

boxVl.add(Box.createVerticalStrut(8));

boxVl.add(newLabel,職業"));

boxV2=Box.createVerticalBox();

boxV2.add(inputName);

boxV2.add(Box.createVerticalStrut(8));

boxV2.add(inputEmail);

boxV2.add(Box.createVerticalStrut(8));

boxV2.add(inputProfession);

baseBox=Box.createHorizontalBox();

baseBox.add(boxV1);

baseBox.add(Box.createHorizontalStrut(l0));

baseBox.add(boxV2);

pNorth.add(baseBox);

pSouth.add(button);

add(pNorth,BorderLayout.NORTH);

add(pSouth,BorderLayout.SOUTH);

add(textShow,BorderLayout.CENTER);

setSize(300,320);

setVisible(true);

addWindowListener(newWindowAdapter()

{publicvoidwindowClosing(WindowEvente)

{System.exit(O);

)

});

validate();

)

publicvoidactionPerformed(ActionEvente)

{Stringemail=inputEmai1.getText();

Stringregex1="\\w{1,}@\\w{1,}\56\\w{1,}",

regex2="\\w{1,}@\\w{1,}\56\\w{1,}\56\\w{1,}";

if(email.matches(regexl)||email.matches(regex2))

{textShow.append(email+"\n");

)

else

{inputEmail.setText("請輸入正確格式的email");

)

8.

importjava.awt.*;

importjava.awt.event.*;

publicclassXiti8

{publicstaticvoidmain(Stringargs[])

{newWindowPanel();

)

)

classMypanelextendsPanelimplementsActionListener

{Buttonbutton;

TextFieldtext;

Mypanel()

{button=newButton("");

text=newTextField(12);

add(button);

add(text);

button.addActionListener(this);

)

publicvoidactionPerfbrmed(ActionEvente)

{Stringname=text.getText();

if(name.length()>0)

button.setLabel(name);

validate();

)

)

classWindowPanelextendsFrame

{Mypanelpanell,panel2;

WindowPanel()

{panell=newMypanel();

panel2=newMypanel();

panel1.setBackground(Color.red);

panel2.setBackground(Color.blue);

add(panell,BorderLayout.SOUTH);

add(panel2,BorderLayout.NORTH);

setSize(300,320);

setVisible(true);

addWindowListener(newWindowAdapter()

{publicvoidwindowClosing(WindowEvente)

{System.exit(O);

)

});

validate();

)

)

9.參照例子18o

10.

importjava.awt.*;

importjava.awt.event.*;

publicclassXiti10

{publicstaticvoidmain(Stringargs[])

{MyFramef=newMyFrame();

f.setBounds(12,12,300,300);

f.setVisible(true);

f.validate();

f.addWindowListener(newWindowAdapter()

publicvoid

windowClosing(WindowEvente)

{System.exit(O);

}

)

);

)

)

classMyFrameextendsFrameimplements

ItemListener,ActionListener

{Listlist;

TextAreatext;

intcount=l;

publicMyFrame()

{list=newList(2,false);

text=newTextArea();

list.add("TCL王牌彩電)

list.add("黑妹牙膏)

list.add(”大顯手機)

list.add("聯想5000");

add(list,BorderLayout.NORTH);

add(text,BorderLayout.CENTER);

list.addltemListener(this);

list.addActionListener(this);

)

publicvoiditemStateChanged(ItemEvente)

{if(count==l)

{if(list.getSelectedIndex()==O)

{text.setText("\n"+list.getSelectedItem()+"產品價

格和產地介紹)

)

elseif(list.getSelectedIndex()==l)

{text.setText("\n"+list.getSelectedItem()+"產品價

格和產地介紹)

)

elseif(list.getSelectedIndex()==2)

{text.setText("\n"+list.getSelectedItem()+"產品價

格和產地介紹)

)

elseif(list.getSelectedIndex()==3)

{text.setText("\n"+list.getSelectedItem()+"產品價

格和產地介紹)

}

else

count=l;

)

publicvoidactionPerformed(ActionEvente)

{if(list.getSelectedIndex()==O)

{text.setText("\n"+list.getSelectedItem()+"/^告

text.append("\n沒有最好只有更好)

)

elseif(list.getSelectedIndex()==1)

{text.setText("\n"+list.getSelectedItem()+"/^告

text.append("\n放心使用");

)

elseifflist.getSelectedIndex()==2)

{text.setText("\n"+list.getSelectedItem()+"/^告

text.append("\n真正的老字號");

)

elseififlist.getSelectedIndex()==3)

{text.setText("\n"+list.getSelectedItem()+"/^告

text.append("\n地球人都知道");

)

count++;

)

)

11.參見7.11節

12.

importjava.awt.*;

importjava.awt.event.*;

publicclassE

{publicstaticvoidmain(Stringargs[])

{MoveFramef=newMoveFrame();

f.setBounds(12,l2,300,300);

f.setVisible(true);

f.setTitle("移動”);

f.validate();

f.addWindowListener(newWindowAdapter()

{publicvoid

windowClosing(WindowEvente)

{System.exit(O);

}

)

);

)

)

classMoveFrameextendsFrameimplementsActionListener

{ButtoncontrolButton,movedButton;

publicMoveFrame()

{controlButton=newButton("單擊我運動另一個按鈕)

controlButton.addActionListener(this);

movedButton=newButton();

movedButton.setBackground(newColor(l2,200,34));

setLayout(null);

add(controlButton);

add(movedButton);

controlButton.setBounds(10,30,130,30);

movedButton.setBounds(100,100,10,10);

)

publicvoidactionPerfbrmed(ActionEvente)

{intx=movedButton.getBounds().x;

inty=movedButton.getBounds().y;

x=x+5;

y=y+i;

movedButton.setLocation(x,y);

if(x>200)

{x=100;

y=100;

)

)

)

13.

importjava.awt.*;

importjava.awt.event.*;

publicclassXitil3

{publicstaticvoidmain(Stringargs[])

{newWindowCanvas();

)

classMycanvasextendsCanvas

intx,y,r;

Colorc=newColor(0,0,0);

Mycanvas()

{setBackground(Color.cyan);

)

publicvoidsetColor(Colorc)

{this.c=c;

)

publicvoidsetX(intx)

{this.x=x;

)

publicvoidsetY(inty)

{this.y=y;

)

publicvoidsetR(intr)

{this.r=r;

)

publicvoidpaint(Graphicsg)

{g.setColor(c);

g.fillOval(x,y,2*r,2*r);

classWindowCanvasextendsFrameimplementsActionListener

{Mycanvascanvas;

TextFieldinputR,inputX,inputY;

ButtonbuttonRed,buttonGreen,buttonBlue,buttonEnter;

Colorc=newColor(0,0,0);

intx=0,y=0,r=0;

WindowCanvas()

{canvas=newMycanvas();

inputR=newTextField(5);

inputX=newTextField(4);

inputY=newTextField(4);

buttonRed=newButton("red");

buttonRed.setBackground(Color.red);

buttonGreen=newButton("green");

buttonGreen.setBackground(Color.green);

buttonBlue=newButton("blue");

buttonBlue.setBackground(Color.blue);

buttonEnter=newButton("確定");

buttonEnter.addActionListener(this);

buttonRed.addActionListener(this);

buttonGreen.addActionListener(this);

buttonBlue.addActionListener(this);

PanelpNorth=newPanel(),

pSouth=newPanel();

pNorth.add(newLabel("顏色:"));

pNorth.add(buttonRed);

pNorth.add(buttonGreen);

pNorth.add(buttonBlue);

pNorth.add(newLabel("圓的位置坐標:"));

pNorth.add(inputX);

pNorth.add(inputY);

pSouth.add(newLabel。圓的半徑:"));

pSouth.add(inputR);

pSouth.add(buttonEnter);

add(canvas,BorderLayout.CENTER);

add(pNorth,BorderLayout.NORTH);

add(pSouth,BorderLayout.SOUTH);

setBounds(l00,100,500,200);

setVisible(true);

)

publicvoidactionPerfbrmed(ActionEvente)

{Buttonb=(Button)e.getSource();

if(b==buttonEnter)

{try{x=Integer.parseInt(inputX.getText());

y=Integer.parseInt(inputY.getText());

r=Integer.parseInt(inputR.getText());

canvas.setX(x);

canvas.setY(y);

canvas.setR(r);

canvas.setColor(c);

canvas.repaint();

)

catch(NumberFormatExceptionee)

{x=0;y=0;r=0;

)

}

else

{c=b.getBackground();

canvas.setX(x);

canvas.setY(y);

canvas.setR(r);

canvas.setColor(c);

canvas.repaint();

)

)

)

14.參見7.11節的第5小節。

15.

importjava.awt.*;

importjava.awt.event.*;

importjavax.swing.SwingUtilities;

publicclassXitil5

{publicstaticvoidmain(Stringargs[])

{Winwin=newWin();

)

classWinextendsFrameimplements

MouseListener,MouseMotionListener

{Buttonbutton[];

TextFieldtext[];

intx,y;

Win()

{setLayout(newFlowLayout());

button=newButton[8];

fbr(intk=0;k<button.length;k++)

{button[k]=newButton("用鼠標拖動我");

add(button[k]);

button[k].addMouse

溫馨提示

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

最新文檔

評論

0/150

提交評論