




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
習題解答
第一章習題
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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- Unit 8 Reading1 教學設計 2024-2025學年譯林版(2024)七年級英語上冊
- 13我能行(教學設計)-2023-2024學年道德與法治二年級下冊統編版
- 2023四年級數學下冊 數學好玩第2課時 奧運中的數學教學設計 北師大版
- 復發性流產病人的護理
- 2024-2025學年高中歷史 第三單元 近代中國經濟結構的變動與資本主義的曲折發展 第9課 近代中國經濟結構的變動新課教學設計2 新人教版必修2
- 2024-2025學年高中化學 第三章 第二節 分子晶體與原子晶體 第2課時 原子晶體教學設計 新人教版選修3
- 2023七年級歷史下冊 第三單元 明清時期:統一多民族國家的鞏固與發展第18課 統一多民族國家的鞏固和發展教學設計 新人教版
- 2《不一樣的 你我他》(教學設計)-2023-2024學年道德與法治三年級下冊統編版
- Unit 2 Good Morning,Miss Wang (教學設計)-2024-2025學年新世紀英語一年級上冊
- Unit 1 What's the matter Section A 4a-4c 教案 2024-2025學年人教版八年級英語下冊
- 自然辯證法知到課后答案智慧樹章節測試答案2025年春浙江大學
- 光驅的讀取偏移值度矯正數據
- 壓力容器基礎知識
- 教你寫出漂亮字體——鋼筆楷書字帖
- 2019年安徽省八年級學業水平考試地理試卷(含答案)
- 提高水性玻璃烤漆水性金屬烤漆的耐溶劑耐水煮附著力和柔韌性的解決方案
- 內蒙礦產資源產業投資基金總體方案
- 高二化學電離水解
- 單位工程施工組織設計編制指導書(完整版)
- 壓力管道元件制造許可規則最新最新
- 2017新北師大版數學五年級上冊《分數的基本性質》·PPT
評論
0/150
提交評論