Π‘Π΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ²
Π Ρ.Π΄. ΠΠ»Π΅ΠΌΠ΅Π½ΡΡ ΡΠ°ΡΠΏΠΎΠ»Π°Π³Π°ΡΡΡΡ ΡΠ»Π΅Π²Π° Π½Π°ΠΏΡΠ°Π²ΠΎ Π² ΠΏΠΎΡΡΠ΄ΠΊΠ΅ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠΉ ΠΊ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌ add (), ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° ΡΠΈΡΡΠ½ΠΊΠ΅ 1. ΠΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ ΠΏΡΠΈΠ½ΡΡΠΎ ΠΌΠ΅Π½Ρ Π‘ΠΏΡΠ°Π²ΠΊΠ° (Help) ΠΏΡΠΈΠΆΠΈΠΌΠ°ΡΡ ΠΊ ΠΏΡΠ°Π²ΠΎΠΌΡ ΠΊΡΠ°Ρ ΡΡΡΠΎΠΊΠΈ ΠΌΠ΅Π½Ρ. ΠΡΠΎ Π΄ΠΎΡΡΠΈΠ³Π°Π΅ΡΡΡ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΊ ΠΌΠ΅ΡΠΎΠ΄Ρ setHelpMenu (), Π½ΠΎ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠ΅Π½Ρ Π‘ΠΏΡΠ°Π²ΠΊΠ° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΎΠΉ. ΠΠ»ΠΎΠ½ΠΈΡΠΎΠ²Π°ΡΡ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠ°" — ΠΏΠΎΠ΄ ΡΡΠΈΠΌ Π½Π΅ΠΎΠ±ΡΡΠ½ΡΠΌ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ ΡΠΊΡΡΠ²Π°Π΅ΡΡΡ… Π§ΠΈΡΠ°ΡΡ Π΅ΡΡ >
Π‘Π΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² (ΡΠ΅ΡΠ΅ΡΠ°Ρ, ΠΊΡΡΡΠΎΠ²Π°Ρ, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½Π°Ρ)
Π€Π°ΠΊΡΠ»ΡΡΠ΅Ρ «ΠΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΊΠ° ΠΈ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ»
ΠΠ΅ΡΠΎΠ΄ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠΊΠ°Π·Π°Π½ΠΈΡ ΠΊ Π»Π°Π±ΠΎΡΠ°ΡΠΎΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΠ΅
ΠΏΠΎ ΠΊΡΡΡΡ «Π Π°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ»
" Π‘Π΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ²"
ΠΠΎΡΠΊΠ²Π° 2004 Π³.
Π¦Π΅Π»Ρ ΡΠ°Π±ΠΎΡΡ
1. ΠΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡΡΡΡ Ρ ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΈ Π΅Ρ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ.
2. ΠΠ·ΡΡΠΈΡΡ ΠΌΠ΅ΡΠΎΠ΄ ΠΊΠ»ΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ.
3. ΠΡΠ²ΠΎΠΈΡΡ ΠΊΠ»Π°ΡΡΡ ObjectInputStream ΠΈ ObjectOutputStream ΠΏΠ°ΠΊΠ΅ΡΠ° java.io.
4. ΠΠ°ΡΡΠΈΡΡΡ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΌΡΡΠΈ ΠΈ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ.
5. ΠΠ·ΡΡΠΈΡΡ ΠΊΠ»Π°ΡΡΡ Menu, MenuBar, MenuItem, Dialog, FileDialog ΠΏΠ°ΠΊΠ΅ΡΠ° java.awt.
6. ΠΠ°ΡΡΠΈΡΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ°Π±Π»ΠΈΡΡ.
7. ΠΡΠΈΠΌΠ΅Π½ΠΈΡΡ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠ΅ Π·Π½Π°Π½ΠΈΡ Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅
ΠΠ°Π΄Π°Π½ΠΈΠ΅ Π΄Π»Ρ Π΄ΠΎΠΌΠ°ΡΠ½Π΅ΠΉ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠΈ
ΠΠ·Π½Π°ΠΊΠΎΠΌΠΈΡΡΡΡ Ρ ΡΠ΅ΠΎΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»ΠΎΠΌ, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π½ΡΠΌ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ ΠΊ Π΄Π°Π½Π½ΡΠΌ ΠΌΠ΅ΡΠΎΠ΄ΠΈΡΠ΅ΡΠΊΠΈΠΌ ΡΠΊΠ°Π·Π°Π½ΠΈΡΠΌ ΠΈ ΠΏΡΠΈΠΌΠ΅ΡΠ°ΠΌΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ. ΠΠ·Π½Π°ΠΊΠΎΠΌΠΈΡΡΡΡ Ρ ΡΠ΅ΠΊΡΡΠΎΠΌ Π·Π°Π΄Π°Π½ΠΈΡ ΠΊ Π»Π°Π±ΠΎΡΠ°ΡΠΎΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΠ΅, ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠΈΡΡ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² ΠΈ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ, ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΡΡΡΡΡ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡΠΌ Π·Π°Π΄Π°Π½ΠΈΡ ΠΊ Π»Π°Π±ΠΎΡΠ°ΡΠΎΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΠ΅, ΠΈ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
ΠΠ°Π΄Π°Π½ΠΈΠ΅ ΠΊ Π»Π°Π±ΠΎΡΠ°ΡΠΎΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΠ΅
Π‘ΠΎΠ·Π΄Π°ΡΡ ΠΎΠΊΠΎΠ½Π½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡΠ΅Π΅ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΠΌΠ°ΡΡΠΈΠ²Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΊΠ»Π°ΡΡΠΎΠ² Employee ΠΈ Manager (ΡΠΌ. ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅). Π Π°Π±ΠΎΡΠ° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π΄ΠΎΠ»ΠΆΠ½Π° ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΡΡΡΡ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΠΌΠ΅Π½Ρ, ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ΅Π³ΠΎ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ.
— ΠΠ΅Π½Ρ «Π€Π°ΠΉΠ»» (ΠΠ½ΡΡΡΠΈ — ΠΏΡΠ½ΠΊΡΡ ΠΌΠ΅Π½Ρ «ΠΠΎΠ²ΡΠΉ ΠΊΠ°ΡΠ°Π»ΠΎΠ³», «Π‘ΠΎΡ ΡΠ°Π½ΠΈΡΡ Π΄Π°Π½Π½ΡΠ΅», «ΠΠ°Π³ΡΡΠ·ΠΈΡΡ Π΄Π°Π½Π½ΡΠ΅», «ΠΠ΅ΡΠ΅Π΄Π°ΡΡ Π΄Π°Π½Π½ΡΠ΅»).
— ΠΠ΅Π½Ρ «ΠΠΎΠ±Π°Π²ΠΈΡΡ (ΠΠ½ΡΡΡΠΈ — ΠΏΡΠ½ΠΊΡΡ ΠΌΠ΅Π½Ρ «ΠΠΎΠ²ΡΠΉ ΡΠ°Π±ΠΎΡΠ½ΠΈΠΊ», «ΠΠΎΠ²ΡΠΉ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ», «ΠΠ»ΠΎΠ½ΠΈΡΠΎΠ²Π°ΡΡ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠ°»).
ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ Π½ΠΎΠ²ΡΡ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠ°Ρ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡΡ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΡΡ ΠΎΠΊΠΎΠ½.
ΠΠ° Π³Π»Π°Π²Π½ΠΎΠΉ ΡΠΎΡΠΌΠ΅ Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΡΠΈΡΡΡΡΡΠ²ΠΎΠ²Π°ΡΡ ΡΠ°Π±Π»ΠΈΡΠ° Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ΅ΠΉ ΠΎ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠ°Ρ (Π€.Π.Π., ΠΎΠΊΠ»Π°Π΄, Π΄Π°ΡΠ° ΠΏΠΎΡΡΡΠΏΠ»Π΅Π½ΠΈΡ).
ΠΠΈΠΆΠ΅ ΠΎΠΏΠΈΡΡΠ²Π°ΡΡΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π° Π²ΡΠ±ΠΎΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΡ ΠΏΡΠ½ΠΊΡΠΎΠ² ΠΌΠ΅Π½Ρ.
ΠΠ΅Π½Ρ «Π€ΠΠΠ»
«ΠΠΎΠ²ΡΠΉ ΠΊΠ°ΡΠ°Π»ΠΎΠ³» — Π²ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π² ΡΠ°Π±Π»ΠΈΡΠ΅ ΡΡΠΈΡΠ°Π΅ΡΡΡ. ΠΠ° ΡΠΊΡΠ°Π½Π΅ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ ΡΠ°Π±Π»ΠΈΡΡ.
«Π‘ΠΎΡ ΡΠ°Π½ΠΈΡΡ Π΄Π°Π½Π½ΡΠ΅» — ΠΎΠ±ΡΠ΅ΠΊΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΡΠ΅ΡΡΡ Π² ΡΠ°ΠΉΠ». ΠΠ½ΡΡΡΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π΄Π°Π½Π½ΡΡ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅Π½ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ ΠΌΠ΅ΡΠΎΠ΄.
«ΠΠ°Π³ΡΡΠ·ΠΈΡΡ Π΄Π°Π½Π½ΡΠ΅» — ΠΎΠ±ΡΠ΅ΠΊΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ Π΄Π΅ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΡΠ΅ΡΡΡ ΠΈΠ· ΡΠ°ΠΉΠ»Π°. ΠΠ½ΡΡΡΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π΄Π°Π½Π½ΡΡ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅Π½ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ ΠΌΠ΅ΡΠΎΠ΄.
«ΠΡΡ ΠΎΠ΄» — Π²ΡΠ·ΠΎΠ² ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π° System. exit (0).
ΠΠ΅Π½Ρ «ΠΠΠΠΠΠΠ’Π¬»
«ΠΠΎΠ±Π°Π²ΠΈΡΡ ΡΠ°Π±ΠΎΡΠ½ΠΈΠΊΠ°» — ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΌΠΎΠΆΠ΅Ρ Π²Π²Π΅ΡΡΠΈ Π΄Π°Π½Π½ΡΠ΅ Π΄Π»Ρ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΡΠ°Π±ΠΎΡΠ½ΠΈΠΊΠ°. ΠΡΠΈ Π΄Π°Π½Π½ΡΠ΅ Π·Π°Π½ΠΎΡΡΡΡΡ Π² ΠΎΠ±ΡΠ΅ΠΊΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ , ΠΏΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅ΡΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π² ΡΠ°Π±Π»ΠΈΡΠ΅.
«ΠΠΎΠ±Π°Π²ΠΈΡΡ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΠ°» — Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΌΡ ΠΏΡΠ½ΠΊΡΡ, Π½ΠΎ Ρ ΡΡΡΡΠΎΠΌ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠ΅ΠΉ ΠΊΠ»Π°ΡΡΠ° Manager. ΠΠ»Π°ΡΡ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΠ° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ ΠΎΡ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° ΠΎΠΊΠ½Π° Employee.
«ΠΠ»ΠΎΠ½ΠΈΡΠΎΠ²Π°ΡΡ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠ°» — ΠΏΠΎΠ΄ ΡΡΠΈΠΌ Π½Π΅ΠΎΠ±ΡΡΠ½ΡΠΌ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ ΡΠΊΡΡΠ²Π°Π΅ΡΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠ΅ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π·Π°ΠΏΠΈΡΠΈ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ , ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ ΠΊΠ»ΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ (ΡΠΌ. ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅). ΠΠΎΠΏΠΈΡ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΡΡΡ Π² ΠΊΠΎΠ½Π΅Ρ ΡΠ°Π±Π»ΠΈΡΡ. ΠΡΠ±ΠΎΡ Π·Π°ΠΏΠΈΡΠΈ Π΄Π»Ρ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ Π²ΡΠ΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π³ΠΎ ΠΏΠΎΠ»Ρ Π² ΡΠ°Π±Π»ΠΈΡΠ΅.
Π ΠΈΡΡΠ½ΠΎΠΊ 1: ΠΠ°ΡΠΈΠ°Π½Ρ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π·Π°Π΄Π°Π½ΠΈΡ
Π‘ΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅ ΠΎΡΡΠ΅ΡΠ°
ΠΡΡΠ΅Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ:
ΠΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΡ Π·Π°Π΄Π°ΡΠΈ, ΡΠ΅ΡΠ°Π΅ΠΌΠΎΠΉ ΠΎΡΠ»Π°ΠΆΠ΅Π½Π½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΎΠΉ.
Π ΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΎΡΠ»Π°ΠΆΠ΅Π½Π½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ΅Π΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ² Π²ΡΠ΅Ρ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
ΠΠΈΡΡΠΈΠ½Π³ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠΌΠΈ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠΌΠΈ.
ΠΠΎΠ½ΡΡΠΎΠ»ΡΠ½ΡΠ΅ Π²ΠΎΠΏΡΠΎΡΡ
1. Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ / Π΄Π΅ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ?
2. ΠΠ°ΠΊΠΎΠ΅ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΌΠΎΠ΄Π°Π»ΡΠ½ΡΠΌ?
3. ΠΠΎΡΠ΅ΠΌΡ Π½Π΅ Π²ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ?
4. ΠΠ°ΠΊ ΡΠ·Π½Π°ΡΡ, ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈ ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΊΠ»Π°ΡΡΠ°, Π²ΡΡΡΠΎΠ΅Π½Π½ΠΎΠ³ΠΎ Π² Java?
5. ΠΠΎΡΠ΅ΠΌΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠΎΡ ΡΠ°Π½ΡΠ΅ΡΡΡ ΠΏΡΠΈ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠΈ?
6. Π‘ΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΠ»Π΅ΠΉ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Serializable?
7. Π§ΡΠΎ ΠΏΠΎΠ΄ΡΠ°Π·ΡΠΌΠ΅Π²Π°Π΅ΡΡΡ ΠΏΠΎΠ΄ ΡΠ΅ΡΠΌΠΈΠ½ΠΎΠΌ «ΠΊΠ»ΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ²».
8. ΠΠ°Π·ΠΎΠ²ΠΈΡΠ΅ «ΡΠΎΠ΄ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΡΠ²ΡΠ·ΠΈ» ΠΌΠ΅ΠΆΠ΄Ρ ΠΊΠ»Π°ΡΡΠ°ΠΌΠΈ Menu, MenuItem, MenuBar, MenuShortCut ΠΈ MenuComponent.
9. ΠΠ°Π·ΠΎΠ²ΠΈΡΠ΅ Π΄Π²Π° ΡΠΏΠΎΡΠΎΠ±Π°, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΡ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π³ΠΎΡΠΈΠ·ΠΎΠ½ΡΠ°Π»ΡΠ½ΡΡ ΡΠ΅ΡΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΡΠ½ΠΊΡΠ°ΠΌΠΈ ΠΌΠ΅Π½Ρ.
10. ΠΠ°ΠΊ Π·Π°ΡΡΠ°Π²ΠΈΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡ Π½Π° ΡΠΊΡΠ°Π½Π΅ Π² ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ ΡΠΈΠΌΠ²ΠΎΠ»Ρ `*' Π²ΠΌΠ΅ΡΡΠΎ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ², Π²Π²ΠΎΠ΄ΠΈΠΌΡΡ Ρ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ?
11. Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ «ΠΌΠΎΠ΄Π΅Π»Ρ ΡΠ°Π±Π»ΠΈΡΡ»?
12. ΠΠ΄Π΅ Ρ ΡΠ°Π½ΡΡΡΡ Π΄Π°Π½Π½ΡΠ΅ Π΄Π»Ρ ΡΠ°Π±Π»ΠΈΡΡ?
13. ΠΠ°ΠΊΠΈΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΌΠΎΠ³ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΡΡΠ΅ΠΉΠΊΠΈ ΡΠ°Π±Π»ΠΈΡΡ JTable?
14. ΠΠ°ΠΊ ΡΠ΄Π΅Π»Π°ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠΌ Π²ΡΠ±ΠΎΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΡΠ°Π±Π»ΠΈΡΡ.
ΠΡΠΈΡΠΈΠ°Π»ΡΠ½ΡΠ΅ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΈ:
1. ΠΠ΅Π½ ΠΡΠ½ΠΎΠ»ΡΠ΄, ΠΠΆΠ΅ΠΉΠΌΡ ΠΠΎΡΠ»ΠΈΠ½Π³, ΠΡΠ²ΠΈΠ΄ Π₯ΠΎΠ»ΠΌΡ. Π―Π·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Java™.
2. ΠΡΠΈΡΠΈΠ°Π»ΡΠ½ΡΠΉ ΡΠ°ΠΉΡ Java — http://java.sun.com/ (Π΅ΡΡΡ ΡΠ°Π·Π΄Π΅Π» Π½Π° ΡΡΡΡΠΊΠΎΠΌ ΡΠ·ΡΠΊΠ΅ Ρ ΡΡΠ΅Π±Π½ΠΈΠΊΠΎΠΌ).
3. Java™ 2 SDK, Standard Edition Documentation — http://java.sun.com/products/jdk/1.5/index.html.
4. ΠΠΆΠ΅ΠΉΠΌΡ ΠΠΎΡΠ»ΠΈΠ½Π³, ΠΠΈΠ»Π» ΠΠΆΠΎΠΉ, ΠΠ°ΠΉ Π‘ΡΠΈΠ». Π‘ΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ ΡΠ·ΡΠΊΠ° Java (The Java Language Specification — http://www.javasoft.com/docs/books/jls/). ΠΠ΅ΡΠ΅Π²ΠΎΠ΄ Π½Π° ΡΡΡΡΠΊΠΈΠΉ ΡΠ·ΡΠΊ — http://www.uni-vologda.ac.ru/java/jls/index.html
5. ΠΡΠΈΡΠΈΠ°Π»ΡΠ½ΡΠΉ ΡΠ°ΠΉΡ ΠΏΡΠΎΠ΅ΠΊΡΠ° Eclipse — http://www.eclipse.org/.
ΠΡΡΠ³ΠΎΠ΅:
1. ΠΠΌΠΈΡΡΠΈΠΉ Π Π°ΠΌΠΎΠ΄ΠΈΠ½. ΠΠ°ΡΠΈΠ½Π°Π΅ΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°ΡΡ Π½Π° ΡΠ·ΡΠΊΠ΅ Java.
2. ΠΠΈΠΊΠΎΠ»Π°ΠΉ Π‘ΠΌΠΈΡΠ½ΠΎΠ². Java 2: Π£ΡΠ΅Π±Π½ΠΎΠ΅ ΠΏΠΎΡΠΎΠ±ΠΈΠ΅.
3. ΠΠ°ΡΡΡΠ·ΠΎΠ² Π. Π. ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° ΡΠ·ΡΠΊΠ΅ Java.
4. ΠΡΠ·ΠΎΠ²ΠΈΠΊ Π. Π. ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° Java.
5. ΠΠ»Π΅ΠΊΡΠ΅ΠΉ ΠΠΈΡΠ²ΠΈΠ½ΡΠΊ.
ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅
Π² ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΡΡΠ΅Π΄Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Eclipse — http://lib.juga.ru/article/articleview/174/1/69/.
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ 1. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΌΠ΅Π½Ρ
Π ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ ΡΠΈΠΏΠ° Frame Π·Π°Π»ΠΎΠΆΠ΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ ΠΌΠ΅Π½Ρ (menu bar), ΡΠ°ΡΠΏΠΎΠ»Π°Π³Π°Π΅ΠΌΠΎΠΉ Π½ΠΈΠΆΠ΅ ΡΡΡΠΎΠΊΠΈ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° ΡΠΈΡΡΠ½ΠΊΠ΅ 1. ΠΡΠ° ΡΡΡΠΎΠΊΠ° — ΠΎΠ±ΡΠ΅ΠΊΡ ΠΊΠ»Π°ΡΡΠ° MenuBar.
ΠΡΠ΅, ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ Π΄Π»Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΡΡΡΠΎΠΊΠΈ ΠΌΠ΅Π½Ρ Π² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ΅ Frame — ΡΡΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΊΠ»Π°ΡΡΠ° MenuBar ΠΈ ΠΎΠ±ΡΠ°ΡΠΈΡΡΡΡ ΠΊ ΠΌΠ΅ΡΠΎΠ΄Ρ setMenuBar ():
Frame f = new Frame («ΠΡΠΈΠΌΠ΅Ρ ΠΌΠ΅Π½Ρ»);
MenuBar mb = new MenuBar ();
f.setMenuBar (mb);
ΠΡΠ»ΠΈ ΠΈΠΌΡ mb Π½Π΅ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΡΡ Π΄Π²Π° ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΡ ΠΊ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌ:
f.setMenuBar (new MenuBar ());
Π Π°Π·ΡΠΌΠ΅Π΅ΡΡΡ, ΡΡΡΠΎΠΊΠ° ΠΌΠ΅Π½Ρ Π΅ΡΠ΅ ΠΏΡΡΡΠ° ΠΈ ΠΏΡΠ½ΠΊΡΡ ΠΌΠ΅Π½Ρ Π½Π΅ ΡΠΎΠ·Π΄Π°Π½Ρ.
ΠΠ°ΠΆΠ΄ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΡΡΡΠΎΠΊΠΈ ΠΌΠ΅Π½Ρ — Π²ΡΠΏΠ°Π΄Π°ΡΡΠ΅Π΅ ΠΌΠ΅Π½Ρ (drop-down menu) — ΡΡΠΎ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΊΠ»Π°ΡΡΠ° Menu. Π‘ΠΎΠ·Π΄Π°ΡΡ ΡΡΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΈ Π·Π°Π½Π΅ΡΡΠΈ ΠΈΡ Π² ΡΡΡΠΎΠΊΡ ΠΌΠ΅Π½Ρ Π½ΠΈΡΡΡΡ Π½Π΅ ΡΠ»ΠΎΠΆΠ½Π΅Π΅, ΡΠ΅ΠΌ ΡΠΎΠ·Π΄Π°ΡΡ ΡΡΡΠΎΠΊΡ ΠΌΠ΅Π½Ρ:
Menu mFile = new Menu («Π€Π°ΠΉΠ»»);
mb.add (mFile);
Menu mEdit = new Menu («ΠΡΠ°Π²ΠΊΠ°»);
mb.add (mEdit);
Menu mView = new Menu («ΠΠΈΠ΄»);
mb.add (mView);
Menu mHelp = new Menu («Π‘ΠΏΡΠ°Π²ΠΊΠ°»);
mb.setHelpMenu (mHelp);
ΠΈ Ρ.Π΄. ΠΠ»Π΅ΠΌΠ΅Π½ΡΡ ΡΠ°ΡΠΏΠΎΠ»Π°Π³Π°ΡΡΡΡ ΡΠ»Π΅Π²Π° Π½Π°ΠΏΡΠ°Π²ΠΎ Π² ΠΏΠΎΡΡΠ΄ΠΊΠ΅ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠΉ ΠΊ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌ add (), ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° ΡΠΈΡΡΠ½ΠΊΠ΅ 1. ΠΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ ΠΏΡΠΈΠ½ΡΡΠΎ ΠΌΠ΅Π½Ρ Π‘ΠΏΡΠ°Π²ΠΊΠ° (Help) ΠΏΡΠΈΠΆΠΈΠΌΠ°ΡΡ ΠΊ ΠΏΡΠ°Π²ΠΎΠΌΡ ΠΊΡΠ°Ρ ΡΡΡΠΎΠΊΠΈ ΠΌΠ΅Π½Ρ. ΠΡΠΎ Π΄ΠΎΡΡΠΈΠ³Π°Π΅ΡΡΡ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΊ ΠΌΠ΅ΡΠΎΠ΄Ρ setHelpMenu (), Π½ΠΎ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠ΅Π½Ρ Π‘ΠΏΡΠ°Π²ΠΊΠ° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΎΠΉ.
Π ΠΈΡΡΠ½ΠΎΠΊ 2. Π‘ΠΈΡΡΠ΅ΠΌΠ° ΠΌΠ΅Π½Ρ ΠΠ°ΡΠ΅ΠΌ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ Π²ΡΠΏΠ°Π΄Π°ΡΡΠ΅Π΅ ΠΌΠ΅Π½Ρ, ΡΠΎΠ·Π΄Π°Π²Π°Ρ Π΅Π³ΠΎ ΠΏΡΠ½ΠΊΡΡ. ΠΠ°ΠΆΠ΄ΡΠΉ ΠΏΡΠ½ΠΊΡ ΠΌΠ΅Π½Ρ — ΡΡΠΎ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΊΠ»Π°ΡΡΠ° MenuItem. Π‘Ρ Π΅ΠΌΠ° Π΅Π³ΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ ΠΊ ΠΌΠ΅Π½Ρ ΡΠΎΡΠ½ΠΎ ΡΠ°ΠΊΠ°Ρ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ ΡΠ°ΠΌΠΎΠ³ΠΎ ΠΌΠ΅Π½Ρ:
MenuItem create = new MenuItem («Π‘ΠΎΠ·Π΄Π°ΡΡ»);
mFile.add (create);
MenuItem open = new MenuItem («ΠΡΠΊΡΡΡΡ…»);
mFile.add (open);
ΠΈ Ρ.Π΄. ΠΡΠ½ΠΊΡΡ ΠΌΠ΅Π½Ρ Π±ΡΠ΄ΡΡ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Ρ ΡΠ²Π΅ΡΡ Ρ Π²Π½ΠΈΠ· Π² ΠΏΠΎΡΡΠ΄ΠΊΠ΅ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΡ ΠΊ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌ add ().
Π§Π°ΡΡΠΎ ΠΏΡΠ½ΠΊΡΡ ΠΌΠ΅Π½Ρ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΡΡΡΡ Π² Π³ΡΡΠΏΠΏΡ. ΠΠ΄Π½Π° Π³ΡΡΠΏΠΏΠ° ΠΎΡ Π΄ΡΡΠ³ΠΎΠΉ ΠΎΡΠ΄Π΅Π»ΡΠ΅ΡΡΡ Π³ΠΎΡΠΈΠ·ΠΎΠ½ΡΠ°Π»ΡΠ½ΠΎΠΉ ΡΠ΅ΡΡΠΎΠΉ. ΠΠ° ΡΠΈΡΡΠ½ΠΊΠ΅ 1 ΡΠ΅ΡΡΠ° ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½Π° ΠΌΠ΅ΠΆΠ΄Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ ΠΡΠΊΡΡΡΡ ΠΈ ΠΡΠΏΡΠ°Π²ΠΈΡΡ. ΠΡΠ° ΡΠ΅ΡΡΠ° ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ addSeparator () ΠΊΠ»Π°ΡΡΠ° Menu ΠΈΠ»ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ ΠΊΠ°ΠΊ ΠΏΡΠ½ΠΊΡ ΠΌΠ΅Π½Ρ Ρ Π½Π°Π΄ΠΏΠΈΡΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΠΈΠ΄Π° — Π΄Π΅ΡΠΈΡΠΎΠΌ:
mFile.add (new MenuItem («-«));
ΠΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ, ΡΡΠΎ ΠΊΠ»Π°ΡΡ Menu ΡΠ°ΡΡΠΈΡΡΠ΅Ρ ΠΊΠ»Π°ΡΡ MenuItem, Π° Π½Π΅ Π½Π°ΠΎΠ±ΠΎΡΠΎΡ. ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΌΠ΅Π½Ρ ΡΠ°ΠΌΠΎ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠ½ΠΊΡΠΎΠΌ ΠΌΠ΅Π½Ρ, ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π·Π°Π΄Π°Π²Π°ΡΡ ΠΌΠ΅Π½Ρ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΡΠ½ΠΊΡΠ° Π΄ΡΡΠ³ΠΎΠ³ΠΎ ΠΌΠ΅Π½Ρ, ΡΠ΅ΠΌ ΡΠ°ΠΌΡΠΌ ΠΎΡΠ³Π°Π½ΠΈΠ·ΡΡ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ ΠΏΠΎΠ΄ΠΌΠ΅Π½Ρ:
Menu send = new Menu («ΠΡΠΏΡΠ°Π²ΠΈΡΡ»);
mFile.add (send);
ΠΠ΄Π΅ΡΡ ΠΌΠ΅Π½Ρ send Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΡΡΡ Π² ΠΌΠ΅Π½Ρ mFile ΠΊΠ°ΠΊ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π΅Π³ΠΎ ΠΏΡΠ½ΠΊΡΠΎΠ². ΠΠΎΠ΄ΠΌΠ΅Π½Ρ send Π·Π°ΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΏΡΠ½ΠΊΡΠ°ΠΌΠΈ ΠΌΠ΅Π½Ρ ΠΊΠ°ΠΊ ΠΎΠ±ΡΡΠ½ΠΎΠ΅ ΠΌΠ΅Π½Ρ.
Π§Π°ΡΡΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΌΠ΅Π½Ρ ΡΠΎΠ·Π΄Π°ΡΡΡΡ Π΄Π»Ρ Π²ΡΠ±ΠΎΡΠ° ΠΈΠ· Π½ΠΈΡ ΠΊΠ°ΠΊΠΈΡ -ΡΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ, ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌ checkbox. Π’Π°ΠΊΠΈΠ΅ ΠΏΡΠ½ΠΊΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠ΄Π΅Π»ΠΈΡΡ ΡΠ΅Π»ΡΠΊΠΎΠΌ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΌΡΡΠΈ ΠΈΠ»ΠΈ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ Π²ΡΠ΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ²ΡΠΎΡΠ½ΡΠΌ ΡΠ΅Π»ΡΠΊΠΎΠΌ. ΠΡΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ — ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΊΠ»Π°ΡΡΠ° CheckboxMenuItem:
CheckboxMenuItem disk = new CheckboxMenuItem («ΠΠΈΡΠΊ A:», true);
send.add (disk);
send.add (new CheckboxMenuItem («ΠΡΡ ΠΈΠ²»));
ΠΈ Ρ.Π΄.
ΠΡΠ΅, ΡΡΠΎ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΎΡΡ Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Π½ΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ, ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° ΡΠΈΡΡΠ½ΠΊΠ΅ 1.
ΠΠ½ΠΎΠ³ΠΈΠ΅ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ, Π½ΠΎ Π½Π΅ MS Windows, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΎΡΡΠΎΠ΅Π΄ΠΈΠ½ΡΠ΅ΠΌΡΠ΅ (tear-off) ΠΌΠ΅Π½Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°ΡΡ ΠΏΠΎ ΡΠΊΡΠ°Π½Ρ. ΠΡΠΎ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ Π² ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ΅
Menu (String label, boolean tearOff)
ΠΡΠ»ΠΈ tearoff == true ΠΈ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠ° ΡΠΌΠ΅Π΅Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΎΡΡΠΎΠ΅Π΄ΠΈΠ½ΡΠ΅ΠΌΠΎΠ΅ ΠΌΠ΅Π½Ρ, ΡΠΎ ΠΎΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ·Π΄Π°Π½ΠΎ. Π ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΡΠΎΡ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ ΠΏΡΠΎΡΡΠΎ ΠΈΠ³Π½ΠΎΡΠΈΡΡΠ΅ΡΡΡ.
ΠΠ°ΠΊΠΎΠ½Π΅Ρ, Π½Π°Π΄ΠΎ Π½Π°Π·Π½Π°ΡΠΈΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌ ΠΌΠ΅Π½Ρ. ΠΠΎΠΌΠ°Π½Π΄Ρ ΠΌΠ΅Π½Ρ ΡΠΈΠΏΠ° MenuItem ΠΏΠΎΡΠΎΠΆΠ΄Π°ΡΡ ΡΠΎΠ±ΡΡΠΈΡ ΡΠΈΠΏΠ° ActionEvent, ΠΏΠΎΡΡΠΎΠΌΡ Π½ΡΠΆΠ½ΠΎ ΠΏΡΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡΡ ΠΊ Π½ΠΈΠΌ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΊΠ»Π°ΡΡΠ°-ΡΠ»ΡΡΠ°ΡΠ΅Π»Ρ ΠΊΠ°ΠΊ ΠΊ ΠΎΠ±ΡΡΠ½ΡΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌ, Π·Π°ΠΏΠΈΡΠ°Π² ΡΡΠΎ-ΡΠΎ Π²ΡΠΎΠ΄Π΅
create.addActionListener (new SomeActionEventHandler ())
open.addActionListener (new AnotherActionEventHandler ())
ΠΡΠ½ΠΊΡΡ ΡΠΈΠΏΠ° CheckboxMenuItem ΠΏΠΎΡΠΎΠΆΠ΄Π°ΡΡ ΡΠΎΠ±ΡΡΠΈΡ ΡΠΈΠΏΠ° ItemEvent, ΠΏΠΎΡΡΠΎΠΌΡ Π½Π°Π΄ΠΎ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ ΠΊ ΠΎΠ±ΡΠ΅ΠΊΡΡ-ΡΠ»ΡΡΠ°ΡΠ΅Π»Ρ ΡΡΠΎΠ³ΠΎ ΡΠΎΠ±ΡΡΠΈΡ:
disk.addItemListener (new SomeItemEventHandler ())
ΠΡΠ΅Π½Ρ ΡΠ°ΡΡΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ, Π·Π°ΠΏΠΈΡΠ°Π½Π½ΡΠ΅ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ ΠΌΠ΅Π½Ρ, Π²ΡΠ·ΡΠ²Π°ΡΡΡΡ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅Π»ΡΠΊΠΎΠΌ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΌΡΡΠΈ, Π½ΠΎ ΠΈ «Π³ΠΎΡΡΡΠΈΠΌΠΈ» ΠΊΠ»Π°Π²ΠΈΡΠ°ΠΌΠΈ-Π°ΠΊΡΠ΅Π»Π΅ΡΠ°ΡΠΎΡΠ°ΠΌΠΈ (shortcut), Π΄Π΅ΠΉΡΡΠ²ΡΡΡΠΈΠΌΠΈ ΡΠ°ΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΠΏΡΠΈ Π½Π°ΠΆΠ°ΡΠΎΠΉ ΠΊΠ»Π°Π²ΠΈΡΠ΅. ΠΠ° ΡΠΊΡΠ°Π½Π΅ Π² ΠΏΡΠ½ΠΊΡΠ°Ρ ΠΌΠ΅Π½Ρ, ΠΊΠΎΡΠΎΡΡΠΌ Π½Π°Π·Π½Π°ΡΠ΅Π½Ρ «Π³ΠΎΡΡΡΠΈΠ΅» ΠΊΠ»Π°Π²ΠΈΡΠΈ, ΠΏΠΎΡΠ²Π»ΡΡΡΡΡ ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΊΠΈ Π²ΠΈΠ΄Π° Ctrl+N, Ctrl+O, ΠΊΠ°ΠΊ Π½Π° ΡΠΈΡΡΠ½ΠΊΠ΅ 1. «ΠΠΎΡΡΡΠ°Ρ» ΠΊΠ»Π°Π²ΠΈΡΠ° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ ΠΊΠ»Π°ΡΡΠ° MenuShortcut ΠΈ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ Π² Π΅Π³ΠΎ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ΅ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠΎΠΉ ΠΊΠ»Π°ΡΡΠ° KeyEvent, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ:
MenuShortcut keyCreate = new MenuShortcut (KeyEvent.VK_N);
ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ «Π³ΠΎΡΡΡΠ΅ΠΉ» Π±ΡΠ΄Π΅Ρ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΡ ΠΊΠ»Π°Π²ΠΈΡ +. ΠΠ°ΡΠ΅ΠΌ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ Π² ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ΅ ΠΊΠ»Π°ΡΡΠ° MenuItem:
MenuItem create = new MenuItem («Π‘ΠΎΠ·Π΄Π°ΡΡ», keyCreate);
ΠΠ°ΠΆΠ°ΡΠΈΠ΅ + Π±ΡΠ΄Π΅Ρ Π²ΡΠ·ΡΠ²Π°ΡΡ ΠΎΠΊΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ. ΠΡΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ, ΡΠ°Π·ΡΠΌΠ΅Π΅ΡΡΡ, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ,
MenuItem open = new Menultern («ΠΡΠΊΡΡΡΡ…»,
new — MenuShortcut (KeyEvent.VK_O));
ΠΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π΅ΡΠ΅ Π½Π°ΠΆΠ°ΡΠΈΠ΅ ΠΊΠ»Π°Π²ΠΈΡΠΈ. ΠΠ΅ΠΉΡΡΠ²ΠΈΠ΅ ΠΏΡΠ½ΠΊΡΠ° ΠΌΠ΅Π½Ρ Π±ΡΠ΄Π΅Ρ Π²ΡΠ·ΡΠ²Π°ΡΡΡΡ Π½Π°ΠΆΠ°ΡΠΈΠ΅ΠΌ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΠΈ ΠΊΠ»Π°Π²ΠΈΡ ++, Π΅ΡΠ»ΠΈ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π²ΡΠΎΡΡΠΌ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠΎΠΌ:
MenuShortcut (int key, boolean useShift)
Π‘ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠΌ useShift == true.
ΠΡΠΈΠΌΠ΅Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΌΠ΅Π½Ρ
import java.awt.*;
import java.awt.event.*;
public class MenuScribble extends Frame {
public MenuScribble (String s) {
super (s);
MenuBar mb = new MenuBar ();
setMenuBar (mb);
Menu f = new Menu («Π€Π°ΠΉΠ»»);
Menu h = new Menu («Π‘ΠΏΡΠ°Π²ΠΊΠ°»);
mb.add (f);
mb.add (h);
MenuItem open = new MenuItem («ΠΡΠΊΡΡΡΡ…»,
new MenuShortcut (KeyEvent.VK0));
MenuItem save = new MenuItem («Π‘ΠΎΡ ΡΠ°Π½ΠΈΡΡ»,
new MenuShortcut (KeyEvent.VK_S));
MenuItem saveAs = new Menultera («Π‘ΠΎΡ ΡΠ°Π½ΠΈΡΡ ΠΊΠ°ΠΊ…»);
MenuItem exit = new MenuItem («ΠΡΡ ΠΎΠ΄»,
new MenuShortcut (KeyEvent.VK_Q));
f.add (open);
f.add (save);
f.add (saveAs);
f.addSeparator ();
f.add (exit);
open.addActionListener (new ActionListener () {
public void actionPerformed (ActionEvent e) {
FileDialog fd = new FileDialog (new Frame (),
«ΠΠ°Π³ΡΡΠ·ΠΈΡΡ», FileDialog. LOAD);
fd.setVisible (true);
}
});
saveAs.addActionListener (new ActionListener () {
public void actionPerformed (ActionEvent e) {
FileDialog fd = new FileDialog (new Frame (),
«Π‘ΠΎΡ ΡΠ°Π½ΠΈΡΡ», FileDialog. SAVE);
fd.setVisible (true);
}
});
exit.addActionListener (new ActionListener () {
public void actionPerformed (ActionEvent e) {System.exit (0);}
});
MenuItem about = new MenuItem («Π ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅»);
h.add (about);
about.addActionListener (
// …ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ
);
addWindowListener (new WinClose ());
setVisible (true);
} // ΠΊΠΎΠ½Π΅Ρ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ°
// Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΠΉ ΠΊΠ»Π°ΡΡ — ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΡΠΎΠ±ΡΡΠΈΡ Π·Π°ΠΊΡΡΡΠΈΡ ΠΎΠΊΠ½Π°
class WinClose extends WindowAdapter {
public void windowClosing (WindowEvent e) {System.exit (0);}
}
public static void main (String[] args) {
new MenuScribble («ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Ρ ΠΌΠ΅Π½Ρ»);
}
}
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ 2. ΠΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ Dialog
ΠΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ Dialog — ΡΡΠΎ ΠΎΠΊΠ½ΠΎ ΠΎΠ±ΡΡΠ½ΠΎ ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ°, ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΠΎΠ΅ Π΄Π»Ρ ΠΎΡΠ²Π΅ΡΠ° Π½Π° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠ½ΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠ΅Π³ΠΈΡΡΡΠΈΡΡΠ΅ΡΡΡ Π² ΠΎΠΊΠΎΠ½Π½ΠΎΠΌ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΠ΅ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ, ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°ΡΡ ΠΏΠΎ ΡΠΊΡΠ°Π½Ρ, ΠΌΠ΅Π½ΡΡΡ Π΅Π³ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΡ. ΠΠΎ ΠΎΠΊΠ½ΠΎ ΡΠΈΠΏΠ° Dialog, ΠΊΠ°ΠΊ ΠΈ Π΅Π³ΠΎ ΡΡΠΏΠ΅ΡΠΊΠ»Π°ΡΡ — ΠΎΠΊΠ½ΠΎ ΡΠΈΠΏΠ° Window, — ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΈΠΌΠ΅Π΅Ρ Π²Π»Π°Π΄Π΅Π»ΡΡΠ° owner, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ Π² ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ΅. ΠΠΊΠ½ΠΎ ΡΠΈΠΏΠ° Dialog ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΌΠΎΠ΄Π°Π»ΡΠ½ΡΠΌ (modal), Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π½Π°Π΄ΠΎ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Π²ΡΠ΅ ΠΏΡΠ΅Π΄ΠΏΠΈΡΠ°Π½Π½ΡΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ, ΠΈΠ½Π°ΡΠ΅ ΠΈΠ· ΠΎΠΊΠ½Π° Π½Π΅Π»ΡΠ·Ρ Π±ΡΠ΄Π΅Ρ Π²ΡΠΉΡΠΈ.
Π ΠΊΠ»Π°ΡΡΠ΅ ΡΠ΅ΠΌΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠΎΠ². ΠΠ· Π½ΠΈΡ :
Β· Dialog (Dialog owner) — ΡΠΎΠ·Π΄Π°Π΅Ρ Π½Π΅ΠΌΠΎΠ΄Π°Π»ΡΠ½ΠΎΠ΅ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ Ρ ΠΏΡΡΡΠΎΠΉ ΡΡΡΠΎΠΊΠΎΠΉ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°;
Β· Dialog (Dialog owner, String title) — ΡΠΎΠ·Π΄Π°Π΅Ρ Π½Π΅ΠΌΠΎΠ΄Π°Π»ΡΠ½ΠΎΠ΅ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ ΡΠΎ ΡΡΡΠΎΠΊΠΎΠΉ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° title;
Β· Dialog (Dialog owner, String title, boolean modal) — ΡΠΎΠ·Π΄Π°Π΅Ρ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π±ΡΠ΄Π΅Ρ ΠΌΠΎΠ΄Π°Π»ΡΠ½ΡΠΌ, Π΅ΡΠ»ΠΈ modal == true.
Π§Π΅ΡΡΡΠ΅ Π΄ΡΡΠ³ΠΈΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ° Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½Ρ, Π½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΡΠ΅ ΠΎΠΊΠ½Π°, ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°ΡΠΈΠ΅ ΠΎΠΊΠ½Ρ ΡΠΈΠΏΠ° Frame:
Dialog (Frame owner)
Dialog (Frame owner, String title)
Dialog (Frame owner, boolean modal)
Dialog (Frame owner, String title, boolean modal)
Π‘ΡΠ΅Π΄ΠΈ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΠΊΠ»Π°ΡΡΠ° ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½Ρ ΠΌΠ΅ΡΠΎΠ΄Ρ: isModal (), ΠΏΡΠΎΠ²Π΅ΡΡΡΡΠΈΠΉ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΌΠΎΠ΄Π°Π»ΡΠ½ΠΎΡΡΠΈ, ΠΈ setModal (boolean modal), ΠΌΠ΅Π½ΡΡΡΠΈΠΉ ΡΡΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅.
Π‘ΠΎΠ±ΡΡΠΈΡ
ΠΡΠΎΠΌΠ΅ Π‘ΠΎΠ±ΡΡΠΈΠΉ ΠΊΠ»Π°ΡΡΠ° Component: ComponentEvent, FocusEvent, KeyEvent, MouseEvent, ΠΏΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠ² ΠΎΠΊΠ½Π°, Π΅Π³ΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΠΈ ΠΈΠ»ΠΈ ΡΠ΄Π°Π»Π΅Π½ΠΈΠΈ Ρ ΡΠΊΡΠ°Π½Π°, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠΊΠ°Π·Π° Π½Π° ΡΠΊΡΠ°Π½Π΅ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΡΠΎΠ±ΡΡΠΈΠ΅ WindowEvent.
Π ΠΏΡΠΈΠΌΠ΅ΡΠ΅ 1 ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΠΌΠΎΠ΄Π°Π»ΡΠ½ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ Π΄ΠΎΡΡΡΠΏΠ°, Π² ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²Π²ΠΎΠ΄ΠΈΡΡΡ ΠΈΠΌΡ ΠΈ ΠΏΠ°ΡΠΎΠ»Ρ. ΠΠΎΠΊΠ° Π½Π΅ Π±ΡΠ΄Π΅Ρ ΡΠ΄Π΅Π»Π°Π½ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΉ Π²Π²ΠΎΠ΄, Π΄ΡΡΠ³ΠΈΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ. ΠΠ° ΡΠΈΡΡΠ½ΠΊΠ΅ 2 ΠΏΠΎΠΊΠ°Π·Π°Π½ Π²ΠΈΠ΄ ΡΡΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°.
ΠΡΠΈΠΌΠ΅Ρ 1. ΠΠΎΠ΄Π°Π»ΡΠ½ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ Π΄ΠΎΡΡΡΠΏΠ°
import java.awt.*;
import java.awt.event.*;
class LoginWin extends Dialog {
LoginWin (Frame f, String s) {
super (f, s, true);
setLayout (null);
setFont (new Font («Serif», Font. PLAIN, 14));
Label l1 = new Label («ΠΠ°ΡΠ΅ ΠΈΠΌΡ:», Label. RIGHT);
l1.setBounds (20, 30, 70, 25); add (l1);
Label l2 = new Label («ΠΠ°ΡΠΎΠ»Ρ:», Label. RIGHT);
l2.setBounds (20, 60, 70, 25); add (l2);
TextField tf1 = new TextField (30);
tf1.setBounds (100, 30, 160, 25); add (tf1);
TextField tf2 = new TextField (30);
tf2.setBounds (100, 60, 160, 25); add (tf2);
tf2.setEchoChar ('*');
Button b1 = new Button («ΠΡΠΈΠΌΠ΅Π½ΠΈΡΡ»);
b1.setBounds (50, 100, 100, 30); add (b1);
Button b2 = new Button («ΠΡΠΌΠ΅Π½ΠΈΡΡ»);
b2.setBounds (160, 100, 100, 30); add (b2);
setBounds (50, 50, 300, 150);
}
}
class DialogTest extends Frame {
DialogTest (String s) {
super (s);
setLayout (null);
setSize (200, 100);
setVisible (true);
Dialog d = new LoginWin (this, «ΠΠΊΠ½ΠΎ Π²Ρ ΠΎΠ΄Π°»);
d.setvisible (true);
}
public static void main (String[] args) {
Frame f = new DialogTest («ΠΠΊΠ½ΠΎ-Π²Π»Π°Π΄Π΅Π»Π΅Ρ»);
f.addWindowListener (new WindowAdapter () {
public void windowClosing (WindowEvent ev) {
System.exit (0);
}
});
}
}
Π ΠΈΡΡΠ½ΠΎΠΊ 2. ΠΠΎΠ΄Π°Π»ΡΠ½ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ Π΄ΠΎΡΡΡΠΏΠ°
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ 3. ΠΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ FileDialog.
ΠΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ FileDialog — ΡΡΠΎ ΠΌΠΎΠ΄Π°Π»ΡΠ½ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ Ρ Π²Π»Π°Π΄Π΅Π»ΡΡΠ΅ΠΌ ΡΠΈΠΏΠ° Frame, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ΅Π΅ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ Π²ΡΠ±ΠΎΡΠ° ΡΠ°ΠΉΠ»Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ Π΄Π»Ρ ΠΎΡΠΊΡΡΡΠΈΡ (ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ° LOAD) ΠΈΠ»ΠΈ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ (ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ° SAVE). ΠΠΊΠ½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠΎΠ·Π΄Π°ΡΡΡΡ ΠΈ ΠΏΠΎΠΌΠ΅ΡΠ°ΡΡΡΡ Π² ΠΎΠ±ΡΠ΅ΠΊΡ ΠΊΠ»Π°ΡΡΠ° FileDialog Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ.
Π ΠΊΠ»Π°ΡΡΠ΅ ΡΡΠΈ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ°:
Β· FileDialog (Frame owner) — ΡΠΎΠ·Π΄Π°Π΅Ρ ΠΎΠΊΠ½ΠΎ Ρ ΠΏΡΡΡΡΠΌ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠΌ Π΄Π»Ρ ΠΎΡΠΊΡΡΡΠΈΡ ΡΠ°ΠΉΠ»Π°;
Β· FileDialog (Frame owner, String title) — ΡΠΎΠ·Π΄Π°Π΅Ρ ΠΎΠΊΠ½ΠΎ ΠΎΡΠΊΡΡΡΠΈΡ ΡΠ°ΠΉΠ»Π° Ρ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠΌ title;
Β· FileDialog (Frame owner, String title, int mode) — ΡΠΎΠ·Π΄Π°Π΅Ρ ΠΎΠΊΠ½ΠΎ ΠΎΡΠΊΡΡΡΠΈΡ ΠΈΠ»ΠΈ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°; Π°ΡΠ³ΡΠΌΠ΅Π½Ρ mode ΠΈΠΌΠ΅Π΅Ρ Π΄Π²Π° Π·Π½Π°ΡΠ΅Π½ΠΈΡ: FileDialog. LOAD ΠΈ FileDialog.SAVE.
ΠΠ΅ΡΠΎΠ΄Ρ ΠΊΠ»Π°ΡΡΠ° getDirectory () ΠΈ getFile () Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π²ΡΠ±ΡΠ°Π½Π½ΡΠΉ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ ΠΈ ΠΈΠΌΡ ΡΠ°ΠΉΠ»Π° Π² Π²ΠΈΠ΄Π΅ ΡΡΡΠΎΠΊΠΈ String. ΠΠ°Π³ΡΡΠ·ΠΊΡ ΠΈΠ»ΠΈ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»Π° Π·Π°ΡΠ΅ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌΠΈ ΠΊΠ»Π°ΡΡΠΎΠ² Π²Π²ΠΎΠ΄Π° / Π²ΡΠ²ΠΎΠ΄Π°.
ΠΠΎΠΆΠ½ΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π½Π°ΡΠ°Π»ΡΠ½ΡΠΉ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ Π΄Π»Ρ ΠΏΠΎΠΈΡΠΊΠ° ΡΠ°ΠΉΠ»Π° ΠΈ ΠΈΠΌΡ ΡΠ°ΠΉΠ»Π° ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌΠΈ setDirectory (String dir) ΠΈ setFile (String fileName).
ΠΠΌΠ΅ΡΡΠΎ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΈΠΌΠ΅Π½ΠΈ ΡΠ°ΠΉΠ»Π° fileName ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΡΠ°Π±Π»ΠΎΠ½, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, *.java (ΠΏΠ΅ΡΠ²ΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ — Π·Π²Π΅Π·Π΄ΠΎΡΠΊΠ° ΠΈ ΡΠΎΡΠΊΠ°), ΡΠΎΠ³Π΄Π° Π² ΠΎΠΊΠ½Π΅ Π±ΡΠ΄ΡΡ Π²ΠΈΠ΄Π½Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΈΠΌΠ΅Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ², Π·Π°ΠΊΠ°Π½ΡΠΈΠ²Π°ΡΡΠΈΠ΅ΡΡ ΡΠΎΡΠΊΠΎΠΉ ΠΈ ΡΠ»ΠΎΠ²ΠΎΠΌ java.
ΠΠ΅ΡΠΎΠ΄ setFilenameFilter (FilenameFilter filter) ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ ΡΠ°Π±Π»ΠΎΠ½ filter Π΄Π»Ρ ΠΈΠΌΠ΅Π½ΠΈ Π²ΡΠ±ΠΈΡΠ°Π΅ΠΌΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°. Π ΠΎΠΊΠ½Π΅ Π±ΡΠ΄ΡΡ Π²ΠΈΠ΄Π½Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΈΠΌΠ΅Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ², ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠΈΠ΅ ΠΏΠΎΠ΄ ΡΠ°Π±Π»ΠΎΠ½. ΠΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ Π½Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Π² SUN JDK Π½Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅ MS Windows.
Π‘ΠΎΠ±ΡΡΠΈΡ
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ±ΡΡΠΈΠΉ ΠΊΠ»Π°ΡΡΠ° Component: ComponentEvent, FocusEvent, KeyEvent, MouseEvent, ΠΏΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠ² ΠΎΠΊΠ½Π°, Π΅Π³ΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΠΈ ΠΈΠ»ΠΈ ΡΠ΄Π°Π»Π΅Π½ΠΈΠΈ Ρ ΡΠΊΡΠ°Π½Π°, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠΊΠ°Π·Π° Π½Π° ΡΠΊΡΠ°Π½Π΅ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΡΠΎΠ±ΡΡΠΈΠ΅ WindowEvent.
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ 4. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠ°Π±Π»ΠΈΡ
ΠΠ»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ°Π±Π»ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ JTable, ΠΎΠ±Π»Π°Π΄Π°ΡΡΠΈΠΉ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΠ»ΠΎΠΆΠ½ΠΎΠΉ ΡΡΡΡΠΊΡΡΡΠΎΠΉ, ΠΊΠΎΡΠΎΡΠ°Ρ, Π²ΠΏΡΠΎΡΠ΅ΠΌ, ΡΠΊΡΡΡΠ° ΠΎΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Π»ΠΈΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΡΡΠΎΠΊ ΠΊΠΎΠ΄Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΏΠΎΠ»Π½ΠΎΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΡ ΡΠ°Π±Π»ΠΈΡΡ.
ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ JTable Π½Π΅ Ρ ΡΠ°Π½ΠΈΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠΌ Π² ΡΠ΅Π±Π΅, Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Ρ.Π½. ΠΌΠΎΠ΄Π΅Π»Ρ ΡΠ°Π±Π»ΠΈΡΡ. ΠΠ»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅Π½ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΉ ΠΊΠ»Π°ΡΡ AbstractTableModel, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ:
public int getRowCount (); - Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΡΡΠΎΠΊ Π² ΡΠ°Π±Π»ΠΈΡΠ΅.
public int getColumnCount (); - Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΡΠΎΠ»Π±ΡΠΎΠ².
public object getValueAt (int row, int column); - Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΡΡΠ΅ΠΉΠΊΠΈ Π² ΡΡΠ΄Ρ row ΠΈ ΡΡΠΎΠ»Π±ΡΠ΅ column.
ΠΠ°ΠΊ Π²ΠΈΠ΄Π½ΠΎ ΠΈΠ· ΠΏΡΠΎΡΠΎΡΠΈΠΏΠ° ΠΌΠ΅ΡΠΎΠ΄Π°, Π² ΡΡΠ΅ΠΉΠΊΠ΅ ΡΠ°Π±Π»ΠΈΡΡ ΠΌΠΎΠΆΠ΅Ρ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡΡ Π»ΡΠ±ΠΎΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ, Π² ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, ΡΡΡΠΎΠΊΠ° ΠΈΠ»ΠΈ ΠΊΠ°ΡΡΠΈΠ½ΠΊΠ°. ΠΠ»Ρ ΠΏΠΎΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΡΠΈΡΠ»Π° Π² ΡΡΠ΅ΠΉΠΊΡ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ ΡΠΈΡΠ»ΠΎΠ²ΠΎΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ:
return new Integer (100);
ΠΠ»Ρ Π·Π°Π΄Π°Π½ΠΈΡ Π½Π°Π·Π²Π°Π½ΠΈΠΉ ΡΡΠΎΠ»Π±ΡΠ°ΠΌ ΡΠ°Π±Π»ΠΈΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΌΠ΅ΡΠΎΠ΄:
public int getColumnName (int c);
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ Ρ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° Π½ΠΎΠΌΠ΅Ρ ΡΡΠΎΠ»Π±ΡΠ°. ΠΠ½ΡΡΡΠΈ Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ switch-case (ΠΈΠ»ΠΈ if-else), Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΠ°Ρ Π½Π° ΠΊΠ°ΠΆΠ΄ΡΠΉ Π½ΠΎΠΌΠ΅Ρ Ρ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ.
public String getColumnName (int c) {
if (c == 0)
return «Π€.Π.Π.»;
else if (c == 1)
return «ΠΠΎΠ»ΠΆΠ½ΠΎΡΡΡ»;
else if (c==2)
return «ΠΠ°ΡΠΏΠ»Π°ΡΠ°»;
else if (c == 3)
return «ΠΠΎΠ΄»;
else if (c == 4)
return «ΠΠ΅ΡΡΡ»;
else if (c == 5)
return «ΠΠ΅Π½Ρ»;
else
return null;
}
Π’Π°ΠΊΠΆΠ΅ Π² Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΡΠ°Π±Π»ΠΈΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Ρ ΡΠ°Π½ΠΈΡΡ Π΄Π°Π½Π½ΡΠ΅ Π² ΡΠΎΠΌ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠΌ Π²ΠΈΠ΄Π΅ ΠΈ ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅ΡΡ ΠΌΠ΅ΡΠΎΠ΄Ρ Π΄Π»Ρ ΠΈΡ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ. ΠΠΎΡΠ»Π΅ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ Π΄Π°Π½Π½ΡΡ Π½ΡΠΆΠ½ΠΎ ΡΠΎΠΎΠ±ΡΠΈΡΡ JTable ΠΎ ΡΠΎΠΌ, ΡΡΠΎ ΡΡΡΡΠΊΡΡΡΠ° ΡΠ°Π±Π»ΠΈΡΡ / ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΡΡΠΎΠΊ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΈΡΡ, Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΠ°ΠΊΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΊΠ»Π°ΡΡΠ° AbstractTableModel, ΠΊΠ°ΠΊ fireRowsInserted ΠΈ ΠΏΡ.
ΠΠ°Π»Π΅Π΅ ΡΠΎΠ·Π΄Π°ΡΡΡΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΠΊΠ»Π°ΡΡΠ° JTable, Π² ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ΅ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΡΠ°Π±Π»ΠΈΡΡ:
JTable empTable = new JTable (myTableModel);
ΠΠΎΠ΄Π΅Π»Ρ ΡΠ°Π±Π»ΠΈΡΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠΊΠ°Π·Π°Π½Π° ΠΈ ΠΏΠΎΠ·ΠΆΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Π° setModel.
Π, Π½Π°ΠΊΠΎΠ½Π΅Ρ, Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΠΎΠ»ΠΎΡ ΠΏΡΠΎΠΊΡΡΡΠΊΠΈ Π½Π° ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ΅ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΌ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ — ΠΏΠΎΠΌΠ΅ΡΡΠΈΠΌ ΡΠ°Π±Π»ΠΈΡΡ Π½Π° ΠΏΠ°Π½Π΅Π»Ρ ΡΠΈΠΏΠ° JScrollPane:
JScrollPane pane= new JScrollPane (empTable);
ΠΡΡΠ°Π»ΠΎΡΡ ΡΠ°Π·ΠΌΠ΅ΡΡΠΈΡΡ Π³ΠΎΡΠΎΠ²ΡΡ ΠΏΠ°Π½Π΅Π»Ρ Π½Π° ΡΠΎΡΠΌΠ΅. ΠΠΎΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΊΠΎΠ΄ΠΎΠΌ:
this.getContentPane ().add (pane);
Π ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ Π²ΡΠ΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅ ΡΠ°Π±Π»ΠΈΡΡ. ΠΠ»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ:
1. ΠΠ³ΡΠ°Π½ΠΈΡΠΈΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π²ΡΠ±ΠΎΡΠΎΠΌ ΠΎΠ΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°Π΄Π°ΡΡ ΡΠ΅ΠΆΠΈΠΌ Π²ΡΠ±ΠΎΡΠ° ΡΡΡΠΎΠΊ ΡΠ°Π±Π»ΠΈΡΡ.
table.getSelectionModel ().setSelectionMode (mode)
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ mode ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΡΡΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡ:
0 — Π²ΡΠ±ΠΈΡΠ°Π΅ΡΡΡ ΠΎΠ΄Π½Π° ΡΡΡΠΎΠΊΠ°.
1 — Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΌΠ΅ΠΆΠ½ΡΡ ΡΡΡΠΎΠΊ.
2 — Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΡΡ ΡΡΡΠΎΠΊ.
2. ΠΠ»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π½ΠΎΠΌΠ΅ΡΠ° Π²ΡΠ±ΡΠ°Π½Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ getSelectedRow ().
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: ΠΠ»Ρ ΡΠ΅ΠΆΠΈΠΌΠ° Π²ΡΠ±ΠΎΡΠ° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΡΡΠΎΠΊ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΌΠ΅ΡΠΎΠ΄ getSelectedRows (), Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΠΈΠΉ ΠΌΠ°ΡΡΠΈΠ² int[] Π½ΠΎΠΌΠ΅ΡΠΎΠ² Π²ΡΠ΄Π΅Π»Π΅Π½Π½ΡΡ ΡΡΡΠΎΠΊ.
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ 5. Π‘Π΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ²
ΠΠ΅ΡΠΎΠ΄Ρ ΠΊΠ»Π°ΡΡΠΎΠ² ObjectInputStream ΠΈ ObjectOutputStream ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΠΏΡΠΎΡΠΈΡΠ°ΡΡ ΠΈΠ· Π²Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π±Π°ΠΉΡΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΠ° ΠΈΠ»ΠΈ Π·Π°ΠΏΠΈΡΠ°ΡΡ Π² Π²ΡΡ ΠΎΠ΄Π½ΠΎΠΉ Π±Π°ΠΉΡΠΎΠ²ΡΠΉ ΠΏΠΎΡΠΎΠΊ Π΄Π°Π½Π½ΡΠ΅ ΡΠ»ΠΎΠΆΠ½ΡΡ ΡΠΈΠΏΠΎΠ² — ΠΎΠ±ΡΠ΅ΠΊΡΡ, ΠΌΠ°ΡΡΠΈΠ²Ρ, ΡΡΡΠΎΠΊΠΈ — ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ ΡΠΎΠΌΡ, ΠΊΠ°ΠΊ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΊΠ»Π°ΡΡΠΎΠ² DataInputStream ΠΈ DataOutputStream ΡΠΈΡΠ°ΡΡ ΠΈ Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΏΡΠΎΡΡΡΡ ΡΠΈΠΏΠΎΠ².
Π‘Ρ ΠΎΠ΄ΡΡΠ²ΠΎ ΡΡΠΈΠ»ΠΈΠ²Π°Π΅ΡΡΡ ΡΠ΅ΠΌ, Π§ΡΠΎ ΠΊΠ»Π°ΡΡΡ Objectxxx ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΊΠ°ΠΊ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΠΉ, ΡΠ°ΠΊ ΠΈ Π·Π°ΠΏΠΈΡΠΈ ΠΏΡΠΎΡΡΡΡ ΡΠΈΠΏΠΎΠ². ΠΠΏΡΠΎΡΠ΅ΠΌ, ΡΡΠΈ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Ρ Π½Π΅ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°Ρ , Π° Π΄Π»Ρ Π·Π°ΠΏΠΈΡΠΈ / ΡΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ»Π΅ΠΉ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ².
ΠΡΠΎΡΠ΅ΡΡ Π·Π°ΠΏΠΈΡΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π² Π²ΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠΎΡΠΎΠΊ ΠΏΠΎΠ»ΡΡΠΈΠ» Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ (serialization), Π° ΡΡΠ΅Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΈΠ· Π²Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΠ° ΠΈ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Π΅Π³ΠΎ Π² ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ — Π΄Π΅ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ (deserialization).
Π‘Π΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π½Π°ΡΡΡΠ°Π΅Ρ Π΅Π³ΠΎ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π·Π»ΠΎΠ²ΡΠ΅Π΄Π½ΡΠΉ ΠΏΡΠΎΡΠ΅ΡΡ ΠΌΠΎΠΆΠ΅Ρ ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ Π² ΠΌΠ°ΡΡΠΈΠ², ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΠ°ΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΌΠ°ΡΡΠΈΠ²Π°, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡΠΈΠ΅ private_ΠΏΠΎΠ»Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ°, ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ² ΡΠ΅Π±Π΅, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΠ΅ΠΊΡΠ΅ΡΠ½ΠΎΠΌΡ ΡΠ°ΠΉΠ»Ρ, Π° Π·Π°ΡΠ΅ΠΌ Π΄Π΅ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½ΡΠΌΠΈ ΠΏΠΎΠ»ΡΠΌΠΈ ΠΈ ΡΠΎΠ²Π΅ΡΡΠΈΡΡ Ρ Π½ΠΈΠΌ Π½Π΅Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ.
ΠΠΎΡΡΠΎΠΌΡ ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄Π²Π΅ΡΠ³Π½ΡΡΡ Π½Π΅ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ, Π° ΡΠΎΠ»ΡΠΊΠΎ ΡΠΎΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Serializable. ΠΡΠΎΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π½Π΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π½ΠΈ ΠΏΠΎΠ»Π΅ΠΉ, Π½ΠΈ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ². Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ Π² Π½Π΅ΠΌ Π½Π΅ΡΠ΅Π³ΠΎ. ΠΠΎ ΡΡΡΠΈ Π΄Π΅Π»Π° Π·Π°ΠΏΠΈΡΡ
class A implements Serializable{…}
ΡΡΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΠΌΠ΅ΡΠΊΠ°, ΡΠ°Π·ΡΠ΅ΡΠ°ΡΡΠ°Ρ ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΊΠ»Π°ΡΡΠ° Π.
Π Java ΠΏΡΠΎΡΠ΅ΡΡ ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°Π½. ΠΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΊΠ»Π°ΡΡΠ° ObjectOutputStream, ΡΠ²ΡΠ·Π°Π² Π΅Π³ΠΎ Ρ Π²ΡΡ ΠΎΠ΄Π½ΡΠΌ ΠΏΠΎΡΠΎΠΊΠΎΠΌ, ΠΈ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡ Π² ΡΡΠΎΡ ΠΏΠΎΡΠΎΠΊ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ writeObject ():
MyClass me = new MyClass («abc», -12, 5.67e5);
int[] arr = {10, 20, 30};
ObjectOutputStream oos = new ObjectOutputStream (
new FileOutputStream («myobjects.ser»));
oos.writeObject (me);
oos.writeObject (arr);
oos.writeObject («Some string»);
oos.writeObject (new Date ());
oos.flush ();
Π Π²ΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠΎΡΠΎΠΊ Π²ΡΠ²ΠΎΠ΄ΡΡΡΡ Π²ΡΠ΅ Π½Π΅ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΏΠΎΠ»Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ°, Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΠΏΡΠ°Π² Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Π½ΠΈΠΌ, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΎ ΠΊΠ»Π°ΡΡΠ΅ ΡΡΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ°, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ Π΄Π»Ρ Π΅Π³ΠΎ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠ³ΠΎ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΠΏΡΠΈ Π΄Π΅ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ. ΠΠ°ΠΉΡ-ΠΊΠΎΠ΄Ρ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΠΊΠ»Π°ΡΡΠ° Π½Π΅ ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΡΡΡΡΡ.
ΠΡΠ»ΠΈ Π² ΠΎΠ±ΡΠ΅ΠΊΡΠ΅ ΠΏΡΠΈΡΡΡΡΡΠ²ΡΡΡ ΡΡΡΠ»ΠΊΠΈ Π½Π° Π΄ΡΡΠ³ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ, ΡΠΎ ΠΎΠ½ΠΈ ΡΠΎΠΆΠ΅ ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΡΡΡΡΡ, Π° Π² Π½ΠΈΡ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΡΡΠ»ΠΊΠΈ Π½Π° Π΄ΡΡΠ³ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠΏΡΡΡ-ΡΠ°ΠΊΠΈ ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΡΡΡΡΡ, ΠΈ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ ΡΠ΅Π»ΠΎΠ΅ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΏΡΠΈΡΡΠ΄Π»ΠΈΠ²ΠΎ ΡΠ²ΡΠ·Π°Π½Π½ΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΎΠ±ΠΎΠΉ ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΡΠ΅ΠΌΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ². ΠΠ΅ΡΠΎΠ΄ writeObject () ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π΅Ρ Π΄Π²Π΅ ΡΡΡΠ»ΠΊΠΈ Π½Π° ΠΎΠ΄ΠΈΠ½ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΈ Π²ΡΠ²ΠΎΠ΄ΠΈΡ Π΅Π³ΠΎ Π² Π²ΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠΎΡΠΎΠΊ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π·. Π ΡΠΎΠΌΡ ΠΆΠ΅, ΠΎΠ½ ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π΅Ρ ΡΡΡΠ»ΠΊΠΈ, Π·Π°ΠΌΠΊΠ½ΡΡΡΠ΅ Π² ΠΊΠΎΠ»ΡΡΠΎ, ΠΈ ΠΈΠ·Π±Π΅Π³Π°Π΅Ρ Π·Π°ΡΠΈΠΊΠ»ΠΈΠ²Π°Π½ΠΈΡ.
ΠΡΠ΅ ΠΊΠ»Π°ΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², Π²Ρ ΠΎΠ΄ΡΡΠΈΡ Π² ΡΠ°ΠΊΠΎΠ΅ ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΡΠ΅ΠΌΠΎΠ΅ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ, Π° ΡΠ°ΠΊΠΆΠ΅ Π²ΡΠ΅ ΠΈΡ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠ΅ ΠΊΠ»Π°ΡΡΡ, Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Serializable, Π² ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π±ΡΠ΄Π΅Ρ Π²ΡΠ±ΡΠΎΡΠ΅Π½ΠΎ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΊΠ»Π°ΡΡΠ° NotSerializableException ΠΈ ΠΏΡΠΎΡΠ΅ΡΡ ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΡΠ΅ΡΠ²Π΅ΡΡΡ. ΠΠ½ΠΎΠ³ΠΈΠ΅ ΠΊΠ»Π°ΡΡΡ J2SDK ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡ ΡΡΠΎΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ. Π£ΡΡΠΈΡΠ΅ ΡΠ°ΠΊΠΆΠ΅, ΡΡΠΎ Π²ΡΠ΅ ΠΏΠΎΡΠΎΠΌΠΊΠΈ ΡΠ°ΠΊΠΈΡ ΠΊΠ»Π°ΡΡΠΎΠ² Π½Π°ΡΠ»Π΅Π΄ΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ (ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ?). ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠ»Π°ΡΡ java.awt. Component ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Serializable, Π·Π½Π°ΡΠΈΡ, Π²ΡΠ΅ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ. ΠΠ΅ ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡ ΡΡΠΎΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΎΠ±ΡΡΠ½ΠΎ ΠΊΠ»Π°ΡΡΡ, ΡΠ΅ΡΠ½ΠΎ ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, java.awt. Toolkit. Π‘ΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠΎΠ² ΡΠ°ΠΊΠΈΡ ΠΊΠ»Π°ΡΡΠΎΠ² Π½Π΅Ρ ΡΠΌΡΡΠ»Π° ΡΠΎΡ ΡΠ°Π½ΡΡΡ ΠΈΠ»ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ ΠΏΠΎ ΡΠ΅ΡΠΈ. ΠΠ΅ ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Serializable ΠΈ ΠΊΠ»Π°ΡΡΡ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠ΅ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠ΅ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ Java «Π΄Π»Ρ ΡΠ»ΡΠΆΠ΅Π±Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ».
ΠΠ΅ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΡΠ°ΠΊ ΠΆΠ΅ ΠΏΡΠΎΡΡΠΎ, ΠΊΠ°ΠΊ ΠΈ ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ:
ObjectlnputStream ois = new ObjectInputStream (
new FilelnputStream («myobjects.ser»));
MyClass mcl = (MyClass) ois. readObject ();
int[] a = (int[]) ois. readObject ();
String s = (String) ois. readObject ();
Date d = (Date) ois. readObject ();
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ 6. ΠΠ»ΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ
ΠΠΎΠ΄ ΠΊΠ»ΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΏΠΎΠ΄ΡΠ°Π·ΡΠΌΠ΅Π²Π°ΡΡ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π΅Π³ΠΎ ΡΠΎΡΠ½ΠΎΠΉ ΠΊΠΎΠΏΠΈΠΈ, Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎΠΉ ΠΎΡ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»Π°. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΠΎΠ±ΡΠ΅ΠΊΡΠ°-ΠΊΠ»ΠΎΠ½Π° Π½Π΅ Π²Π»ΠΈΡΠ΅Ρ Π½Π° ΠΎΡΠΈΠ³ΠΈΠ½Π°Π», Π²Π΅ΡΠ½ΠΎ ΠΈ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ΅: ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»Π° Π½Π΅ Π²Π»ΠΈΡΠ΅Ρ Π½Π° ΠΊΠ»ΠΎΠ½.
Π‘Π΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ — ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² Π΄Π»Ρ ΠΊΠ»ΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ². Π‘ΡΡΡ Π΅Π³ΠΎ ΡΠΎΡΡΠΎΠΈΡ Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ: Π·Π°ΠΏΠΈΡΠ°ΡΡ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ Π² ΠΏΠΎΡΠΎΠΊ Π²ΡΠ²ΠΎΠ΄Π°, Π° Π·Π°ΡΠ΅ΠΌ ΡΡΠΈΡΠ°ΡΡ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ. Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ Π½ΠΎΠ²ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ, ΠΏΠΎ ΡΠ²ΠΎΠΉΡΡΠ²Π°ΠΌ ΠΈΠ΄Π΅Π½ΡΠΈΡΠ½ΡΠΉ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»Ρ.
ΠΠ΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ, ΡΡΠΎ Π΄Π°Π½Π½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΌ Π² ΡΠΈΠ»Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΠΏΡΠΈΡΠΈΠ½:
— ΠΎΠ±ΡΠ΅ΠΊΡ, ΠΊΠ»ΠΎΠ½ΠΈΡΡΠ΅ΠΌΡΠΉ ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΡΠ΅ΠΌΡΠΌ, ΡΡΠΎ ΡΠΏΡΠ°Π²Π΅Π΄Π»ΠΈΠ²ΠΎ Π΄Π°Π»Π΅ΠΊΠΎ Π½Π΅ Π΄Π»Ρ Π²ΡΠ΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ².
— ΠΊΠ»ΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅ ΠΎΠ±ΡΠ½ΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π° ΠΊΠ»ΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
ΠΠΏΡΠΎΡΠ΅ΠΌ, Π² ΡΠ»ΡΡΠ°ΡΡ ΠΊΠΎΠ³Π΄Π° ΡΠΊΠΎΡΠΎΡΡΡ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΊΠΎΠ΄Π° ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π²Π°ΠΆΠ½Π΅Π΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΡΠΊΠΎΡΠΎΡΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ, ΡΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ ΠΎΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΊΠ°ΠΊ Π½Π΅Π»ΡΠ·Ρ ΠΊΡΡΠ°ΡΠΈ.
ΠΠ»Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΌΠ΅ΡΠΎΠ΄Π° ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΡΡ Π΅ΠΌΡ.
— Π‘ΠΎΠ·Π΄Π°ΡΡΡΡ ΠΊΠ»Π°ΡΡ SerialCloneable, ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠΈΡΡΡΡΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ Cloneable ΠΈ Serializable.
— ΠΠ»Π°ΡΡ SerialCloneable ΠΈΠΌΠ΅Π΅Ρ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ clone (), Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ°. ΠΠ΅ΡΠΎΠ΄ clone () Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΈΠ· Π²Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΠ°.
— ΠΠ»Π°ΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ ΠΊΠ»ΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ, Π½Π°ΡΠ»Π΅Π΄ΡΠ΅ΡΡΡ ΠΎΡ ΠΊΠ»Π°ΡΡΠ° SerialCloneable.
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ 7. ΠΡΠΈΠΌΠ΅Ρ ΠΊΠΎΠ΄Π° ΠΊΠ»Π°ΡΡΠΎΠ² Employee ΠΈ Manager
public class Manager extends Employee {
private Employee secretary;
public Manager (String n, double s, int year, int month, int day) {
super (n, s, year, month, day);
secretary = null;
}
public void setSecretary (Employee s) {
secretary = s;
}
}
public class Employee implements Serializable {
private String name;
private double salary;
private Date hireDay;
public Employee (){};
public Employee (String n, double s, int year, int month, int day) {
name = n;
salary = s;
GregorianCalendar calendar = new GregorianCalendar (year, month1, day);
hireDay = calendar. getTime ();
}
public String getName () {
return name;
}
public double getSalary () {
return salary;
}
public Date getHireDay () {
return hireDay;
}
public void raiseSalary (double byPercent) {
double raise=salary*byPercent/100;
salary+=raise;
}
}