!
"
#$
%
&"'
(
)
%
)
(
#
"
&*
(
#$
&+
,-
(
. /$
%
)#
"
#
%
&+
(
0! -1+*
(
) #
2
&+
(
#
"
34#
"
5-
(
'-
(
(
)+
2
6
+&
0 ! ./5)
%
*
2
,#$
(
) #
2
&+
(
7
(
)$
%
89
6
:3:7
(
)
6
;0<3
:3 4=-
>? @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
&+
(
)
%
)
-
(
)
%
))
%
*
(
+
1+
2
3V
%
&+
(
#)
%
)-
(
)#$V
*
2
(
&*
(
,-
(
#$
&+
5)
%
)
1+
2
0
%
)
%
) #
(
U*
(
#UV
%
))+-
(
)+-
%
)+
!
"
0
*
(
) #
2
&+
(
)
%
)U
%
*
(
)#
%
)7#*
%
-
(
)#$V
#
(
) #
(
3
W3 #
2
&+
(
)
%
)
X#$
%
&")
%
) #
2
&+
(
-"
Y'+5'0!5)
%
)
!Z[
.V
)+)
%
)
)+#$#
(
#)
%
)
\]3+*5
)+
%
)
%
-
(
-
%
V
%
7$
%
3V
%
&+
(
#'+50'!0)
%
*
2
(
V
2
5333/
^3 #
2
&+
(
)
%
))#
%
)7U
%
))+
2
3
4
%
**
)
%
)
U
%
))+
2
#) 5'&! 5) 5
! 3
4
!
"
)
#$
%
&"'
(
)
%
)
(
-
(
)#$V
,+*
%
.+0!&!&/
_3
%
)
`a+0
,-
%
#$
(
)#
%
3
X#$
%
&")
%
))
(
-
(
.0+!/5)
%
) #
2
&+
(
)+
2
-"0$
%
0+!
)+)
%
3
b3
%
)*
%
-
(
#
(
U*
(
` !!
X#$
%
&")
%
)7
%
'7
%
)
%
) #
(
U*
(
)#$V
c3 `
*
(
)$
%
,-
(
#
2
&+
(
)
%
),#$
!
"
5)
%
)!Z,*
2
)*
%
(
-
(
V
2
5U*
2
)
2
)
%
)V
2
,-
(
3
d3 +*
2
,-
2
X#$
%
&")
%
))+*
2
,-
2
-
(
)#$V
#
2
&+
(
\]\:3: )#$V
#
2
&+
(
)
%
)
3
!
"!#
$
%
&'
"()$*
%*
+,-%
&'
.+&0 ! /0
-
(
(
$
(
)
%
))#
%
)7+
%
#$
&+
Z&#
(
&*
(
,-
(
. /3,#$
(
))-'-
%
0
,
+*
7:eec-
(
(
*
#
"
%
*
2
a!5'-
#
"
)#
%
)7 +
:3
%
)
;3 X-"$
(
0+'0!`U&!!0
W3 +)
(
\
^3 ;8\.;0<0/
_3 X-"$
(
8&8.;0<0/
W)#
%
)7,
+)+
2
,#$
(
)#
(
)*
(
U-)
'
2
"
1+-
%
)
&#
(
)
%
)
\)
%
89:3:
.
*
/
&'01
\,
"
,#$
(
) #
2
&+
(
;&
(
+
.:/ `
)-
%
0
"
)+
2
;0<.*'
2
)+
2
)+
2
:3;f:3W/
.;/ :3:. #
2
&+
(
$
%
89:3:/
$
%
-"*'
2
#
2
&+
(
5+
+-
(
)
*
(
))+
%
)
,*
%
89:3:0
;
0<
U-)
2
*'
%
U
#*
(
")
%
*
2
#
2
&+
(
,#$
(
)
\3+*5*
%
+)
#
2
&+
(
89:3:V
*
\. #
2
&+
(
:3:/
X
"
+,
"
%
*
+*'
2
)+
2
:3:
,*
2
(
'*
%
%
0
*'
2
V
)
&#
(
*'
2
)+
2
\)#
%
%
3
g
2
+,0*
(
U*)
%
)-*
\3
&' 01
234/
%
*
+,-"("
%
*
+%5 067/48
9&4:/;
-
<
:3h3W
+,-"("
9'
&'"(=(>;
Không
*'
2
)+
2
:3:'-
+%06?
"("("3
:3:
+,-"("
9'&'"(";
%"(55%"(5("
*'
2
,
+*)
%
,
,+
2
:3:\
-
2
$
(
,*
2
#
2
&+
(
)
%
)
2
#$
(
3
+% 06? "("(5
+% 06? "(5
)+)
%
0!-
2
$
(
)#
89:3:i
:3:
;0<:3;#$
#
%
3
:3:3:
+,-"("
9'
&'"("(";
%"(5(5
*
)
%
)V
%
7$
2
-
(
5 Z#
"
0
%
*
+0-"U
"
+
(
5)
%
))#
%
)7$
%
.\
U-)
,-
2
/):3:3 +%
06?"("(>
+%06?"(5(5 )+
)
%
0!-
2
$
(
)89:3:i:3:3:
;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
+
(
5)
%
))#
%
)7$
%
3g-
2
+*)
%
)
V
%
7
)
%
)
\$
%
30+N
:3Wg!)+)
%
0!-
2
$
(
)*
'
2
3
-
/
&'
\#
0$
%
(
50
(
#
*
&!
"
3*'
2
:3:)+
2
\)
%
:_
%
&+
)+ javax.accessibility5 javax.swing5 javax.swing.border5
javax.swing.colorchooser5 javax.swing.event5 javax.swing.filechooser5
javax.swing.plaf5 javax.swing.plaf.basic5 javax.swing.plaf.metal5
javax.swing.plaf.multi5 javax.swing.table5 javax.swing.text5
javax.swing.text.html5javax.swing.tree5&javax.swing.undo3
+*
%
)
%
))#$V
)V
2
#
2
&+
(
-
(
2
)+
2
\5)+
2
*
%
+0
)
%
)
%
javax.swing, javax.swing.event.
&
*
&'%
%
)
\],#$
(
))+)
%
89:3h
:3:367
(
)&+
;0<"
)
-"$
(
)
%
)
\]5+*5)+
%
*
)
%
)
39
#
2
&+
(
5)
%
*
2
'*
(
)
%
)
$
%
)
%
)
\]3
%
)
)
%
*'7
%
,
+'7
U
%
#
(
3V
%
&+
(
#50$
%
\]'+)0 )
%
*0
Button V
0$
%
'+)
%
*0
Jbutton. 4
5)
%
)
\]V
7
%
java.awt, )
)
%
)
V
7
%
javax.swing. 8,
%
5U #
2
&+
(
)
%
)
V
U'
%
)+
2
)#$V
5$
%
*
&
0*
(
+
import javax.swing.*;
#
(
U
%
)'*
(
0$
%
%
#
"
)
%
)
\]
,
%
0
)
%
)
,#$
(
)#
(
)
U-)
"
+-
.' 0+!0!)&!/39*
2
#
U)
%
)
U-)
'
(
(
)*
%
#
"
U+-"+-#$
5.!
0! )&!/5#
%
)0
0+
%
)
)
%
)V
%
7)+
2
%
,
"
)
%
7
(
+*
%
)
%
)
*'
2
5V
)
%
))#
%
)7)+
2
%
,
"
$
2
-
(
$*
+ $
%
)
%
))#
%
)7)+
2
)
%
)
\]38)
%
)
U-)
%
"
+-
.!)&!/5*)+
%
)
%
*
2
,#$
(
)*
#0
-
(
&&N)+
2
89:3:#-
(
)+
2
;
0<3
4)
2
#
"
,$
2
%
)+
"
,
"
)
%
#
"
U
2
7#$
(
Z)
%
)
\]
• '+
0'!0 )
%
*
2
*
2
(
V
2
)
2
7'
2
3
•
%
*
2
&*"&
,-
2
,#$
*
)+
2
+*
%
)
%
)
3)
%
*
2
&*"&
,-
2
,#$
*
)+
2
-
(
0'!0-
(
,-
%
#$
(
)#
%
,
%
3
•
%
*
2
&*"&
,-
2
&*
(
)+
2
-
(
#$#
%
),*
+U*
2
)+
2
%
7
(
)
(
-
(
0$
%
). +')0 /)+
2
)V
%
,
%
3
•
U-)
%
V
)#
"
(
38,
%
5)
%
)+
%
0*
(
)
%
*
2
)
%
V
7
(
)'
%
)3
• 9
"
+
(
-"$
(
.\ !!)0! /1+*
(
),
(
)
V
)
%
*
2
&*
2
&
0
%
-#
)
%
)
3
5(!*
%
8
4<
&'
j*
2
*
%
-
(
)#$V
#
2
&+
(
)
%
)
5#$
%
)*5
2
)
%
*'
2
)+
2
89
#$#
%
3g*&
(
)
#
(
)-
(
)#$V
)
+
+-
(
)
*
(
), #
2
&+
(
89:3:;0<34*
%
+ #
2
&+
(
;0<V
!
"
,$
2
$V
,
"
,#$
(
)V
%
)$
(
3
;3:g*&
(
)
#
(
))#$V
$
%
;0<5:3;:3W
5)+
%
!
"
U
2
%
)
%
)
%
,*
1+V
%
&+
(
SwingApplication.java )
%
&*
(
# +
+,0
)
%
)'#$
%
)V
#
(
)*
(
)'*&
(
)
#
(
)-
(
)#$V
$
%
;895:3;:3W
:3 4*
%
+)#)
%
5)
,7
(
%
*'
2
;0<3
;3
(
-
(
)#$V
#
2
&+
(
)
%
)
3
W3 g*&
(
))#$V
3
^3 #
(
))#$V
3
X*
(
5,)
%
;*'
2
)+
2
;0<5
%
)
2
,*
+*"V
%
&+)+)
%
.'
(
)
%
*
2
,
(
)V
2
,*
2
,#$
(
)-
2
$
(
3 +3)/3*'
2
#
%
%
0
:3;.;895&&k&:3;/
*'
2
#
%
0
:3W.;895
&&k&:3W/3
j*
2
(
-
(
)#$V
#
2
&+
(
)
%
)
5)
%
*
2
#
2
&+
(
)#$V
"+
)+
%
-)+)
%
+,\0)3l3
0#+
%
0
*<0!
2
)V
%
Z
%
)
0
m\0)3lm
lZ3 3no !<0)U!!3
)3 +3l3 3no !&'89:3;g!^&00
!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&&.'+/o
!3&&.0'!0/o
!+!o
u
+'0) )&.vw /p
p
6!3 !`U\&!!0.
6!3! 0<`U\&!!00 4!.//o
u)).kZ)!!/pu
!!!N0!!0)!&&&)! 3
!<!q!!.m\0)m/o
\0)q!\0)./o
!)! q3)!!! ./o
<!3!!!./3&&.)! 5g&!`+3k4kx/o
!+!<!5& 3
<!3&&]&` !!.!]&\&!./p
+'0)&&0 .]&k!!/p
!3!Z.h/o
u
u/o
<!3)U./o
<!3 ! '0!.+!/o
u
u
g#$
%
)*
%
!0
'*&
(
)3*
(
)'*&
(
)$
2
*,$
2
&*
2
&
$
%
;89
U)
%
)
%
,#$
(
)V
%
)$
(
*'
2
&&k&)+
2
;0<3
+0*
(
# +
l)N&!!)\0)3l
#$
$
(
U'*&
(
)U-
)-5)
%
*
2
0
&'
(
, #
2
&+
(
V
'*&
(
)
89:3:V
:3;7
(
):3W7
(
), #
2
&+
(
'
2
'!)+
2
;0<3
#
(
))#$V
!
"
,#$
(
)#
(
)*
(
U,
"
'*&
(
)
)-3
,
2
'
2
0
)0 ,
"
)V
2
,#$
&",*
%
<0!#
(
)
&lN)0 3oyly0<&y!0<3l\0)
`#+
%
U-)
2
2
,+-$
2
-
(
3)0 3V
-&
(
))+
2
*'
2
:3;
:3W !
"
#
(
,-
(
&
V
3
;3;g*&
(
)
#
(
))#$V
$
%
89:3:
+
"
#$#
(
#$
%
;0<5#V
'*&
(
) #
2
&+
(
$
2
,0
89:3:
:3:3
>(
&'63
z*
2
*
%
-
(
\0! 5#$
%
)*0
2
#
(
),#$
(
))+
%
3
!
"
$
%
*
(
+;
0! 3
+,0
"
)+
2
0! X!00\0!3l
lZ3 3no !<0)U!!3
)3 +3l3 3no !&'89:3;g!^&00
!0! ! '!<!:3:g!W3
l33no
+'0))0 X!00\0!!Z!& \0!p
)U&+0!! !:3:3
+'0)X!00\0!./p
!x!./3+0!!.m&!<! !k!{+!+!!)Um5
g0!3xk/o
u
+'0)&./p
`'!00'!0q!`'!0.
m|+! +))! <+00+0!sm/o
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
,
"
)
%
V
&+*
(
:3:7
(
):3;7
(
)
2
*
0+N
)+
%
0
#
"
*'
2
$
%
%
3#$
$
(
U-)
%
)
%
)#
%
*5)
%
*
2
#
2
&+
(
\0!!!.appletviewer/3
.;/ 4*
%
+'
(
, #
2
&+
(
V
&+*
(
:3:U-)
%
0+NV
)
2
(
<0!
\x
V
&+*
(
3
.W/ 9*
2
0
(
Z!V
&+*
(
)+
2
'
(
,
"
)V
2
)#3
(
'
V
V
&#$
%
,U*
2
)#
%
)V
&+*
(
)+
2
'
(
0
,
"
,
%
#
%
)#34*
%
+V
&+*
(
)+
2
'
(
Z+
%
*
(
0!#&#$
%
,V
a93
#$
$
(
)V
2
%
-
(
V
0!7
(
)U-
%
)
%
)V
2
V
V
&+*
(
)+
2
'
(
)##
(
) #
(
7"
3
@(4/$
*8%*
8
&'
5)+
%
!
"
V
*
2
+*-1+)#$V
SwingApplication.
SwingApplication !
"
*
2
(
)#
2
-
2
# +
"
)+
2
SwingApplication.java #
(
)*
(
#
"
)-*
(
) +
^3: 18/4&'3
8
0*
(
+ !
"
%
)V
%
lZ3 3no
`#+
%
:3:
;89:3;*'
2
'! #
2
&+
(
*
(
U
%
)
+)
%
3
X
+*
%
)
%
))#$V
,*
+)
%
)V
%
)+
2
\]0
l33no
l33!!3no
^3; -//36//7336
)!
%
'
(
)V
2
,
(
"
~0U&<!!0•
)#$V
)+
2
'
(
#
2
&+
(
NN
0U&<!!05]& 0U&<!!058k6<0U&<!!05333z
(
"
,
(
&#$
%
, !
"
)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
(
,-
%
#$
(
)#
%
#
%
),V
2
6-")#$V
,#$
(
)V
&*",*
+)
%
&*
(
$
%
#
%
),$
2
%
0
-
(
,-
%
#$
(
)#
%
+-
(
)
)+
2
$
2
#
%
),V
2
3•
2
+*
%
)
%
)#
%
&+
(
5
,-
%
#$
(
)#
%
$
2
#
%
),V
2
)
%
*
2
0
JFrame5JDialog57
(
).)0! /
JApplet36-",-
%
#$
(
JFrame !
"
#
(
)*
(
-
(
)#
2
-
2
)V
%
-"JDialog !
"
#
(
)))#
2
-
2
#
%
36-",-
%
#$
(
JApplet#
(
)*
(
*
(
)*
2
(
)+
2
-
(
0!'*-
(
)#
2
-
2
3
%
),-
%
#$
(
)#
%
#
%
),V
2
)+
2
)+)
%
)
%
)
-
2
$
(
)
*
%
,*
2
)
%
)
#
(
)*
(
*
(
)!
"
1+
2
0
%
)
%
)
3
A&‚\0))ƒ)„,…#†)‡‡),ƒ0f!39#ˆ #
2
&+
(
,„<!#
%
&+
(
‰Š3zH +,ZŠ)0=f)‹Œ
<!
+'0))0 \0)p
333
+'0) )&.vw /p
333
!<!q!!.m\0)m/o
//...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`'!00'!0q!`'!0.0'!0!<Zimhm/o
333
0'!03 !`'!0.'+/o
...//in the event handler for button clicks:
0'!03 !!Z.0'!0!<Zi+0)U /o
zH*,$™5š&•U•,#$‡) !`'!0./34
%
Z+
%
*
(
$
2
, -
%
# #
(
$
(
%
*
U
2
+
(
-
2
$
(
#
(
) *
%
. !
!)0! /
-1+,
%
5-
(
0'!0,#$
(
)-
2
#0
-
(
'+3
^3_ *
)
%
),-
%
#$
(
)#
%
3
SwingApplication
%
0'!0
'+
-
(
,-
%
#$
(
)#
%
.JPanel/
#$
%
)U*
<!-
(
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
(
-
(
!05U'
%
-
(
,-
%
#$
(
)
%
U*
2
+!0$
%
*
(
0
!3
8
.;/,*
2
(
,#$
*
''
(
))!0,
%
3
8
.W/&+
,!
2
(
-
(
,-
%
#$
(
1+
2
0
%
0+,*
2
%
%
%
)
2
)
%
)
)
%
!0 !
"
,#$
(
)*
2
(
*-
(
)-
(
3
8
.^/
._/&+
,*
2
,#'+
0'!0
!03*
(
)*'+
0'!0
!0)
%
V
"
0
)+
%
!
"
,#$
(
),*
+U*
2
'$
2
0+1+
2
0
%
!0
,
%
3
^3b *,#$
*
.'&! /Z+1+-
(
3
z
(
"
+, !
"
(
-
(
,#$
*
)-
(
!0
!3 !g&!.g&!)3)!!kg&!.
Wh5
Wh50!<
:h5'
Wh/
/o
,#$
*
,$
2
)V
2
)+)
%
-
(
+
-
%
)+
2
!03*WhZ!0
)50!<5
5
:hZ!0 )'3g&! 0
V
%
7
!0#
U*
%
#
0$
%
!3
^3c X&0!!
SwingApplication )#
%
;!!&0! 36-
(
7
%
'7
%
#
(
U*
(
UV
%
)
+
%
0*
(
.)!! /3
%
U,*
2
7
%
'7
%
#
(
U*
(
,
%
)#
2
-
2
.&!! /3+
,0
,
(
"
1+
2
0
%
)
%
) #
(
U*
(
)+
2
SwingApplication
'+3&&\)` !!.!\)` !!./p
+'0)&)!<!&.\)k!!/p
+0)U iio
0'!03 !!Z.0'!0!<Zi+0)U /o
u
u/o
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
%
,,#$
(
)*
2
(
. '0!/5V
%
)*&*
(
)+
2
%
)V
2
Z
2
)-
(
!!&0!39-*
2
)
%
*
%
V
)+
+Z+
%
,*
%
-
(
)+<-
(
$
,*
2
3
^3e + !!)0!
X-"$
(
!!)0! 5-
(
*
%
'
(
-
%
#,*
2
,
(
)
V
5)+)
%
)
%
)
#
%
),*
2
Z#
2
0
%
-*3X-"$
(
,
"
)
%
+*
%
)
%
)
3SwingApplication)
%
-
(
)-",*
)
(
,*
%
U
"
+
(
0'!03 !`'!0.'+/o
4#,
"
%
5*
(
)0
%
-#
)
%
)
0
,*
+,,#$
(
)1+5
U
"
+
(
*,
"
+
%
))-*
(
)
,#$
(
)#
(
)*
(
-
(
)
%
)&*"&
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