TextArea ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²Π²ΠΎΠ΄ΠΈΡΡ ΠΈ ΠΏΡΠΎΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ ΠΌΠ½ΠΎΠ³ΠΎΡΡΡΠΎΡΠ½ΡΠΉ ΡΠ΅ΠΊΡΡ. Π ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΡΡΠΎΠΊ ΠΈ ΡΡΠΎΠ»Π±ΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΡΠ°Π·ΠΌΠ΅Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° (Π²ΡΡΠΈΡΠ»ΡΠ΅ΡΡΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΡΠ΅Π΄Π½Π΅ΠΉ ΡΠΈΡΠΈΠ½Ρ ΡΠΈΠΌΠ²ΠΎΠ»Π°). ΠΡΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π½Π΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠ²Π°ΡΡ Π΄Π»ΠΈΠ½Ρ Π²Π²ΠΎΠ΄ΠΈΠΌΠΎΠ³ΠΎ ΡΠ΅ΠΊΡΡΠ° β ΠΏΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΏΠΎΡΠ²Π»ΡΡΡΡΡ ΠΏΠΎΠ»ΠΎΡΡ ΠΏΡΠΎΠΊΡΡΡΠΊΠΈ:
ΠΠ»Π°ΡΡ Scrollbar
ΠΠ»Π°ΡΡ Scrollbar ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΠΏΠΎΠ»ΠΎΡΠ°ΠΌΠΈ ΠΏΡΠΎΠΊΡΡΡΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΡ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ ΠΎΡ Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠΉ Π΄ΠΎ ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠΉ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ. ΠΠΎΠ»ΠΎΡΠ° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Π° Π³ΠΎΡΠΈΠ·ΠΎΠ½ΡΠ°Π»ΡΠ½ΠΎ ΠΈΠ»ΠΈ Π²Π΅ΡΡΠΈΠΊΠ°Π»ΡΠ½ΠΎ. Π‘ΡΡΠ΅Π»ΠΊΠΈ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΈΠ· Π΅Π΅ ΠΊΠΎΠ½ΡΠΎΠ² ΡΠ»ΡΠΆΠ°Ρ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΡ "Π½Π° ΠΎΠ΄ΠΈΠ½ ΡΠ°Π³" Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅ΠΌ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠΈ. "ΠΠ·ΡΠ²ΡΠΈΡΡ" ΠΊΡΡΡΠΎΡΠΎΠΌ ΠΌΡΡΠΈ Π·Π° Π±Π΅Π³ΡΠ½ΠΎΠΊ, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΡΠΈΡΡ Π΅Π³ΠΎ Π² Π»ΡΠ±ΡΡ ΠΏΠΎΠ·ΠΈΡΠΈΡ. Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠ»ΠΈΠΊΠΎΠ² ΠΌΡΡΠΈ ΠΏΠΎ ΠΏΠΎΠ»ΠΎΡΠ΅ ΠΏΡΠΎΠΊΡΡΡΠΊΠΈ, Π½ΠΎ Π²Π½Π΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π±Π΅Π³ΡΠ½ΠΊΠ°, ΠΌΠΎΠΆΠ½ΠΎ Π΄Π΅Π»Π°ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ "Π½Π° ΡΡΡΠ°Π½ΠΈΡΡ" Π²Π²Π΅ΡΡ ΠΈΠ»ΠΈ Π²Π½ΠΈΠ·. ΠΡΠ΅ ΡΡΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ ΠΎΡΠΎΡΠΎ Π·Π½Π°ΠΊΠΎΠΌΡ ΠΏΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°ΠΌ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Windows. ΠΠ½ΠΈ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠΌ Scrollbar.
ΠΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π·Π°Π΄Π°Π²Π°ΡΡ ΠΎΡΠΈΠ΅Π½ΡΠ°ΡΠΈΡ ΠΏΠΎΠ»ΠΎΡΡ ΠΏΡΠΎΠΊΡΡΡΠΊΠΈ β Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅Π½Ρ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ VERTICAL ΠΈ HORIZONTAL. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ° ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°ΡΡ Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠ΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π±Π΅Π³ΡΠ½ΠΊΠ°, ΡΠ°Π·ΠΌΠ΅Ρ "ΡΡΡΠ°Π½ΠΈΡΡ", Π° ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ ΠΈ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, Π² ΠΏΡΠ΅Π΄Π΅Π»Π°Ρ ΠΊΠΎΡΠΎΡΡΡ Π»ΠΈΠ½Π΅ΠΉΠΊΠ° ΠΏΡΠΎΠΊΡΡΡΠΊΠΈ ΠΌΠΎΠΆΠ΅Ρ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ. ΠΠ»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΏΠΎΠ»ΠΎΡΡ ΠΏΡΠΎΠΊΡΡΡΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Ρ getValue ΠΈ setValue. ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΡΠΈΠΌΠ΅Ρ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΠΈ Π²Π΅ΡΡΠΈΠΊΠ°Π»ΡΠ½ΡΠΉ, ΠΈ Π³ΠΎΡΠΈΠ·ΠΎΠ½ΡΠ°Π»ΡΠ½ΡΠΉ Scrollbar.
int height = getHeight(), width = getWidth();
int thickness = 16; Scrollbar hs = new Scrollbar(
Scrollbar.HORIZONTAL, 50, width/10, 0, 100);
Scrollbar vs = new Scrollbar(
Scrollbar.VERTICAL, 50, height/2, 0, 100);
add(hs);
add(vs);
hs.setBounds(0, height - thickness,
width - thickness, thickness);
vs.setBounds(width - thickness, 0, thickness,
height - thickness);
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΡΠΊΡΠΎΠ»Π»ΠΈΡΡΠ΅ΡΡΡ, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, ΠΏΡΡΡΠ°Ρ ΠΎΠ±Π»Π°ΡΡΡ:
ΠΠ°ΡΠ»Π΅Π΄Π½ΠΈΠΊΠΈ Container
Π’Π΅ΠΏΠ΅ΡΡ ΠΏΠ΅ΡΠ΅ΠΉΠ΄Π΅ΠΌ ΠΊ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½ΠΈΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ² AWT.
ΠΠ»Π°ΡΡ Panel
ΠΠΎΠ΄ΠΎΠ±Π½ΠΎ ΡΠΎΠΌΡ, ΠΊΠ°ΠΊ Canvas ΡΠ»ΡΠΆΠΈΡ Π±Π°Π·ΠΎΠ²ΡΠΌ ΠΊΠ»Π°ΡΡΠΎΠΌ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ²ΠΎΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Ρ ΠΎΡΠΎΠ±ΡΠΌ Π²Π½Π΅ΡΠ½ΠΈΠΌ Π²ΠΈΠ΄ΠΎΠΌ, ΠΊΠ»Π°ΡΡ Panel ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΠΏΠ΅ΡΠΊΠ»Π°ΡΡΠΎΠΌ Π΄Π»Ρ Π½ΠΎΠ²ΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ² Ρ ΠΎΡΠΎΠ±ΠΎΠΉ ΡΠ°Π±ΠΎΡΠΎΠΉ Ρ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΠΌΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌΠΈ. ΠΠΏΡΠΎΡΠ΅ΠΌ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Panel ΠΊΠ»Π°ΡΡ Π½Π΅ Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΡΠΉ, Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΠΈΠ΅ΡΠ°ΡΡ ΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ ΡΠ»ΠΎΠΆΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°, Π³ΡΡΠΏΠΏΠΈΡΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Π² ΡΠ°ΠΊΠΈΠ΅ ΠΏΡΠΎΡΡΠ΅ΠΉΡΠΈΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ.
ΠΠ»Π°ΡΡ ScrollPane
ΠΡΡΠ΅ Π±ΡΠ» ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Scrollbar, ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΠΉ Π΄Π»Ρ ΠΏΠΎΠ»ΠΎΡΡ ΠΏΡΠΎΠΊΡΡΡΠΊΠΈ. ΠΡΠ»ΠΈ ΡΡΠΎΠΈΡ Π·Π°Π΄Π°ΡΠ°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠΎΠΊΠ°Π·Π°ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π³ΡΠ°ΡΠΈΠΊ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΡ ΠΏΡΠΎΡΠΌΠΎΡΡΠ° Π΄Π»Ρ ΠΈΠ·ΡΡΠ΅Π½ΠΈΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΎΠ±Π»Π°ΡΡΠ΅ΠΉ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ·Π΄Π°ΡΡ Π΄Π²Π΅ ΠΏΠΎΠ»ΠΎΡΡ ΠΏΡΠΎΠΊΡΡΡΠΊΠΈ, ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΠΈΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΈ Π² Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΌ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ Π²ΡΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, Π²ΡΡΠΈΡΠ»ΡΡΡ Π½ΠΎΠ²ΠΎΠ΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π²ΠΈΠ΄ΠΈΠΌΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ, ΠΏΠ΅ΡΠ΅ΡΠΈΡΠΎΠ²ΡΠ²Π°ΡΡ Π³ΡΠ°ΡΠΈΠΊ ΠΈ Ρ.Π΄.
Π Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΡΠ»ΡΡΠ°Π΅Π² Π²ΡΠ΅ ΡΡΠΈ Π·Π°Π΄Π°ΡΠΈ ΠΌΠΎΠΆΠ΅Ρ Π²Π·ΡΡΡ Π½Π° ΡΠ΅Π±Ρ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ ScrollPane. ΠΡΠΎΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ ΡΡΠ΄ΠΎΠΌ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠ΅ΠΉ. ΠΠΎ-ΠΏΠ΅ΡΠ²ΡΡ , Π² Π½Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ΅ΡΡΠΈΡΡ Π»ΠΈΡΡ ΠΎΠ΄Π½Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ β ΠΏΡΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ Π½ΠΎΠ²ΠΎΠΉ ΡΡΠ°ΡΠ°Ρ ΡΠ΄Π°Π»ΡΠ΅ΡΡΡ. ΠΠΎ-Π²ΡΠΎΡΡΡ , ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ ΡΠ°Π±ΠΎΡΠ° Ρ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠΌ, ΡΡΠΈ Π³ΡΠ°Π½ΠΈΡΡ Π²ΡΡ ΠΎΠ΄ΡΡ Π·Π° Π³ΡΠ°Π½ΠΈΡΡ ΡΠ°ΠΌΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°. ΠΠ°ΠΊ ΠΌΡ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π»ΠΈ ΡΠ°Π½ΡΡΠ΅, "Π²ΡΡΡΡΠΏΠ°ΡΡΠΈΠ΅" ΠΎΠ±Π»Π°ΡΡΠΈ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π±ΡΠ΄ΡΡ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½Ρ Π½Π° ΡΠΊΡΠ°Π½Π΅. Π ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ΅ ScrollPane Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΏΠΎΡΠ²Π»ΡΡΡΡΡ ΠΏΠΎΠ»ΠΎΡΡ ΠΏΡΠΎΠΊΡΡΡΠΊΠΈ (Π³ΠΎΡΠΈΠ·ΠΎΠ½ΡΠ°Π»ΡΠ½Π°Ρ ΠΈΠ»ΠΈ Π²Π΅ΡΡΠΈΠΊΠ°Π»ΡΠ½Π°Ρ), Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΡΠΎΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΠΌΠΎΡΠ°ΡΡ Π²ΠΈΠ΄ΠΈΠΌΡΡ ΠΎΠ±Π»Π°ΡΡΡ ΠΈ ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΡΠ²ΠΈΠ΄Π΅ΡΡ Π²Π΅ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ. ΠΡΠΈ ΡΡΠΎΠΌ Π½Π΅ Π½ΡΠΆΠ½ΠΎ ΠΏΡΠ΅Π΄ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ Π½ΠΈΠΊΠ°ΠΊΠΈΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ β Π½Π°Π΄ΠΎ Π»ΠΈΡΡ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Π² ScrollPane.
ΠΠΎΠΆΠ΅Ρ Π²ΡΠ·Π²Π°ΡΡ ΡΠ΄ΠΈΠ²Π»Π΅Π½ΠΈΠ΅, ΠΏΠΎΡΠ΅ΠΌΡ ΡΠ°Π·ΡΠ΅ΡΠ°Π΅ΡΡΡ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π»ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°. Π Π΅ΡΠ»ΠΈ Π½ΡΠΆΠ½ΠΎ ΠΏΡΠΎΠΌΠ°ΡΡΠ²Π°ΡΡ Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ? ΠΠ΄Π΅ΡΡ ΠΈ ΠΏΡΠΎΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠΎΠ»ΡΠ·Π° ΠΊΠ»Π°ΡΡΠ° Panel. ΠΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΡΠΎΠ±ΠΈΡΠ°ΡΡΡΡ Π² ΡΡΠΎΡ ΠΏΡΠΎΡΡΠ΅ΠΉΡΠΈΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ, ΠΊΠΎΡΠΎΡΡΠΉ, Π² ΡΠ²ΠΎΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ, Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΡΡΡ Π² ScrollPane.
ΠΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΡΡΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ, Π·Π°Π΄Π°ΡΡΠΈΠΉ Π»ΠΎΠ³ΠΈΠΊΡ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΡ ΠΏΠΎΠ»ΠΎΡ ΠΏΡΠΎΠΊΡΡΡΠΊΠΈ β ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π²ΠΈΠ΄ΠΈΠΌΡ Π²ΡΠ΅Π³Π΄Π°, ΠΏΠΎΡΠ²Π»ΡΡΡΡΡ ΠΏΠΎ ΠΌΠ΅ΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ, Π»ΠΈΠ±ΠΎ Π½Π΅ ΠΏΠΎΡΠ²Π»ΡΡΡΡΡ Π½ΠΈΠΊΠΎΠ³Π΄Π°.
ΠΠ»Π°ΡΡ Window
ΠΠ· ΠΎΠΏΡΡΠ° ΡΠ°Π±ΠΎΡΡ Ρ ΠΎΠΊΠΎΠ½Π½ΡΠΌΠΈ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°ΠΌΠΈ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌ ΠΌΡ ΠΏΡΠΈΠ²ΡΠΊΠ»ΠΈ ΠΊ ΡΠΎΠΌΡ, ΡΡΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΠΎΠΊΠ½Π°ΠΌΠΈ. ΠΠ»Π°ΡΡ Window ΡΠ»ΡΠΆΠΈΡ Π±Π°Π·ΠΎΠ²ΡΠΌ ΠΊΠ»Π°ΡΡΠΎΠΌ Π΄Π»Ρ Π²ΡΠ΅Ρ ΠΎΠΊΠΎΠ½, ΠΏΠΎΡΠΎΠΆΠ΄Π°Π΅ΠΌΡΡ ΠΈΠ· Java. Π Π°Π·ΡΠΌΠ΅Π΅ΡΡΡ, ΠΎΠ½ ΡΠ°ΠΊΠΆΠ΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠΌ ΠΊ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅ΠΌΡ ΠΎΠΊΠ½Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΎΠΊΠ½Π° Π²ΡΠ΅Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.
ΠΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π΄Π²ΡΡ Π½Π°ΡΠ»Π΅Π΄Π½ΠΈΠΊΠΎΠ² Window β ΠΊΠ»Π°ΡΡΡ Frame ΠΈ Dialog, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ΄ΡΡ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌΠΈ. ΠΠ΄Π½Π°ΠΊΠΎ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΡ Window Π½Π΅ ΠΎΠ±Π»Π°Π΄Π°ΡΡ Π½ΠΈ ΡΠ°ΠΌΠΊΠΎΠΉ, Π½ΠΈ ΠΊΠ½ΠΎΠΏΠΊΠ°ΠΌΠΈ Π·Π°ΠΊΡΡΡΠΈΡ ΠΈΠ»ΠΈ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΠΎΠΊΠ½Π°, Π° ΠΏΠΎΡΠΎΠΌΡ Π·Π°ΡΠ°ΡΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΊΠ°ΠΊ Π·Π°ΡΡΠ°Π²ΠΊΠΈ (ΡΠ°ΠΊ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΠ΅ splash screen).
ΠΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ Window ΡΡΠ΅Π±ΡΠ΅Ρ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° ΡΡΡΠ»ΠΊΡ Π½Π° Window ΠΈΠ»ΠΈ Frame. ΠΡΡΠ³ΠΈΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ, Π±Π°Π·ΠΎΠ²ΡΠ΅ ΠΎΠΊΠ½Π° Π½Π΅ ΡΠ²Π»ΡΡΡΡΡ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΡΠΌΠΈ, ΠΎΠ½ΠΈ ΠΏΡΠΈΠ²ΡΠ·ΡΠ²Π°ΡΡΡΡ ΠΊ Π΄ΡΡΠ³ΠΈΠΌ ΠΎΠΊΠ½Π°ΠΌ.
ΠΠ»Π°ΡΡΡ Frame ΠΈ Dialog
ΠΠ»Π°ΡΡ Frame ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΠΎΠ»Π½ΠΎΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΡ ΠΎΠΊΠΎΠ½ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ β Ρ ΠΏΠΎΠ»ΠΎΡΠΎΠΉ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°, ΡΠ°ΠΌΠΊΠΎΠΉ, ΠΊΠ½ΠΎΠΏΠΊΠ°ΠΌΠΈ Π·Π°ΠΊΡΡΡΠΈΡ, ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΠΈ ΠΌΠ°ΠΊΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΠΎΠΊΠ½Π°. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ Frame, ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, ΡΠ²Π»ΡΠ΅ΡΡΡ Π³Π»Π°Π²Π½ΡΠΌ ΠΎΠΊΠ½ΠΎΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΎΠ½ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ Π½Π΅Π²ΠΈΠ΄ΠΈΠΌΡΠΌ, ΡΡΠΎΠ±Ρ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π½Π°ΡΡΡΠΎΠΈΡΡ Π²ΡΠ΅ Π΅Π³ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ, Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π²ΡΠ΅ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΠΈ Π»ΠΈΡΡ Π·Π°ΡΠ΅ΠΌ ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡΡ Π΅Π³ΠΎ Π² ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²Π»Π΅Π½Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅. ΠΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ β Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ ΡΡΠ΅ΠΉΠΌΠ°.
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΏΡΠΈΠΌΠ΅Ρ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ ΡΠ°Π±ΠΎΡΡ Ρ ΡΡΠ΅ΠΉΠΌΠΎΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΠΈΠ· ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ° Π»Π΅ΠΊΡΠΈΠΈ ("ΠΠ»Π³ΠΎΡΠΈΡΠΌ ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ").
public class TestCanvas extends Canvas {
public void paint(Graphics g) {
g.drawLine(0, 0, getWidth(), getHeight());
g.drawLine(0, getHeight(),getWidth(), 0);
}
public static void main(String arg[]) {
Frame f = new Frame("Test frame");
f.setSize(400, 300);
f.add(new TestCanvas());
f.setVisible(true);
}
}
ΠΠΊΠ½ΠΎ Π·Π°ΠΏΡΡΠ΅Π½Π½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΡΡΠΎ ΠΎΠΊΠ½ΠΎ Π½Π΅ Π±ΡΠ΄Π΅Ρ Π·Π°ΠΊΡΡΠ²Π°ΡΡΡΡ ΠΏΠΎ Π½Π°ΠΆΠ°ΡΠΈΡ ΠΏΡΠ°Π²ΠΎΠΉ Π²Π΅ΡΡ Π½Π΅ΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΈ Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ΅. ΠΡΠΈΡΠΈΠ½Π° Π±ΡΠ΄Π΅Ρ ΡΠ°Π·ΡΡΡΠ½Π΅Π½Π° Π½ΠΈΠΆΠ΅.
ΠΡΠ»ΠΈ ΠΊΠ»Π°ΡΡ Frame ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΡΠΎ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΡ ΠΊΠ»Π°ΡΡΠ° Dialog ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΠΎΡΠΊΡΡΠ²Π°ΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΎΠΊΠ½Π° Π΄Π»Ρ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ. ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°ΡΡΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π»Ρ Π²ΡΠ²ΠΎΠ΄Π° ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ, Π΄Π»Ρ Π²Π²ΠΎΠ΄Π° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΠΈ Ρ.Π΄.. ΠΠΊΠ½ΠΎ Π΄ΠΈΠ°Π»ΠΎΠ³Π° ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΌ ΠΎΡΠΎΡΠΌΠ»Π΅Π½ΠΈΠ΅ΠΌ β ΠΏΠΎΠ»ΠΎΡΠ° Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°, ΡΠ°ΠΌΠΊΠ°. Π ΠΏΡΠ°Π²ΠΎΠΉ ΡΠ°ΡΡΠΈ ΠΏΠΎΠ»ΠΎΡΡ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° ΠΏΡΠΈΡΡΡΡΡΠ²ΡΠ΅Ρ Π»ΠΈΡΡ ΠΎΠ΄Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠ° β Π·Π°ΠΊΡΡΡΠΈΡ ΠΎΠΊΠ½Π°.
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ Dialog ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π΅ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΡΠΌ ΠΎΠΊΠ½ΠΎΠΌ, Π² ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΡΡΡΠ»ΠΊΡ Π½Π° ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΡΡΠ΅ΠΉΠΌ ΠΈΠ»ΠΈ ΠΎΠΊΠ½ΠΎ Π΄ΡΡΠ³ΠΎΠ³ΠΎ Π΄ΠΈΠ°Π»ΠΎΠ³Π°. Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°ΡΡ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ ΠΎΠΊΠ½Π°. ΠΠ°ΠΊ ΠΈ Frame, Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ Π½Π΅Π²ΠΈΠ΄ΠΈΠΌΡΠΌ.
ΠΠ°ΠΆΠ½ΡΠΌ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎΠΌ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΌΠΎΠ΄Π°Π»ΡΠ½ΠΎΡΡΡ. ΠΡΠ»ΠΈ Π΄ΠΈΠ°Π»ΠΎΠ³ ΠΌΠΎΠ΄Π°Π»ΡΠ½ΡΠΉ, ΡΠΎ ΠΏΡΠΈ Π΅Π³ΠΎ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΠΈ Π½Π° ΡΠΊΡΠ°Π½Π΅ Π±Π»ΠΎΠΊΠΈΡΡΡΡΡΡ Π²ΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠ΅ ΡΠΎΠ±ΡΡΠΈΡ, ΠΏΡΠΈΡ ΠΎΠ΄ΡΡΠΈΠ΅ Π² ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠ΅ ΠΎΠΊΠ½ΠΎ ΡΠ°ΠΊΠΎΠ³ΠΎ Π΄ΠΈΠ°Π»ΠΎΠ³Π°.
ΠΠ»Π°ΡΡ FileDialog
ΠΠ»Π°ΡΡ FileDialog ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΌΠΎΠ΄Π°Π»ΡΠ½ΡΠΌ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠΌ (Π½Π°ΡΠ»Π΅Π΄Π½ΠΈΠΊΠΎΠΌ Dialog ) ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π»Π΅Π³ΠΊΠΎ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²Π°ΡΡ ΡΠ°Π±ΠΎΡΡ Ρ ΡΠ°ΠΉΠ»Π°ΠΌΠΈ. ΠΡΠΎΡ ΠΊΠ»Π°ΡΡ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ ΠΈ Π΄Π»Ρ ΠΎΡΠΊΡΡΡΠΈΡ ΡΠ°ΠΉΠ»Π° (open file), ΠΈ Π΄Π»Ρ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ (save file). ΠΠΊΠ½ΠΎ Π΄ΠΈΠ°Π»ΠΎΠ³Π° ΠΈΠΌΠ΅Π΅Ρ Π²Π½Π΅ΡΠ½ΠΈΠΉ Π²ΠΈΠ΄, ΠΏΡΠΈΠ½ΡΡΡΠΉ Π΄Π»Ρ ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ.
ΠΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΡΡΡΠ»ΠΊΡ Π½Π° ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΡΡΠ΅ΠΉΠΌ, Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ ΠΎΠΊΠ½Π° ΠΈ ΡΠ΅ΠΆΠΈΠΌ ΡΠ°Π±ΠΎΡΡ. ΠΠ»Ρ Π·Π°Π΄Π°Π½ΠΈΡ ΡΠ΅ΠΆΠΈΠΌΠ° Π² ΠΊΠ»Π°ΡΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Ρ Π΄Π²Π΅ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ β LOAD ΠΈ SAVE.
ΠΠΎΡΠ»Π΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π΄ΠΈΠ°Π»ΠΎΠ³Π° FileDialog Π΅Π³ΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ΄Π΅Π»Π°ΡΡ Π²ΠΈΠ΄ΠΈΠΌΡΠΌ. ΠΠ°ΡΠ΅ΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π΄Π΅Π»Π°Π΅Ρ ΡΠ²ΠΎΠΉ Π²ΡΠ±ΠΎΡ. ΠΠΎΡΠ»Π΅ Π·Π°ΠΊΡΡΡΠΈΡ Π΄ΠΈΠ°Π»ΠΎΠ³Π° ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ·Π½Π°ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² getDirectory (Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ ΠΈΠΌΠ΅Π½ΠΈ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°) ΠΈ getFile (Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΈΠΌΠ΅Π½ΠΈ ΡΠ°ΠΉΠ»Π°). ΠΡΠ»ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π½Π°ΠΆΠ°Π» ΠΊΠ½ΠΎΠΏΠΊΡ "ΠΡΠΌΠ΅Π½Π°" ("Cancel"), ΡΠΎ Π±ΡΠ΄ΡΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ΅Π½Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΡ null.
ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ ΡΠΎΠ±ΡΡΠΈΠΉ
ΠΠ΅ΡΡ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠΉ ΡΠ°Π·Π΄Π΅Π» "ΠΠ΅ΡΠ΅Π²ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ²" Π±ΡΠ» ΠΏΠΎΡΠ²ΡΡΠ΅Π½ Π·Π°Π΄Π°Π½ΠΈΡ Π²Π½Π΅ΡΠ½Π΅Π³ΠΎ Π²ΠΈΠ΄Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°. ΠΠ΄Π½Π°ΠΊΠΎ Π΄ΠΎ ΡΠΈΡ ΠΏΠΎΡ ΠΎΠ½ Π±ΡΠ» ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌ. ΠΠ΅ΡΠ΅ΠΉΠ΄Π΅ΠΌ ΡΠ΅ΠΏΠ΅ΡΡ ΠΊ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½ΠΈΡ ΠΏΡΠ°Π²ΠΈΠ» ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΠΎΠ±ΡΡΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡ ΠΊΠ°ΠΊ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, ΠΈ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ.
ΠΠΎΠ΄Π΅Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠΎΠ±ΡΡΠΈΠΉ ΠΏΠΎΡΡΡΠΎΠ΅Π½Π° Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠ³ΠΎ ΡΠ°Π±Π»ΠΎΠ½Π° ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΠΠ Observer/Observable. Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π½Π°Π±Π»ΡΠ΄Π°Π΅ΠΌΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π²ΡΡΡΡΠΏΠ°Π΅Ρ ΡΠΎΡ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ AWT. ΠΠ»Ρ Π½Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°ΡΡ ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΊΠ»Π°ΡΡΠΎΠ²-Π½Π°Π±Π»ΡΠ΄Π°ΡΠ΅Π»Π΅ΠΉ. Π AWT ΠΎΠ½ΠΈ Π½Π°Π·ΡΠ²Π°ΡΡΡΡ ΡΠ»ΡΡΠ°ΡΠ΅Π»ΡΠΌΠΈ (listener) ΠΈ ΠΎΠΏΠΈΡΡΠ²Π°ΡΡΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΌΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°ΠΌΠΈ, Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΊΠΎΡΠΎΡΡΡ ΠΎΠΊΠ°Π½ΡΠΈΠ²Π°Π΅ΡΡΡ Π½Π° ΡΠ»ΠΎΠ²ΠΎ Listener. ΠΠΎΠ³Π΄Π° Ρ Π½Π°Π±Π»ΡΠ΄Π°Π΅ΠΌΡΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ ΡΡΠΎ-ΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ, ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ "ΡΠΎΠ±ΡΡΠΈΠ΅" (event), ΠΊΠΎΡΠΎΡΡΠΉ "ΠΏΠΎΡΡΠ»Π°Π΅ΡΡΡ" Π²ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°ΡΠ΅Π»ΡΠΌ. Π’Π°ΠΊ ΡΠ»ΡΡΠ°ΡΠ΅Π»Ρ ΡΠ·Π½Π°Π΅Ρ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈ ΠΌΠΎΠΆΠ΅Ρ Π½Π° Π½Π΅Π³ΠΎ ΠΎΡΡΠ΅Π°Π³ΠΈΡΠΎΠ²Π°ΡΡ.
ΠΠ°ΠΆΠ΄ΠΎΠ΅ ΡΠΎΠ±ΡΡΠΈΠ΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠΎΠ΄ΠΊΠ»Π°ΡΡΠΎΠΌ ΠΊΠ»Π°ΡΡΠ° java.util.EventObject. Π‘ΠΎΠ±ΡΡΠΈΡ ΠΏΠ°ΠΊΠ΅ΡΠ° AWT, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡΡΡ Π² Π΄Π°Π½Π½ΠΎΠΉ Π»Π΅ΠΊΡΠΈΠΈ, ΡΠ²Π»ΡΡΡΡΡ ΠΏΠΎΠ΄ΠΊΠ»Π°ΡΡΠ°ΠΌΠΈ java.awt.AWTEvent. ΠΠ»Ρ ΡΠ΄ΠΎΠ±ΡΡΠ²Π° ΠΊΠ»Π°ΡΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΠΎΠ±ΡΡΠΈΠΉ ΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ ΡΠ»ΡΡΠ°ΡΠ΅Π»Π΅ΠΉ ΠΏΠΎΠΌΠ΅ΡΠ΅Π½Ρ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΠΏΠ°ΠΊΠ΅Ρ java.awt.event.
ΠΡΠ΅ΠΆΠ΄Π΅, ΡΠ΅ΠΌ ΡΠ³Π»ΡΠ±Π»ΡΡΡΡΡ Π² ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ ΡΠΎΠ±ΡΡΠΈΠΉ, ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅, Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΏΡΠΎΡΡΠ΅ΠΉΡΠ΅Π³ΠΎ ΡΠΎΠ±ΡΡΠΈΡ β ActionEvent.