Tải bản đầy đủ (.docx) (43 trang)

Lập trình game trên di động với J2ME

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.01 MB, 43 trang )


Mục lục
A. Các mức đồ họa trong J2ME 
I. Tổng quan về J2ME 
  
!"#$$% 
&'() * +
II.Các thành phần đồ họa ở mức cao của ứng dụng MIDP ,
III. Các thành phần đồ họa ở mức thấp của ứng dụng MIDP 
&-
$-.
B.Ứng dụng Game trong J2ME .
I. Sơ lược về lập trình Game trên J2ME.
&-.
/+
01
./,
23*/.
II. Xây dựng Game với Game Builder trong IDE NetBeans .
LỜI MỞ ĐẦU
45//67895/$5:;5<=> *?
@$$%A-B9CA$D;E5 D>$:$(F$:$
(<$)67-BFG$H)I5>$)$:$*?@$6>9$FJKC
/9$F'9$F6ICL9$F6"#$FM/>N$OP
Q>B-R5>$<F;6789<=>
@$"F$#K$9 5ST895"<=9S
;*5 5U5*$%DU$ND6O$V(WIXY$%
1

B*5 )676:ZF5$G(W<=
[*CL$"$>$:$"(P>N\"(PKM:M


$>$$-B$%]CAF^$(*5[*9$-F-
&#J$)H[/:>3X_`- )(O&O
[ F&OOFCATN9$U:$!>_54K
CY$#>M:9$5$<
&#J$)H$:$5*&O[ K$DaD
bJR/@5#c$#>55 5U5*
A .Các mức đồ họa trong J2ME
I. Tổng quan về J2ME
1. Giới thiệu J2ME :
CL$:;d6"#$&F(5e->*$%
()T"-@A$%0M/"P/"e->*
5CH$9*5$>>F/"f*5T#
9F*5 )$>$:$"(P$DI$XgF9_N[
*$:$>N" I$L:/)>>-)
h$%F$I/$>5//Y*5Oai("
X;*<=D$5D
2 Kiến trúc của J2ME :
2

Giới thiệu các thành phần trong nền tảng J2ME:
jTP? &>k>l&Xmn5^$)P?OCA
[ $>G$:$"(PCL$R*>N(WL$:$^$IFI=
Cn
o!;5-B*CL(
o!;5B$(Jp*b
o!;N6"B
q>R/*5^$)$:$5-)JX"(PC0-F4>6(f($
)@$[/%$:$^$)>0MP;$:$*$D;@5>
OCA*XM:5OM-@XM:5/F$:$<=CL$
N>$D;I$*"(P$>X$D;QI=C*

"$CH$>>N0-$D;-pi$CH
$%$:$B;X;$D;$N/94>6
_/0KCN&>k>n
3

o&q&l&>$q$&>k>r&X"(P6"B
NmnCL$"6";f5>PCA$:$"(P$XXl*>srmF$:$
"(P5/OCA*5:/95eqt6>)2!U
(Q5/(N$"&q&CL$f6OR/
lu* mFNC$>vCA-p=5) $:$<=
FI=C*5*
o&q&r&>$q$&>k>l&X"(P6"Bmn&q&CL$
Cf"$:$"(P$DI'NHG"(P$&q&
CY/"H$:$B:/;(5-p=04a"(P5/$D
 (HlOCA*5(m5$D(Jp*bNH&:$-)
h5/$D;6;"C$:$:/eqt$X$>F>Ns(F
&)N&X6; $<:/)>lQ*$m5
L$:$*l$* m$H();$$XOCA$>$:$<=
3/F(N$#bwB$:$"(P$XXF>N$" 5
/C(5(Jp*b6O;/$[:/)>iLX$)$:$I
'C:/)>$%0
jTP? e>k*n
e>k*W&>k>(w$:$5>$:$$* ;(iL$:$I
'$>d"(P$/(&)&>k> $Da>k**
M5da>k*5/$D;`$:$$* *YT"R/$D;
X/>]>k*P?L$:$$* 6:$FCA
6O;$/;<="$>>k*5/5$N/
:/]L>k*6:$&x*b>DF(N6O;*X/<=
"0/5$N/$:$:/]L0R/*5$:$>k*
(;n

o>(*yk>>q$e>k*lyqemn>k*5/-z(i-$:$I'
C]L6"BF$:$5[]L>CA`5>&q&
e>k*5/CL$"6"$%/";f5>9^$I*5
4

5;PN$"F*CL$<$DNq>Dyqe-z$$X
>CA`H)5$:$I'NH)@_33e&D
;Dyqe*5>k*i"X(WD*56"<$$H()$>*
$:$:/lu* m
oeqte>k*nCH@yqeFCPCA*5$:$:/eqt5
5(*H
o{>>e>k*n$>vW$:$I'$%&q&[*$:$
C$%(&>
4>5$G$De->*U--e>k*Fe->*e>k*F|ye>k*F
e>k*
3 Căn bản về lập trình J2ME :
3.1 MIDlet :
yq**5<=CL$"6";$N/$:$"(P
yq*$<$:$*`(W&q&5yqe(yq*8
>^$ yq*CL$DD$`5v>k*t|{*t|-}
-5$>$$5^5>>NQX $%**5N>$:$yq*
0R/*5$X#$*$%yq*
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*
public class MidletExample extends MIDlet {
public void MIDletExample() { }
public void startApp() { }
public void pauseApp() {}
public void destroyApp(boolean unconditional) { }
}

**O*O6"d*yq*$D-}>yqeyq*w
>Dn~J$>>*F$:$CH<$$H()5**O
)$Dn
startApp( ) neCH<$5/CL$9(W(M)*b<=66WN>
yq*5]6yq*W dN:-
5

pauseApp( ): eCH<$5/9(M)*b<=]6<=$[N
d<=@$!-p=-t)D[5
/$%yq*;5($>$:$<=6:$
destroyApp( ): eCH<$5/CL$`6>:6gyq*3C$D)
)D>5>5(CL$*X/(Wyq*
jQGA$%*n
3.2 API của J2ME :
<=yq*$V$DBCL;q-*/TBCL5/`
;*X/O BCL(5/FI=5CL$]LF5(>8$:$
CH<$;/$[$:$BCLCL$(5/TBCLq-*/$["
$>(M)*b$(5/"(P 6;5[5>-zCL$;
P*"(P
^$`$V$DBCLq-*/<]yq*FC B
CL>yq*$D;CL$;P"(PC{>-F
3JU>J-F&>$>-F
6

BCLq-*/(**55[CL$;P"(P
yqe$<*$>$%*q-*/(**50$5&-_CR/O
)BM
BCL0$6O)*5$:D"(PF5*
0$5/-zCL$d6"(W$:$5[;PW<$$>F$I$:$5
[5/-zCL$;P5_CR/-zO)BM

$%*0$5$:$5[;W<$$>
&-CL$-p=>$:$$CH/$:$<=$[
zaBCL(F^$;$%D*5II6)$/;F>:$
7

*5/;z$:$BCL*5&-$x$D;(f$:$-@
6(wXI(XQ*5<$X$>vCA*g:>
:$5&)* w>D~J$>>*$j
3>*$:$5[>W<$$>CL$-p
=;N>$:$F$:$*@$9$5^$>
II.Các thành phần đồ họa ở mức cao của ứng dụng MIDP
1. Form và Items :
3>[5/-z$:$5[CL$;P{>
{>$VH)*56$<$:$5[F5]5[CL$
d6"d*y&#-zJM$:$5[;P"(Pn
oq{*
o
o0y
o3J{*
o&>$>
o0$
o&->y
oyyy
a) DateField
35[q{*$$XCH@$M;>:$BCL
qCL$P?>~*q!N>BCLq{*F(N
$[$V•*5CA`$V$D;$V-p5/F$V-pA/8A$)
&:$CH<$6WN>$%*q{*8n
DateField(String label, int mode)
DateField(String label, int mode, TimeZone timeZone)

&:$>CH<$%*q{*8n
DateField.DATE_TIMEn$>v/i5/A
DateField.TIMEn$V$>v/iA
DateField.DATEn$V$>v/i5/
QI=n
private DateField dfAlarm;
// Tạo một đổi tượng DateField với nhãn, cho phép thay đổi cả ngày và giờ
8

dfAlarm = new DateField("Set Alarm Time", DateField.DATE_TIME);
dfAlarm.setDate(new Date());
b) Gauge
5[*56;>CACL$`;O)<$
>55$O$&D*>N*5*>NCH:$5*>N6OCH
:$>N[$>vCA`$D;/iF*>NGgCA
:;)$
qCAR/*556WN>$%*n
Gauge(String label, boolean interactive, int maxValue, int initialValue)
QI=n
private Gauge gaVolume; // Điều chỉnh âm lượng
gaVolume = new Gauge("Sound Level", true, 100, 4);
c) StringItem
5[0yCL$`;;PK/$]'()
4CA`6O;/iK/$]'()6$CH
$N/
0y6O-@6
eCH<$6WN>$%*0y
StringItem(String label, String text)
d) TextField
5[3J{*CH@C(X6€$:$BCL'()

(;5>UN$D;$VPKF-B6b@BCL$vF5
*>Na*CL$v4>53J{*$G$>v(N5>
6h$:$6b@5>-zCL$$(W$:$6b@^N
eCH<$6WN>$%*3J{*
TextField(String label, String text, int maxSize, int constraints)
35[<constraints *55[5$#MRFD*5
CH;J:$P*>Na*5>CL$v5>3J{*
yqeP?$:$-B5($-$>5[3J{*n
ot4•n$>v(X6€6b@5>
otytqq|n$V$>vR5>$:$P$V*L*
o4‚|y&n$V$>v-B
oe_ƒ44‚U|n&V$>v-B>N
o‚|n&V$>v$:$6b@L*(>‚|
oet00uƒ|qn$X$)$:$6b@5>
9

e) ChoiceGroup
35[&>$>$>vCA`$9d-:$[5>
KCL$P?C$&>$>$D*>Nn
o*r-*$>l$>v$9 =$mnD5/$D*M"$:$
$$6(>J
oJ$*-r-*$>l$VCL$$9=$mnD5/*M"D$:$
>(>
f) Image and ImageItem
_*CL$`;;P)*5ny5yyy
CL$`;N>BCL)5aOC*5$ $>5
$ F5`)$D("i/6OyyO)X)-z
CL$;PC"5>FI=X)-zCL$^WRF/^ I
(:F/($%5yqeC*>N)*5*>N)6O
("i5)("iX)6O("i6O;(P/i6;

d*#$DCL$N>T^$C$%*>N)5/*5CL$9$d
X)("i $H()*5`T 5/`/$5>$(NN>
$%X)(w$:$D*`&#-z*5$
aX)6O("i>()-
&:$CH<$@$>*y5yy
oImage createImage(String name)
• Image createImage(Image source)
• Image createImage(byte[] imageDate, int imageOffset, int imageLength)
• Image createImage(int width, int height)
• Image createImage(Image image, int x, int y, int width, int height, int transform)
• Image createImage(InputStream stream)
• Image createRGBImage(int[] rgb, int width, int height,
boolean processAlpha)
• ImageItem(String label, Image img, int layout, String altText)
T>NKCR/O)*5"5>N>X)dF5fD
BCLyy5(<$)5>{>
Form fmMain = new Form("Images");

10

// Create an image
Image img = Image.createImage("/house.png");
// Append to a form
fmMain.append(new ImageItem(null, img, ImageItem.LAYOUT_CENTER, null));

&#bne4*5*>N)/XCL$]L(W(X6€"(Pyqe5>
2. List, Textbox, Alert, và Ticker :
a) List
-$<K/$:$*@$9CL$;>(N&#
KX/*>N$>v *@$95*>N$VCL$v$96*5$

&>$>qN<*5*5N6OCA&:$-6OCA
L$`;;@$H$:$$9*@
b) TextBox
3JU>JCL$`;$>v G35[3JU>J5
3J{*$Da5($B>$$VP*>NCL$
vR5>QI=t4•FtyF‚|yqCR/*5CH<$@$%
3JU>Jn
TextBox(String title, String text, int maxSize, int constraints)
c) Alert và AlertType
t*H)*5>NXg&D*>Nt*n
o>*n*5*>N>NO(:>CL$(5/$>"6CA`X
#8b
o4>r>*n*5*>N>NO(:>$VCL$(5/>-BR/
XP
&:$CH<$6WN>$%t*n
Alert(String title)
Alert(String title, String alertText, Image alertImage, AlertType alertType)
35[t*3/-p=R;O(:>$>CA`("$D
-@6J)/QI=(N$D;-p=t*3/;W>NR5>
D(:>$>CA`("6$D*]J)/
35[t*3/(>82*>NRP-}*5nO(:>FJ:$F
(:>*]FO(:>5$)(:>
11

3X/$:$CH<$@$%t*$>("*5t*$D;(>8
$""BCLt*3/
d) Ticker
35[3$6L$`;;>N$]$N/>$ 
3-B/X$%5[3$6*5>N'()CL$(5/
3B$5$ $BCL$J:$P(W$$5^"(P5>

eCH<$6WN>$%3$6
Ticker(String str)
3d$R/R$X$:$5[;"(PFX/*55[3$6
6O*5*$>$%*0$53$6*5("$%*0$T 5/
$D?*53$6$D;CL$f5>(X$<*$>$%*0$(>8
$)t*
3. Xử lý sự kiện :
a. Đối tượng Command :
!BCLJ)/"(PFBCL&>a
O -@6D3O5/(>8*>N5@$FK$%
*5C$%$ID3>F$:$5D$
CL$;CN$:$#"(P
4"$DM: 5CL$;P"(PF"(P-zN>
@$H;$<$:$5
&V$D$:$5[yqe-R/$D;$<$:$BCL&>
*5n{>F3JU>JF-5&-
&:$(C$$H();Jp*b$:$-@6BCL&>n
o3N>BCL&>
oT^BCL&>*BCL{>F3JU>JF-F
/&-
o3N>(*f
!$D-@6J)/F(*f-z:-*A9"CH
<$$>t$>lm3>RCH<$5/(N$D;J:$PB
CL5>:--@65N>$:$Jp*bCH<
qCR/*5>NK9$N>-@6&>5Jp*b-@6n
private Form fmMain; // Form
12

private Command cmExit; // Command to exit the MIDlet


fmMain = new Form("Core J2ME"); // Create Form and give it a title
// Create Command object, with label, type and priority
cmExit = new Command("Exit", Command.EXIT, 1);
fmMain.addCommand(cmExit); // Add Command to Form
fmMain.setCommandListener(this); // Listen for Form events

public void commandAction(Command c, Displayable s)
{
if (c == cmExit)
{
destroyApp(true);
notifyDestroyed();
}
}
b. Đối tượng Item
4>5$Jp*b-@6(wBCL&>$D;Jp*b-@6(w
BCLy4 BCL>yqeKCL$P?C$$>$Jp
*b$:$-@6$=;5>DQI=BCLq{*$>vCA-p=
$9*@5/5A5FBCL3J{*$>vCA`
5>$]$:$6b@F-B5$:$6b@^$(
3CH@C$Jp*b-@6(wBCL&>F6$D/
iJ)/B(X6€5[y5>CH<$
itemStateChanged()-zCL$9Q5$#-z@$$:$Jp*b(>
CH<$5/
qCR/*5>NK9$N>-@6&>5Jp*b-@6n
private Form fmMain; // Form
private DateField dfToday; // DateField item

fmMain = new Form("Core J2ME"); // Create Form object
dfToday = new DateField("Today:", DateField.DATE); // Create DateField


fmMain.append(dfToday); // Add DateField to Form
13

fmMain.setItemStateListener(this); // Listen for Form events



public void itemStateChanged(Item item)
{
// If the datefield initiated this event
if (item == dfToday)

}
c. Ví dụ
qCR/*5>NK9$N>5Jp*b$:$-@6&>Fy
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;

public class EventProcessing extends MIDlet implements
ItemStateListener, CommandListener
{
private Display display; // Reference to Display object for this MIDlet
private Form fmMain; // Main Form
private Command cmExit; // Command to exit the MIDlet
private TextField tfText; // TextField component (item)
public EventProcessing()
{
display = Display.getDisplay(this);
// Create the date and populate with current date

tfText = new TextField("First Name:", "", 10, TextField.ANY);

cmExit = new Command("Exit", Command.EXIT, 1);

// Create the Form, add Command and DateField
// listen for events from Command and DateField
fmMain = new Form("Event Processing Example");
fmMain.addCommand(cmExit);
fmMain.append(tfText);
fmMain.setCommandListener(this); // Capture Command events (cmExit)
fmMain.setItemStateListener(this); // Capture Item events (dfDate)
}

// Called by application manager to start the MIDlet.
14

public void startApp()
{
display.setCurrent(fmMain);
}

public void pauseApp()
{ }

public void destroyApp(boolean unconditional)
{ }

public void commandAction(Command c, Displayable s)
{
System.out.println("Inside commandAction()");


if (c == cmExit)
{
destroyApp(false);
notifyDestroyed();
}
}

public void itemStateChanged(Item item)
{
System.out.println("Inside itemStateChanged()");
}
}
-B)9
15

III. Các thành phần đồ họa ở mức thấp của ứng dụng MIDP
16

!*$>:/IFCA$#$V-p=$:$5[>
$D-};N>>CA`3/F6*$>>N
-p=yqeF5[>$D-}6:„>5yqe$V
$$X$:$5[>O=XTB:/IF"
5[>$#$[6O-}$D>($O$=:;l0q!mF
$#$D;E5-p=C$%5$$X<(T 5/
X6D$>$:$<=T3qT*O/$[*CLg&#
6O;I$L$)C5><=;-p=>^$5
5[>T;)M/"X 5/F$#$[)-p=C
*>CA`$XXl>sr*‚-yk$(-m;
N>$:$5[>>B

Canvas 5Graphics *5*:$%$:$5tey$XXUN-z*5X
$)$:$$O$(w/&-*56z$>vCA:;$D
6)'z*"(P(5/$xC*5$Jp*b-@6&G*$-
$$X$:$$O$=-@;zCdrawRoundRect() 5drawString()
1. Lớp Canvas
&-*5*$H-W>CL-p=;Jp*b$:$-@6$XX5
$:$X *M"89;;P*5
q>&-*5*)>l(-$mF()R*&--z6O;N>
BCL@$"5)OM$:$*$>$%D&:$*$>$%&-F
-6J-&-F)$5^CH<$)>$%DF>&-$V$D
CH<$lm*5CH<$)>F$D;$5^$>$%*&-
C-n
public class MainCanvas extends Canvas{
public void paint(Graphics g){
g.setColor(255,255,255);
17

g.drawString(“SMI Java”,0,0,Graphics.TOP|Graphics.LEFT);
}
}
1. Hệ tọa độ:
=$[$%$#*5*5MB=$9;*5$
"(P;_B9$>*&-$DR9*5;:
$%"(P(5/:PJ'[ I)F:P/'[6
JBIC!z5/(#z*5;)
&:$CH<$-R/-z#J:$P$ 5$ $>$%$-n
…ulmnJ:$P$ $%$-
…_lmnJ:$P$ $>$%$-
& 5$ $>$%&-$xN$>>5(I$6z
$D;"(P(5/4D$:$6:$F$#6O;$VP6I$C$

$>$-F5[ "(Pyqe-z) I$*X$D
;$DB"(P$>C$
2. Vẽ trên đối tượng Canvas:
3"*$"z&-*>5(5n
&D$";&-CL$;Pn
18

r4>*n>$"5/F$ $>`;P$-(wi$ $>
5d` 5`z$:$$>
r{**n>$"5/F$ $>`;P$-(wi$ $>5

&:$BCL&-CACL$N>>$"^$PT;"*$"
k**5F(N$V$[9CH<$-{**0$>l(>>*>m
Q$9CH<$-{**0$>l(>>*>m@$$X*59CH
<$-†&lsFmF(CACH<$5/6O*5
‡=$D;*L=CH<$5/;/i$ $>5>$ 
`zB$:$"(P$D$<$/J>/5
(eCH<$l$-m
reCH<$l$-mCL$-p=;z$:$BCL$-*
5T;9CH<$l$-mFHK(N$V$[N>
-$$%*&-5-D9CH<$l$-m
r&D;9CH<$l$-m$:$(X8(OM9
CH<$lm
rQ$9CH<$lmOM9CH<$lm$D;6O
CL$@$/*<$4D$D;(P>K$>"6*8lk*>sm 
6;) dCH<$Jp*b-@6N0@$EWR/6O)*5
X *FC>6Jp*b$:$$/;F$:$>5X;6I$>N
$z*N*59CH<$q-*/$**0**/lm//$[z*Nd
(>^$33-64>5F<=$D;v($$z*N
/*<$(w$:$9CH<$-$|-lm‡=$D;-p

=CH<$CH<$q-*/$**0**/lm/-$|-lm;
8(CH<$lm
QnJD5
19

protected void paint(Graphics g)
{
// Set background color to white
g.setColor(255, 255, 255);
// Fill the entire canvas
g.fillRect(0, 0, getWidth(), getHeight());
}
2.Lớp Graphics:
rTBCL$-CL$-p=(W&-FD$D;CL$(;E@$"
*5/OM(>kkr-$C$6z*5
rTBCL$-]Lz$:$$]-FFCAˆFCAG
r&$X6;5-f$.(F>D1($>]5[5F
5(*!O)X$)$:$"(P ]L[/%.(5F/
$#-zCL$:JN$:$5-f$/$[$%<=5>()5N
CL$]L"(P
r$-$DCH<$XM9-*lJF/m;P$$/;
9B$FCH<$5/CA`>$:$67$5
r4>5CH<$-*lJF/mF*$-$G$DCH<$
aM96:$*5-&*lJF/FsFmF$:$`w
>5`$*CL$"*-z6O$D*@$F$I 5/*5'B$
M:z
1. Thiết lập màu:
5-f$>BCL$-CL$N>d5$H()*5gFJ*=$5
JCHl|UmCL$(;E(W.(5F]5$"1(4""
(P6O]L;P5/$V]L-B5IH"(P-z@

$/;i;;P5[X->/$[/-$*`;;P
$:$-f$56:$5f
!:5$>BCL$-F$D;`>$:$n
o!"L5lgFJCH5J*=$m>-B/6;/
(;Ed5[>d-B!6"L5F]5
20

CL$(;E(W1(5J"><@d$>JBX*5gFJ*=$5
JCH
| | | | | | | |         U U U U U U U U
|q |4 U‚
q>DF;6"L:P55/5>-B/6;F)P$(
;$D6"M)$IJ:$:P5g-zP$:+(-F:P5J*=$
P$:1(-5:P5JCH$"1(XX
Qqn
int red=0; 0 0 0 0 0 0 0 0
int reen=127; 0 1 1 1 1 1 1 1
int blue=255; 1 1 1 1 1 1 1 1
int color=(red<<16) | (green<<8) | blue;
g.setColor(color); //g là đối tượng kiểu Graphics
//Gán giá trị cho từng màu cơ bản riêng biệt:
int red=0;
int green=127;
int blue=255;
g.setcolor(red, green, blue);
3CH@F6*X/:P5F$x$D;*X/CN6"L/d
5(4"*X/:P5CN6"LF;$DCL$:P5$>
d5$H()$[)(g$:$(6OI$L
Qn
int color, red, green, blue;

color= g.getColor(); //g là đối tượng kiểu Graphics
red=(color & 0xFF0000)>>16;
green=(color & 0xFF00)>>8;
blue=color & 0xFF;
&D;6;"(P$D556O(wCH<$n
javax.microedition.lcdui.Display.isColor().
4>5$D;*X/-B5"(P$D]L(wCH<$
javax.microedition.lcdui.Display.numColors().
21

F""(P$V$D5f:P) *5:P/-$*^$
P
2. Nét vẽ
Kiểu nét vẽ (stroke style): !zCAˆFCAGF/$aF
$D;*@$96;vz*5v* l$-0ƒyqm/$:$6>)
l$-qƒ33qm4v* *5:P^$P$%$:$6;z
Các phương thức vẽ:
rvoid drawLine (int x1, int y1, int x2, int y2)
QzCAˆd;lx1, y1m";lx2, y2m
rvoid drawArc (int x, int y, int width, int height, int startAngle, int acrAngle)
QzCA$>D$arcAngle (f[dD$startAngle "$aJ:$
P(WD$:lx,ym5$ 5$Nwidth, height
rvoid fillArc (int x, int y, int width, int height, int startAngle, int acrAngle)
QzCA$>D$arcAngle (f[dD$startAngle "$aJ:$
P(WD$:lx,ym5$ 5$Nwidth, height 5O5(>
CA$>dz
rvoid drawRect (int x, int y, int width, int height)
Qz$aD$:lx,ym5$ 5$Nwidth, height
rvoid drawRoundRect (int x, int y, int width, int height, int arcW, int arcH)
Qz$a$:$D$GarcW 5arcH *56I$C$$%$a

>N"D$$>
- void fillRect (int x, int y, int width, int height)
3O$a
rvoid fillRoundRect (int x, int y, int width, int height, int arcW, int arcH)
O$aD$G
Qqn
g.drawArc(5, 5, 75, 75, 0, 225);
g.drawArc(80, 70, 75, 100, 90, 225);
_$a8.*>Nn
22

o_$aCAF6OO
o_$aD$$>F6OO
o_$aCAFO^$
o_$aD$GFO^$
_$aD$G*5$a>D$:$D$CL$z>NCA
$>$<6O)*5D$OC$aOCA3>D$:$
D$$>*5‰CA$>"$a6I$C$5CH<*5n
$u5$_
Qqng.drawRect(1, 1, 60, 40);
g.drawRoundRect(70, 50, 60, 40, 30, 40);
g.fillRect(1, 1, 60, 40);
g.fillRoundRect(70, 50, 60, 40, 30, 40);
23

Các phương thức hỗ trợ vẽ text:
rvoid drawChar (char character, int x, int y, int anchor)
z6b@character *5
rvoid drawChars (char[] data, int offset, int length, int x, int y, int anchor)
z$]6b@data $ 5length dPIoffset *5

rvoid drawString (String str, int x, int y, int anchor)
z$]str *5
rvoid drawSubstring (String str, int offset, int len, int x, int y, int anchor)
z$]$>$D$ 5len FdPIoffset $%$]str *5
rFont getFont()nX/BCL{>N
rvoid setFont ()n:{>$>BCL$-
!zJ*5F(X6;D*56b@/$]6b@F)
$$X%(-Bnx, y 5anchor3>DFlJF/m*5>N;B$F5
$>*5PICHB$%;B$->>NJ-zCL$;P&:$PI
CHB$%$>KCL$P?-}>*$-
24

3. Font chữ:
e[-R/$xM96O6v*5$:$-p=k>$aCL$]L
(W>$XX$%<=yqe0R/*5-B$:$CH<$
@$%*{>
- Font getFont(int face, int style, int size)
- Font getFont(int fontSpecifier)
- Font getDefaultFont()
-B$I$%*{>
FACE_SYSTEM
FACE_MONOSPACE
FACE_PROPORTIONAL
STYLE_PLAIN
STYLE_BOLD
STYLE_ITALIC
STYLE_UNDERLINED
SIZE_SMALL
SIZE_MEDIUM
SIZE_LARGE

&:$-B6;:$D;CL$6"LOM>:p/QI=n
Font font = Font.getFont(Font.FACE_PROPORTIONAL, Font.STYLE_BOLD |
Font.STYLE_ITALIC, Font.SIZE_MEDIUM);
06(N$D$""BCL{>F(N$D;/XD;
J:$PO$%$:$$$$%D
int getFace()
int getStyle()
int getSize()
boolean isPlain()
boolean isBold()
boolean isItalic()
boolean isUnderlined()
!I$C$$%$:$k>$aCL$J:$P(W$ $>$%k>$aF( 5
I(w;)$%$]6b@>k>J:$P-B$:$
CH<$-]L6CH:$BCHk>
int getHeight()
int getBaselinePosition()
int charWidth(char ch)
25

×