á΂‹ ŕ˂Ÿ„ - á΂‹ ܲ
ŢéŸÁ .Ýéœé—˙› ɟ͌… ÁÍ ŕ˂‹ ß Ĺƒ‚† ݅‹Ÿ‹ ڟ ‚ƒ ˙‹—Á̈́ ÜÁßĎŸß á͂›› ޛ
ŕé— ˙éŸ‚é ˙‹—Á̈́) ˝Ë˙› џ‚›œ ÁÍ ‚˙‹—Á̈́ ŕ— Ë΂‹˙› ŕ˂‹ Ý͕ ڟ ݅‹Ÿ‹
.˜ÍÁË ÍÁ͖ Ý͕ ÍË ˙…ƒ‚† ܉› ÍË ‚˙‹—Á̈́ .(˜Ë˙› ނŒœ ÁÍ Ü˛ ś‹ ł•
.ŋÁ Ԃƒ…ÍÁ ÍË Á߂‡ UI ‚ƒ Layout Manager ŕߟŒ ŕ…ƒ™Á

ŕËéŸéŒ—͟ߍ… ŕƒ ł ß ˛ ܗŒ ÍË ‚Ÿß„ ß ‚…‹ŸÁ ܲ ˙‚ÍÁËߛœ ÍË ‚Ý͕ ݅‹Ÿ‹
ÔéƒÁÍ User Interface ‚é‡éœéŸÁ ÍË .ŋÁ ŕ˛Ŕ ˛ ܗŒ ÍË ‚…‹ŸÁ ܲ .ŋÁ ŕˌ
User Interface ˟‚ƒ ˙‹š— ŹËߌ ŕËÁË Ţ‚Œœ ͘ŒŸ‚›œ ÍË ŕ—œŔ ˙Á̓ .ŋÁ ˙™Á
˙ÁÍéƒ ÁÍ ‚é˙é‹é—Á̈́ ÜÁßĎŸß ŹŢŔ ŋÁߊÍË Ý‚˜œ ÍË ß ŕËߛœ á΂‹ ŕ˂Ÿ„ ÁÍ
ÁÍ JComponent ŕé— ˙é‹šé— Íé ÎÁ ˙Áŕéœß›œ ĹÍߍƒ ‚˙‹—Á̈́ .˜— ŕŸž… ł•
.˜ߌ˙› ŕ˜ÁË͘ ΂ƒ ŹËœ—˙› á΂‹ ŕ˂Ÿ„


˛ ܗŒ


ÎÁ ‚é˙é‹é—ÁÍé„ Ĺé‹ÁßéŠÍË ŢŔ ŕ镟Őß .ŋÁ PAC Control ŗ‡ƒŔ ڟ Form К—
ÝÍé• .Ë錂éƒ˙› ͘ŒŸ‚›œ ˙ßÍ̓ ‚ ˙‹—Á̈́ á΂‹ Å͛ ß ŃŸ‚›œ ܃‚– ˙‚Ĺ—‡ƒŔ
ŕéƒ ˙™— Ý͕ ÎÁ ΂Ÿœ ĹÍߍ ÍË ËœÁ߅˙› ŗ‡ƒŔ Á̙ ŹËË˙› ԋƒ ÁÍ JComponent
˙ßé˜é™Á ÝÍé•-ŢßÍË-Ĺé›Íé• ŕßéŸéŒ ŢéŸÁ) Ëéœé— ŕ˂é•é…é‹Á ˙é‹é—ÁÍé„ ŢÁߜ
.(ŋÁ Gang of Four Composite

ËéœéŸŔ˙› ÍË ŃŸ‚›œ ŕƒ Ý͕ ˙ßÍ̓ ŕ— áËː…› ˙‚Ĺ—‡ƒŔ ł• ˙ƒ‚ŸËÍ ˙Á̓ Ý͕
String ŹElement .Ëéœé—˙é› ŕ˂é•é…é‹Á (Private ˙é™éŠÁË Đš—) Elements ÎÁ
˟œ— ŕ‡ß… .ËÍÁË˙› ŕ˜œ ŹËœœ—˙› ˙Ÿ‚‹‚œŒ ÁÍ Ĺ• ˙›‚‹Á ß Đš— ŕ— (˙Ÿ‚ŕ…ŒÍ)
˙é…é‹ÍË ŕéƒ ÁÍ Í‚é—霟Á ÉÁÍÔ Í˜Á .Ëߌ˙› ŕ͟ŠĚ (˙Ÿ• ݂œ ŕœ) ŕ ݂œ ŕ—
ŕ˂éŸé„ ËéœßÍ ˙Ô ÍË ‚Ë™Ÿ• ŕ—™ƒ ˜—˙›œ ͟Ÿ“… К— ŕß›‡› ŕ ŹËË ݂‡œÁ
.˜ƒ‚Ÿ˙› ͟Ÿ“… á΂‹

Ýé is invariant) invariant :ËßéŒ˙é› ˙霂ƒŸ…Œ„ Element ŗ‡ƒŔ Öߜ ßË ÎÁ
.‚éicon ß slabel Ëéœéœ‚é› Ë霂é›˙é› Ĺƒ‚† Ý͕ џ‚›œ ݂˜œ ŕ— (ŋÁ ŋÍË
ÁËé ‚ƒ invariant ͍‚œ .˜…‹ invarian ‚icon ß ‚label ˜œ‚› ˙Ÿ‚ÎŸˆ
ÝÍé• ÍË add field(invariant: JComponnet, location:Rectangle) Ë酛 ŢË͗
ނ雝 ‚ƒ Element ŕ˜΂‹ÎÁ ŕ˂•…‹Á ‚ƒ) ÁÍ Ă‹‚œ› Element ŕ— ËœÍŸ˜˙› ÍÁ͖
.Ë韂é›éœ˙é› ŕ›Ÿ›Ž ‚Ë™Ÿ• ŋŸ™ ŕƒ Á͜Á ß ŕ…Š‚‹ (add field() ˙‚Ţ‚›ß˜ÍÁ
ŕËéŒ ŢéŸéŸé… ܉› ÍË invariant JComponent ˙Œ ŹËË͘˙› ܂• Ý͕ ŕ—Ÿ›‚˜œ
.Ëߌ˙› ŕËÁË ŃŸ‚›œ ß ŕ…•Í˜ ÍÁ͖

ł• ÎÁ ˙ސƒ ͘œ‚Ÿ‚›œ ˜…‹Ÿœ invariant ŕ— ˙Ÿ‚Ë™Ÿ• ŕ› ŕ— Ĺ‹œŸÁ ̓ Ó͕
ŕé— add-field ˙‚éŕéŠé‹œ ͟‚‹ ڛ— ‚ƒ ‚Ë™Ÿ• ޟÁ .˜Œ‚ƒ˙› ‚ž‹š— ÎÁ ˙ސƒ
.ËÍÁË˙› ŕ˜œ ÁÍ Ĺ• ݂œ ß Đš— ݂œ ŕ— ˙Ÿ‚ŕ…ŒÍ

ĹÍßé ŕƒ ŕœ .˜ߌ˙› ŕ͟ŠĚ ŕ…ŒÍ ĹÍߍ ŕƒ Ĺ‚• ˙›‚‹Á ß Đš— ŕ— ËŸŸ‚›œ ŕ‡ß…
ŕéƒ ÁÍ ÝÍé• ŘéŸÍ鐅 Ź‚ŕ…ŒÍ Ë̓͂— .instantiated ˙‚Ĺ—‡ƒŔ ŕƒ reference
ŕéƒ ÎŸœ Ý͕ ɚÁ .˜—˙› ނ‹Ŕ ‚ŕËÁË ŕ‚˜Ÿ‚„ ÍË ˙™ßˇ ‚Ÿ ASCII ܟ‚• ĹÍߍ
.ŋŸœ ˡ› ܟ‚„›‚— ŕƒ Î‚Ÿœ ß Ë͟˜˙› ݂‡œÁ ASCII ܟ‚• ޟÁ ɚÁ ‚ƒ ˙˜Ë‚‹
layout ˟œÁ߅˙› ‚›Œ .ŋÁ ܲ ÎÁ view á΂‹Áˇ ˙™Á ъƒ á̄͟ ؂ԐœÁ ޟÁ
ÜËé› Íéƒ Ĺ陂é‰éœŸÁ .˟Ë ͟Ÿ“… ˙‹Ÿßœ ˗ ŕƒ Î‚Ÿœ Ţß˃ ÁÍ ‚Ý͕ ߗͅ ß
.ŌÁ̘ ˝Áߊœ ͟†‚…

Load() ˙‚éË…› Ý͕ ÍË ÜŸ‚• ÎÁ Elements áÍÁ̘͂ƒ ˙Á̓ Form К— ÍË Hooks
ËÍßé› ÚéŸ Îé‡ ŕéƒ ß Ëœ…‹ non-final ˙‚Ë…› ‚žœŔ .˜ߌ˙› ŕŸž… store() ß
˙霂éƒéŸé…Œ„ ˙Á̓ ÁÍ ‚žœŔ ˟œÁ߅˙› ‚›Œ .˜Ë˙›œ ݂‡œÁ á͂— 𐕠ʂœ†…‹Á
Ţé› ŕœß›œ ˙Á̓ .˟œ— ˙ŒÍ‚•‹ (Form ÎÁ ˙‹š— ق–…ŒÁ ԋ߅) Ý͕ ؟͐… ݅‹Ÿ‹
˙é›Íé• Load() ˅› :˜—˙› á΂‹ ŕ˂Ÿ„ ͟ΠĹÍߍ ŕƒ ÁÍ Ë…› ßË ŕ— ÝÍÁË ˙‹š—
ŹËéœÁŕËéŒ Áˇ ͘ŸË—Ÿ ÎÁ ‚›‚— ‚ƒ ŢÁ ͍‚œ ŕ— ASCII ܟ‚• ڟ Ţ˜Áߊ ‚ƒ ÁÍ
ÍË ß Element ÚéŸ ÍË ÁÍ ÍéÔé‹ Í ŕ— ĂŸ…Í… ޟ˃ ˜—˙› initialize ÁÍ Form
:˜—˙› ˙Ë ÍÁ˖› ͟Π͟Πق–

x, y, width, height, class_name, attribute_name



Đšé— Ý‚éœé›é ŕ— ˙package ݂œ) Ëߌ ԟÁ͌ ÎÁ͉Á ܛ‚—ÍßÔ ŕƒ ËŸ‚ƒ К— ݂œ
ß ËË͘ ҊŒ› class name ˙Ÿ• ÍË ËœÁ߅˙› java.swing ŕ…‹ƒ ÍË Đš— ͝ .(ŋÁ
ŢŔ ނé›ß˜ÍŔ ŢÁߜƒ attribute_name ˙Ÿ• .ËÍÁË string constructor ڟ К—
‚éƒ ß ÖßÍéŒ < ͅ—Á͂— ‚ƒ attributed-name ͘Á .ËßÍ˙› ͂— ŕƒ constructor
.Ë錂ƒ˙› URL ڟ attribute name ŕ— Ĺ‹Á ޟÁ ̓ Ó͕ ŹËƒ‚Ÿ ŕ›…‚Š > ͅ—Á͂—
‚›Á ŹËߌ˙› ŕ…Š‚‹ ImageIcon ŹËŒ‚ƒ javax.swing.ImageIcon Źclass-name ͘Á
.Ë͟˜˙› ÍÁ͖ JLabel ŢßÍË

ނ›Í• ˙ËßÍß ŹÜ‚†› ˙Á̓

10,20,100,200,javax.swing.JButton,Hello World


:ËË͘˙› ܟ˃… ͟ΠܗŒ ŕƒ

new Element(new Rectangle(x,y,width,height), new JButton("Hello World"));


:Ëߌ˙› ˂‡ŸÁ ͟Πނ›Í• ‚ƒ ŢߗŸÁ ß

10,20,100,200,java.swing.ImageIcon,foo.gif

:Ë͟˜˙› ÍÁ͖ ͟Πق– ÍË ŕ—

new Element(new Rectangle(x,y,width,height), new JLabel(new ImageIcon("foo.gif"));

ß

<http://www.holub.com/images/mooney.jpg> 10,20,100,200,java.swing.ImageIcon,

ŕƒ ÜŸËƒ…

new Element(new Rectangle(x,y,width,height), new Element(new JLabel(new ImageIcon(new URL("http://www.holub.com/images/mooney.jpg") )));


.Ëߌ˙›

ÝÍé• Ń韂é›éœ ˙ÁÍéƒ ÁÍ Í˜ŸË—Ÿ ‚ƒ ‚ž‹š— ޟÁ Ë͗™› ŕ߉œ ˟Ë ŕ΂‡Á ڜŸÁ
ŘéŸÍéé…) Ý͕ á΂‹ ҊŒ› .ËÍÁË Ëß‡ß ‚Ÿß„ ܲ ÍË ßŸÍ‚œ‹ ßË .ݟŸ‚›œ ˙‹Í̓
.(ŢÁ џ‚›œ ß Ý͕ ŕƒ Á͇Á ނ›Î ˙‚Ĺ—‡ƒŔ ŢË͗ ŕ›Ÿ›Ž) á΂‹ ܂• ß (‚Ë™Ÿ•
add_field() Ë酛 ˜ˆ ‚Ÿ ڟ ˟œÁ߅˙› ß "ŋÁ ނ‹Ŕ á΂‹ ҊŒ›" ŕ—Ÿě‚‡œŔ ÎÁ
ÍË UML ˙韂Ÿß„ ܲ ÍÁËߛœ .ÝÎÁË̈́˙› á΂‹ ܂• ˙ߟ͂œ‹ ŕƒ ŹËŸœÎƒ Áˍ ÁÍ
ËéŸËéŸËœ ÁÍ áÍÁËߛœ ޟœˆ šƒ– ͘Á .˝Ë˙› ނŒœ ÁÍ á΂‹ ܂• ˜ŸÁ͕ ł ܗŒ
.ËéœéË˙é› Ţ‚éŒœ Á͇Á ނ›Î ÍË ÁÍ Ý…‹Ÿ‹ ˙‚Ĺ—‡ƒŔ Ź‚Ţ߅‹ ŕ— ËŸě‚›œ ŕ‡ß…
(Ń陕 އ ÍË) ͘ŸË ŗ‡ƒŔ ŕƒ ˙…—‡ƒŔ ÎÁ ŕ— Ĺ‹Á ˙Ÿ‚ž›‚Ÿ„ ͘œ‚Ÿƒ ˙–•Á ÔßԊ
.˜ߌ˙› ܂‹ÍÁ ˙œ‚…‰… ˙‚ž›‚Ÿ„ ÎÁ џ„ ŹÍÁËߛœ ˙š‚ƒ ˙‚Ý‚Ÿ„ .Ëߌ˙› ܂‹ÍÁ


PAC ˙‚Ÿß„ ܲ : ł ܗŒ




.Ë霅•͘˙› Í՜ ÍË ‚‡—Ÿ ‚Ë™Ÿ• ‚ƒ ÁÍ Form ŗ‡ƒŔ ޟŒŸ„ ˙‚ßŸÍ‚œ‹ ÎÁ ˙ސƒ
ÍË ‚é‡é—éŸ Element Ĺé—é‡éƒŔ ‚éƒ Form--already 𛂗 ‚Í‚— Öß͌ ŕԖœ Á̙
Ëߌ˙› ΂’Ŕ ˙Á΅œÁ ś‹ Üͅœ— ŗ‡ƒŔ ‚ƒ á΂‹ ܂• ˜ŸÁ͕ .Ëߌ˙› ŕ…•Í˜Í՜
attach(things) ݂éŸé„ ĹÍߍ ŕƒ) ˜—˙› ܂‹ÍÁ ÁÍ ˙™ƒ– Populated Form ß
ŕé— ˙Ÿ‚Ĺ—‡ƒŔ Ź"џ‚›œ ܃‚–" ŗ‡ƒŔ ˜ˆ ‚Ÿ ڟ ŕ— Ĺ‹‚œ› ޟÁ ŕƒ things .(
ÁÍ ˙é‹é—Á̈́ ÜÁßĎŸß Î‚Ÿœ ݂˜œ ÍË ß Ëœœ—˙› á΂‹ ŕ˂Ÿ„ ÁÍ user interface
Ëː…› ł• Ý͕ ŢŔ Ђ‹Á ̓ ŕ— Ĺ‹Á ˙…‹ÁߊÍË attach() ݂Ÿ„ .˜œÁË͘˙› ΂ƒ
Element ËÍé•霛 ˙‚Ĺ—‡ƒŔ ŕ™Ÿ‹ßƒ ł• ٟ–Ë ŕß›‡› .˝Ë˙› џ‚›œ ÁÍ Ĺ—‡ƒŔ
.Ëߌ˙› Üͅœ—

ÁÍ attach() ÎÁ Ĺé™‚é‰ ŕé‹ Form ˙‚éĹé—é‡éƒŔ .ÝéŸË͘˙› ΂ƒ ‚…‹ŸÁ ܲ ŕƒ
ŕéƒ ˙é›ßé‹ ß ŕŸÁÍŔ ˙Á̓ ˙›ßË ŹË͕œ› ˙‚Ĺ—‡ƒŔ ˙Á̓ ˙—Ÿ .˜œ—˙› ˙œ‚ƒŸ…Œ„
˙éË ÍÁËé–é› ‚écollection ‚Ÿ ‚Map ÎÁ ˙ސƒ џ‚›Ÿ„ ˙Á̓ .Iterator ĹÍߍ
Ź FORM ÍË ÇÍ‚éŠ ÎÁ ‚éĹé—釃Ŕ ŢŔ ÍË ŕ— ÝËߛœ ŕ˂•…‹Á ˙™Ë› ÎÁ ޛ .Ëߌ˙›
.ËéœÎ‚‹˙› ܍…› Form ŕƒ ÁÍ Ü˛ ś‹ ˙‚Ĺ—‡ƒŔ ß (PUSH ܲ) ˜ߌ˙› "PUSH"
ŕ˂éŸé„ .Ë霗˙› ÇÁ͊…‹Á ܲ ÎÁ ÁÍ Î‚Ÿœ ËÍߛ ˙‚Ĺ—‡ƒŔ FORM ŹPULL ܲ ÍË
.ŋÁ ͅÍÁßŒË PUSH ܲ ‚ƒ ŕ‹Ÿ‚–› ÍË Ü˛ ޟÁ á΂‹

ĂéŸé…Í… ŕƒ ÁÍ ŢŔ ŕ— Ëœ—˙› ˙‹ Form ŹËߌ˙› ŕ›Ÿ›Ž Ý͕ ŕƒ ˙…—‡ƒŔ ŕ—Ÿ›‚˜œ
ނ錜 ÁÍ ŕˌ ŕ›Ÿ›Ž ŗ‡ƒŔ К— ŕ ˙element ͘Á .˜— ŕ›Ÿ›Ž element ͝ ŕƒ
˙ÁÍéƒ Element ÍË attach() ŕéŠé‹éœ .ËßéŒ˙› Í՜ Ř͍ ŋÁߊÍË ŢŸÁ ÎÁ ŹËËœ
Ý‚éœ Element .ËÍéŸé˜˙› ݟ›… ŹŃŸ‚›œ ܃‚– ŗ‡ƒŔ ‚ƒ ŢË͗œ ͂— ‚Ÿ ŢË͗͂—
ނ‹—Ÿ Element ÍË ŕˌ ŕ͟ŠĚ К— ݂œ ‚ƒ К— ݂œ ͘Á ß ŕ…•Í˜ ÁÍ Ĺ—‡ƒŔ К—
Ĺé‹Íž• ( ł• ‚Ÿ) ŕ ˙Á̓ ˙‹—Á̈́ ÜÁßĎŸß ÚŸ displayable ŗ‡ƒŔ ÎÁ ŹËŒ‚ƒ
܂é‹ÍÁ ‚éƒ ł镍 ŕ— ËŸŸ‚›œ ŕ‡ß… .˜—˙› ŋÁߊÍË Element ŕ ˙Ÿ• ÍË ŕˌ
áÎ‚é‹ ÁËé‡ ß "elbayalpsid" Ĺ闇ƒŔ ŕƒ ŹËœ—˙› ŕ͟ŠĚ ÁÍ Ĺ• ݂œ ŕ— ˙Áŕ…ŒÍ
.˜ߌ˙› ŋÁߊÍË á΂‹ ŕ˂Ÿ„ ÎÁ element É͌

ŋÁ ŕ ͘œ‚Ÿ‚›œ ŕ— Ë΂‹˙› ˙JComponent "displayable"Ź Ĺ—‡ƒŔ ř‚‰œŸÁ ÍË
ÁÍéœŔ ŢÁßé…˙é› component ɚéÁ ݂˜œ ÍË Á̙ ŹËߌ˙› ܍…› component ŕƒ ß
ŢŔ ŹÝËߛœ ŕ͂ŒÁ ͅŒŸ„ ŕ— ŕœß˜œ‚› .˜ÁË͘ ΂ƒ ÁÍ component Є‹ ß ŹĹ•‚Ÿ
ÁÍ widget Đé„é‹ ß ŕËߛœ ͜ ÁÍ ˙™‰› ܲ Źŕ…Š‚‹ ÁÍ Swing_widget ˜Á߅˙›
ŹËߌ˙› ŕ…Š‚‹ visual-proxy() ŋÁߊÍË ‚ƒ ŕ— ˙‹—Á̈́ ŗ‡ƒŔ Є‹ .˜ÁË͘ ΂ƒ
.ËË͘˙› ŕ͟ŠĚ Element ŢßÍË

˙é‹é—ÁÍé„ ÜÁßĎéŸß Ë錂éƒéœ ˙—Ÿ Element ÍË ŕˌ ŕ͟ŠĚ ݂œ ‚ƒ К— ݂œ ͘Á
˙invariant ˙™• Element ß ËŒ‚ƒœ null ˙‹—Á̈́ ˙Ÿ• ͘Á .Ëߌ˙›œ ŋÁߊÍË
Źŕˌ ŕ…Š‚‹ ˙˜Î‚… ŕƒ ŕ— ˙‹—Á̈́ ŹËËœ ނŒœ ÁÍ (ŕ͟’ ß icon..label ˜œ‚›)
Element constructor ŹËŒ‚ƒ ŕË߃ invariant ŗ‡ƒŔ ͘Á) Ëߌ˙› ŕ•‚ŽÁ Ý͕ ŕƒ
.ŋÁ ŕËßΕÁ Ý͕ ŕƒ ÁÍ ŢŔ šƒ–

Üͅœ— ŗ‡ƒŔ ŹËœßŒ ܂‹ÍÁ Ý͕ ŕƒ "displayable" ˙‚Ĺ—‡ƒŔ ŕ› ŕ—œŸÁ Ӊ› ŕƒ
.Ë΂é‹˙› ܂• setVisible(true) ‚Ÿ invalidate() ŋÁߊÍË Ü‚‹ÍÁ ‚ƒ ÁÍ Ý͕
‚éœéƒé› К— ‚›Á .Ëߌ˙› ܂‹ÍÁ Form ÎÁ Component_base К— ŕƒ Ĺ‹ÁߊÍË ŢŸÁ
Íé ŕéƒ ÁÍ activate() ˙‚éÝ‚韄 do-layout() .˜—˙› Í˂ ÁÍ do-layout()
ŕƒ SetBounds() ß SetVisible() ˙‚Ĺ‹ÁߊÍË ß ŕËߛœ ܂‹ÍÁ form ÎÁ element
ÁĚé™ ŹËéœÍßŔ ÍË ŃŸ‚›œ ŕƒ ÁÍ Ëߊ ‚žœŔ ‚… Ëߌ˙› ŕ˂…‹Í• ŕÔ߃͛ ˙‚˙‹—Á̈́
ŕé— ˙韂éœéƒ ÍéŸÎ "displayable" ˙‚éĹ闇ƒŔ ‚ƒ ß Ĺ‹Á şßÍ Üƒ‚– Ý͕ ڜŸÁ
ŕé— ËŸŸ‚›œ ŕ‡ß… .Ë΂‹˙› ÍÁ͖̓ Ԃƒ…ÍÁ ˜Ëߛœ ŕŸž… Ý͕ ˙Á̓ ÁÍ ‚˙‹—Á̈́
Ĺ闇ƒŔ .˃‚Ÿ˙› ނŸÍ‡ "displayable" · ŕƒ ˙‹—Á̈́ ÎÁ ‚›Ÿ–…‹› ̓͂— áËßÍß
ŕ˂韄 ŕ߉œ ŕƒ Á·Á ޟÁ ÎÁ ڟˆŸ ޟœˆ› .ËÍÁ˜ ŗ͌ Ԃƒ…ÍÁ ޟÁ ÍË Form
ÉéÔé‹ ˙‚éĹé—é‡éƒŔ ÎÁ ‚ŕËÁË ÇÁ͊…‹Á ˙Á̓ .˜ÍÁ˜ á͂— ŕÔ߃͛ ŕ á΂‹
"set" Ëé…é› Č韝 ÎÁ ‚Ĺ—‡ƒŔ şŽß ɚÁ ˙Á̓ ß "get" ˅› ȟ ÎÁ ˙Á΅œÁ
ŕËߛœ ŕŸž… Swing JComponent ŕ— ˙ԃÁÍ ŮŸÍÔ ÎÁ ‚Í‚— ŕ› .˜—˙›œ ŕ˂•…‹Á
ݟ‚›œ Ř̉ ß ŕ•‚ŽÁ ÁÍ ‚Ë™Ÿ• ŹÝË ͟Ÿ“… ÁÍ Ý͕ ݜÁ߅˙› ޛ .Ë͟˜˙› ݂‡œÁ
ŕ•‚ŽÁ ˜Œ‚ƒ ŕ…ŒÁË ÍŸ†‚… ˙Á΅œÁ ŕŸš ˙‚ž‹š— ̓ ŕ—œŸÁ Ţß˃ ÁÍ ˙Ÿ‚Ý͕ ‚Ÿ
ÍßéÔ霟› .ˌ ˜Áߊœ ĹÁ͟Ÿ“… ݂‡œÁ ŕ‡ß…› ‚ž‹š— ř‚‰œŸÁ ÍË .ݜ— Ř̉ ‚Ÿ
˙é„ ÍéŸéŸ“… ޟÁ ŕƒ ‚Ý͕ ŹÝË ͟Ÿ“… ÁÍ ˙Ÿ‚œƒ ͟Πܲ á΂‹ ŕ˂Ÿ„ ޛ ͘Á
ŕŸš К— ˙œßÍË Đš— ŢÁߜ ŕƒ šß›› ˙‹—Á̈́ ŕ—Ÿě‚‡œŔ ÎÁ ŕߚƒ .Ë̓ ˜Áߊœ
Đšé— ÚŸ ˙Á̓ (ŕěÁÍÁ ß á΂‹ ŕ˂Ÿ„) ĹÁ͟Ÿ“… ŕ› Ëߌ˙› á΂‹ ŕ˂Ÿ„ ˙Á΅œÁ
ËÍßé› Đšé— ŕƒ reference ŕ› ˙Á̓ ŕ— Ĺ‹Ÿœ á΂Ÿœ ß Ë͟˜˙› ĹÍߍ ܉› ڟ ÍË
ß釅‹‡ ÁÍ áË̓͂— ŕ›‚œÍƒ ݂›… ŹË— ɟ‰ Ë͗™› ÎÁ ނœŸ›ÔÁ Üߍ‰ ˙Á̓ Í՜
.ŋŸœ ͟Ÿ“… ܃‚– ‚Đš— ß Ĺ‚• ˙›‚‹Á ‚žœ… ŹÝœ—

ŕé—éŸě‚‡œŔ ÎÁ .ˌ‚ƒ˙› Gang of Four ˙‰ÁÍÔ ˙ߘ™Á ÎÁ ˙™‚†› ˙‹—Á̈́ ‘–Áß ÍË
áÎ‚é‹ ŕ˂éŸé„ ŕ͂ƒ ÍË ß‡…‹‡ ˙Á̓ .Ëߌ˙› ŕŸž… ܲ ś‹ ŗ‡ƒŔ ԋ߅ ˙‹—Á̈́
ŕ˂éŸé„ ŕ— Ĺ‹Á ˙…ž‡ ÍË encapsulation ˙…Í‚ƒ ŕƒ Ĺ‹Ÿœ ŕ˂•…‹Á ܃‚– ŗ‡ƒŔ
ŕé…éƒé™Á .Ëéƒ‚éŸ ÍŸŸ“… Ç͂Š ˙‚ŸœË ֚ÔÁ Ţß˃ ˜Á߅˙› ܲ ś‹ ŗ‡ƒŔ á΂‹
ŕß›‡› ͘Á ‚›Á .˝Ë˙› ނŒœ ˜…‹ ŕ…ŒÍ ĹÍߍ ŕƒ ŕ— ˙…‚• ݂œ ŹĹ• ŕß›‡›
Íé ÍË .Ĺé‹Á ŕ酌ÁË Ü‚—ŒÁ ŕŸ™ßÁ ˙‰ÁÍÔ ŕ— Ĺ‹‚œ› ޟÁ ŕƒ ŹËƒ‚Ÿ ͟Ÿ“… ŕ
Ëßé‡ß ŕé— ˙…• ŕ—Ÿ›‚˜œ ˜Á߅˙› ŗ‡ƒŔ ß Ĺ‹Á non-issue ŕ ŢËßΕÁ event
ÁÍ ‚éÔéŠ ˙é˜Ë‚‹ ŕƒ ËœÁ߅˙› ߅ͅ ޟ˃ .˜ÁË͘΂ƒ null ˌ ŋÁߊÍË ËÍÁ˜
.ËÁË ŇŸŠŒ…


ÝßË Ĺ›‹– ܗ
1 2 3 4 5 6


Copyright 2001-2002, IT World / JavaWorld / PC WORLD Iran / International Data Group Inc. All rights reserved.

˙‡œ‹Í՜
ޟÁ ËÍߛ ÍË ÁÍ Ëߊ Í՜
:˟Ÿß˜ƒ ‚› ŕƒ Ă™Ô›

ŃÎÍÁ ‚ƒ ˙™ŸŠ -
ŃÎÍÁ ‚ƒ -
ŃÎÍÁ˙ƒ -

˙œ šßÔ ˙™ŸŠ -
˂œ› -
ŕ‚…ß— -

˙Š… ˙™ŸŠ -
Ăߙԛ -
ŋŸœ ˙Š… ˙•‚— ŕÎÁ˜Á ŕƒ -


:݂œ

:ڟœßͅ—™Á ŋ„

: ŗ͌ ݂œ

܃– ˙‚Ĺ›‹–
ÜßÁ ś‹– - Á͘˙Œ ˙‚Ý…‹Ÿ‹ ˙Á̓ ̓͂— ԃÁÍ ĹŠ‚‹
(ą ъƒ) ÝßË Ĺ›‹– - Á͘˙Œ ˙‚Ý…‹Ÿ‹ ˙Á̓ ̓͂— ԃÁÍ ĹŠ‚‹
(˛ ъƒ) ÝßË Ĺ›‹– - Á͘˙Œ ˙‚Ý…‹Ÿ‹ ˙Á̓ ̓͂— ԃÁÍ ĹŠ‚‹
(ł ъƒ) ÝßË Ĺ›‹– - Á͘˙Œ ˙‚Ý…‹Ÿ‹ ˙Á̓ ̓͂— ԃÁÍ ĹŠ‚‹