!
"
#$
%
&"'
(
)
%
)
(
#
"
&*
(
#$
&+
,-
5-
(
'-
(
(
)+
2
6
+&
0 ! ./5)
%
*
2
,#$
(
) #
2
&+
(
7
(
)$
%
89
6
:3:7
>? @0A1+?B-)CD)0?)'EF&+G?
3+CH @0?)I)CJ'K&L)?)E)MFN))OP&-?)I)
0! Q1+R) S&-)I)?>'BT)MFCMO3
;3
%
)U
%
*
(
)#
%
)7)+
2
+)
%
)
%
)-)
*
%
,*
2
#
2
&+
(
(
&*
(
,-
(
#$
&+
5)
%
)
1+
2
0
%
)
%
) #
(
U*
(
#UV
%
))+-
(
)#$V
#
(
) #
(
3
W3 #
2
&+
(
)
%
)
X#$
%
&")
%
) #
2
&+
(
-"
-
%
V
%
7$
%
3V
%
&+
(
#'+50'!0)
%
*
2
(
V
2
5333/
^3 #
2
&+
(
)
%
))#
%
)7U
(
)
%
)
(
-
(
)#$V
,+*
%
.+0!&!&/
_3
%
)
`a+0
,-
%
#$
(
)#
%
3
X#$
%
&")
(
` !!
X#$
%
&")
%
)7
%
'7
%
)
%
) #
(
U*
(
)#$V
c3 `
*
(
)$
%
,-
(
)V
2
,-
(
3
d3 +*
2
,-
2
X#$
%
&")
%
))+*
2
,-
2
-
(
)#$V
#
2
&+
(
.+&0 ! /0
-
(
(
$
(
)
%
))#
%
)7+
%
#$
&+
Z&#
(
&*
(
,-
(
. /3,#$
(
))-'-
)
;3 X-"$
(
0+'0!`U&!!0
W3 +)
(
\
^3 ;8\.;0<0/
_3 X-"$
(
8&8.;0<0/
W)#
%
)7,
+)+
2
,#$
(
)#
(
)*
(
U-)
,#$
(
) #
2
&+
(
;&
(
+
.:/ `
)-
%
0
"
)+
2
;0<.*'
2
)+
2
)+
2
:3;f:3W/
.;/ :3:. #
2
&+
(
U-)
2
*'
%
U
#*
(
")
%
*
2
#
2
&+
(
,#$
(
)
\3+*5*
%
+)
#
(
'*
%
%
0
*'
2
V
)
&#
(
*'
2
)+
2
\)#
%
%
3
g
<
:3h3W
+,-"("
9'
&'"(=(>;
Không
*'
2
)+
2
:3:'-
+%06?
"("("3
:3:
+,-"("
9'&'"(";
%"(55%"(5("
*'
2
,
+*)
%
,
$
(
)#
89:3:i
:3:
;0<:3;#$
#
%
3
:3:3:
+,-"("
9'
&'"("(";
%"(5(5
*
)
%
)V
%
7$
2
-
(
5 Z#
"
0
%
;0<:3;3;5#$#
%
3
Không co
́
sư
̣
Không co
́
:3Wg! *
)
%
)V
%
75Z#
"
0
%
*
+0-"U
"
kha
́
c biê
̣
t vê
̀
"Swing" version
)*
'
2
3
-
/
&'
\#
0$
%
(
50
(
#
*
&!
"
3*'
2
:3:)+
2
\)
2
)+
2
\5)+
2
*
%
+0
)
%
)
%
javax.swing, javax.swing.event.
&
*
&'%
)
%
)
39
#
2
&+
(
5)
%
*
2
'*
(
)
%
)
$
%
)
%
)
Button V
0$
%
'+)
%
*0
Jbutton. 4
5)
%
)
\]V
7
%
java.awt, )
)
%
)
5$
%
*
&
0*
(
+
import javax.swing.*;
#
(
U
%
)'*
(
0$
%
%
#
"
)
%
)
\]
#
U)
%
)
U-)
'
(
(
)*
%
#
"
U+-"+-#$
5.!
0! )&!/5#
%
)0
0+
%
)
)
%
,
"
$
2
-
(
$*
+ $
%
)
%
))#
%
)7)+
2
)
%
)
\]38)
%
)
;
0<3
4)
2
#
"
,$
2
%
)+
"
,
"
)
%
#
"
U
2
7#$
(
Z)
%
)
,-
2
,#$
*
)+
2
+*
%
)
%
)
3)
%
*
2
&*"&
,-
2
,#$
*
)+
2
-
(
#$#
%
),*
+U*
2
)+
2
%
7
(
)
(
-
(
0$
%
). +')0 /)+
2
)V
%
*
2
)
%
V
7
(
)'
%
)3
• 9
"
+
(
-"$
(
.\ !!)0! /1+*
(
),
(
)
V
)
j*
2
*
%
-
(
)#$V
#
2
&+
(
)
%
)
5#$
%
)*5
2
)
%
*'
2
)+
2
89
+ #
2
&+
(
;0<V
!
"
,$
2
$V
,
"
,#$
(
)V
%
)$
(
3
;3:g*&
(
)
#
(
))#$V
$
)
%
)'#$
%
)V
#
(
)*
(
)'*&
(
)
#
(
)-
(
)#$V
$
%
;895:3;:3W
:3 4*
%
+)#)
%
5)
3
^3 #
(
))#$V
3
X*
(
5,)
%
;*'
2
)+
2
;0<5
%
)
2
,*
+*"V
%
&+)+)
%
.'
(
)
%
2
#
%
0
:3W.;895
&&k&:3W/3
j*
2
(
-
(
)#$V
#
2
&+
(
)
%
)
5)
%
*
2
#
!0! ! '!<!:3:g!W3
l33no
l33!!3no
+'0))0 \0)p
! )0'!0!<Zqm4+'!<'+)0)U mo
!+0)U qho
+'0)!)!!! ./p
<0`'!00'!0q!`'!0.0'!0!<Zimhm/o
g+'+q!g+.mr'+sm/o
'+3 !6!).9!k!39t/o
'+3&&\)` !!.!\)` !!./p
+'0)&)!<!&.\)k!!/p
+0)U iio
0'!03 !!Z.0'!0!<Zi+0)U /o
u
u/o
0'!03 !`'!0.'+/o
n
n\! + )!'!!!N0!!0)!
n& )! +!)! !0
n m!m'&!3
n
!0!q!!0./o
!3 !g&!.g&!)3)!!kg&!.
Wh5
Wh50!<
:h5'
Wh/
/o
!3 !`+.!&`+.h5://o
'*&
(
)3*
(
)'*&
(
)$
2
*,$
2
&*
2
&
$
%
;89
U)
%
)
%
,#$
(
)V
%
)$
(
*'
'*&
(
)
89:3:V
:3;7
(
):3W7
(
), #
2
&+
(
'
2
'!)+
2
;0<3
#
(
))#$V
!
"
,#$
(
)#
(
)*
(
2
2
,+-$
2
-
(
3)0 3V
-&
(
))+
2
*'
2
:3;
:3W !
"
#
(
,-
(
&
V
89:3:
:3:3
>(
&'63
z*
2
*
%
-
(
\0! 5#$
%
)*0
2
#
(
),#$
(
))+
%
3
0'!03 !X}0\0!.`'!03k4kx/o
\&&'&!3+0&+ !)!!`!g&!5'+!!'
&0!<0! &r!NN !! '!<<N'N!!3
0'!03 !g&!.g&!)3)!!6!g&!.:5:5;5;503'0)U//o
!!!./3&&.0'!05g&!`+3k4kx/o
u
u
z*
2
#
(
)-
(
\0! 5!V
#
(
)
%
)'#$
%
) +
.:/ z
2
'
2
0
,
"
$
(
U-)
%
)
%
)#
%
*5)
%
*
2
#
2
&+
(
\0!!!.appletviewer/3
.;/ 4*
%
+'
(
, #
2
&+
(
V
&+*
(
,
"
)V
2
)#3
(
'
V
V
&#$
%
,U*
2
)#
%
)V
&+*
(
)+
2
'
a93
#$
$
(
)V
2
%
-
(
V
0!7
(
)U-
%
)
%
)V
2
V
V
&+*
(
)+
*
2
+*-1+)#$V
SwingApplication.
SwingApplication !
"
*
2
(
)#
2
-
2
# +
"
)+
2
SwingApplication.java #
(
)*
(
#
"
)-*
+)
%
3
X
+*
%
)
%
))#$V
,*
+)
%
)V
%
)+
2
\]0
l33no
l33!!3no
^3; -//36//7336
)!
%
'
"
)V
2
)'
(
)
%
)
SwingApplication)V
2
,
(
~0U&
<!!0•
+'0) )&.vw /p
p
A134(3B//,3369
A134(3-4/067/48B//,336-6.839;;C
u)).kZ)!!/pu
...//Create and show the GUI...
u
^3W €
%
)0
(
,-
%
#$
(
(
,-
%
#$
(
)#
%
+-
(
)
)+
2
$
2
#
%
),V
2
3•
2
+*
%
)
%
JFrame !
"
#
(
)*
(
-
(
)#
2
-
2
)V
%
-"JDialog !
"
#
(
)))#
2
-
2
#
%
36-",-
%
#$
(
%
),V
2
)+
2
)+)
%
)
%
)
-
2
$
(
)
*
%
,*
2
)
%
)
#
(
)*
(
//...create the components to go into the frame...
//...stick them in a container named contents...
<!3!!!./3&&.)! 5g&!`+3k4kx/o
!+!<!5& 3
<!3&&]&` !!.333/o
<!3)U./o
<!3 ! '0!.+!/o
u
u
^3^ €
%
)0
(
'+
0'!0
…# 5&•)ŽSwingApplication)‡'+f0'!03
zH +,U•'+,„
.:/g+'+q!g+.mr'+sm/o
.;/'+3 !6!).9!k!39t/o
.W/'+3&&\)` !!....create an action listener.../o
8•0•.:/,‹‘0•*+,’mr'+sm38•.;/ZŠ)
0=U!,„•#$“# “U•#ˆ&”UA)f‘0•.‡)0fU
#ˆ&”•\0N–)”#$“#UA))+f‘0•/38•.W/
,7U—•)˜'˜ “U•)•)UA)‘0•
zH +,U•f=f,)Ž0'!0
..//where instance variables are declared:
! )0'!0!<Zqm4+'!<'+)0)U mo
!+0)U qho
...//in GUI initialization code:
(
#
(
) *
%
. !
!)0! /
-1+,
%
5-
(
0'!0,#$
(
)-
2
#0
-
(
'+3
^3_ *
)
%
),-
U
%
)3z
(
"
+,U$
2
(
-
(
!0
.:/!0!q!!0./o
.;/!3 !g&!.g&!)3)!!kg&!.Wh5Wh5:h5Wh//o
.W/!3 !`+.!&`+.h5://o
.^/!3&&.'+/o
._/!3&&.0'!0/o
8
.:/&+
,*
2
(
-
(
''
(
))!0,
%
3
8
.W/&+
,!
2
(
-
(
,-
%
#$
(
1+
2
0
%
0+,*
2
%
%
,*
2
,#'+
0'!0
!03*
(
)*'+
0'!0
!0)
%
V
"
0
)+
%
!
"
,#$
(
),*
+U*
2
'$
,#$
*
)-
(
!0
!3 !g&!.g&!)3)!!kg&!.
Wh5
Wh50!<
:h5'
Wh/
/o
,#$
*
,$
2
)V
2
)+)
%
-
(
+
-
%
'7
%
#
(
U*
(
UV
%
)
+
%
0*
(
.)!! /3
%
U,*
2
7
%
'7
%
#
(
U*
(
,
%
333
<!3&&]&` !!.!]&\&!./p
+'0)&&0 .]&k!!/p
!3!Z.h/o
u
u/o
^3d 8!0!& +!
#$V
SwingApplication0
-
(
*
%
V
3g$
2
V
5-
(
U
&*
(
)+
2
%
V
)+
+Z+
%
,*
%
-
(
)+<-
(
$
,*
2
3
^3e + !!)0!
X-"$
(
!!)0! 5-
(
*
%
'
(
-
%
+*
%
)
%
)
3SwingApplication)
%
-
(
)-",*
)
(
,*
%
U
"
+
(
0'!03 !`'!0.'+/o
4#,
"
(
)
,#$
(
)#
(
)*
(
-
(
)
%
)&*"&
g+'+q!g+.mr'+sm/o
0'!0q!`'!0.0'!0!<Zimhm/o
0'!03 !!Z.0'!0!<Zi+0)U /o
!<!q!!.m\0)m/o