ΠΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΡ ΠΈ ΡΠ°Π±ΠΎΡΠ° Ρ ΠΏΠΎΡΠΎΠΊΠ°ΠΌΠΈ
ΠΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π² ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°ΡΡ «Π²ΡΡΡΠ½ΡΡ», ΠΏΡΠΈΡΠ΅ΠΌ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎ ΡΠ»ΡΠΆΠΈΡΡ Π»ΡΠ±ΠΎΠ΅ Π°ΡΡΠΈΠ½Π½ΠΎΠ΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠ»ΠΎΡΠΊΠΎΡΡΠΈ, Π² ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, ΠΏΠΎΠ²ΠΎΡΠΎΡ Π½Π° Π»ΡΠ±ΠΎΠΉ ΡΠ³ΠΎΠ» ΠΈ/ΠΈΠ»ΠΈ ΡΠΆΠ°ΡΠΈΠ΅/ΡΠ°ΡΡΡΠΆΠ΅Π½ΠΈΠ΅. ΠΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ ΠΊΠ°ΠΊ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΊΠ»Π°ΡΡΠ° AffineTransform. ΠΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΊΠ°ΠΊ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ setTransform (). ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅… Π§ΠΈΡΠ°ΡΡ Π΅ΡΡ >
ΠΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΡ ΠΈ ΡΠ°Π±ΠΎΡΠ° Ρ ΠΏΠΎΡΠΎΠΊΠ°ΠΌΠΈ (ΡΠ΅ΡΠ΅ΡΠ°Ρ, ΠΊΡΡΡΠΎΠ²Π°Ρ, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½Π°Ρ)
Π€Π°ΠΊΡΠ»ΡΡΠ΅Ρ «ΠΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΊΠ° ΠΈ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ»
ΠΠ΅ΡΠΎΠ΄ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠΊΠ°Π·Π°Π½ΠΈΡ ΠΊ Π»Π°Π±ΠΎΡΠ°ΡΠΎΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΠ΅
ΠΏΠΎ ΠΊΡΡΡΡ «Π Π°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ»
ΠΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΡ ΠΠΎΡΠΊΠ²Π° 2004 Π³.
- Π¦Π΅Π»Ρ ΡΠ°Π±ΠΎΡΡ 3
- ΠΠ°Π΄Π°Π½ΠΈΠ΅ Π΄Π»Ρ Π΄ΠΎΠΌΠ°ΡΠ½Π΅ΠΉ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠΈ 3
- ΠΠ°Π΄Π°Π½ΠΈΠ΅ ΠΊ Π»Π°Π±ΠΎΡΠ°ΡΠΎΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΠ΅ 3
- Π‘ΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅ ΠΎΡΡΠ΅ΡΠ° 4
- ΠΠΎΠ½ΡΡΠΎΠ»ΡΠ½ΡΠ΅ Π²ΠΎΠΏΡΠΎΡΡ. 4
ΠΠΈΡΠ΅ΡΠ°ΡΡΡΠ°
6
- ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ 1. ΠΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Ρ. 7
- ΠΠ΅ΡΠΎΠ΄Ρ ΠΊΠ»Π°ΡΡΠ° Graphics 7
- ΠΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ 21
- Π ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΈΠ³ΡΡ ΡΡΠ΅Π΄ΡΡΠ²Π°ΠΌΠΈ Java2D 25
- ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ 2. ΠΠ°Π½ΠΈΠΏΡΠ»ΡΡΠΈΠΈ Ρ ΠΊΡΡΡΠΎΡΠ°ΠΌΠΈ. 31
- ΠΠ»Π°ΡΡ Cursor 31
- ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ 3. ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ ΠΌΡΡΠΈ ΠΈ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ. 35
- ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ ΠΌΡΡΠΈ 35
- ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ 36
- ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ 4. ΠΠΈΡΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ². 38
- ΠΠ»Π°ΡΡ Thread ΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Runnable. 39
- ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ 5. Π‘ΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ°Π±ΠΎΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΏΠΎΡΠΎΠΊΠΎΠ². 43
- ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ 6. ΠΡΠΈΠΌΠ΅Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ «ΠΠ΅Π³ΡΡΠ°Ρ ΡΡΡΠΎΠΊΠ°». 44
Π¦Π΅Π»Ρ ΡΠ°Π±ΠΎΡΡ
1. ΠΡΠ²ΠΎΠΈΡΡ ΠΏΠ°ΠΊΠ΅Ρ java. applet ΠΈ ΠΊΠ»Π°ΡΡ java.applet.Applet.
2. ΠΠ°ΡΡΠΈΡΡΡ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΌΡΡΠΈ ΠΈ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ.
3. ΠΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡΡΡΡ Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠΌΠΈ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² java.awt.geom, java. awt ΠΈ ΠΊΠ»Π°ΡΡΠΎΠ² java.awt.Graphics ΠΈ java.awt.Graphics2D.
4. ΠΠ·ΡΡΠΈΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Ρ.
5. ΠΡΠ²ΠΎΠΈΡΡ ΡΠ°Π±ΠΎΡΡ Ρ ΠΏΠΎΡΠΎΠΊΠ°ΠΌΠΈ.
6. ΠΡΠΈΠΌΠ΅Π½ΠΈΡΡ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠ΅ Π·Π½Π°Π½ΠΈΡ Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅
ΠΠ°Π΄Π°Π½ΠΈΠ΅ Π΄Π»Ρ Π΄ΠΎΠΌΠ°ΡΠ½Π΅ΠΉ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠΈ
ΠΠ·Π½Π°ΠΊΠΎΠΌΠΈΡΡΡΡ Ρ ΡΠ΅ΠΎΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»ΠΎΠΌ, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π½ΡΠΌ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ ΠΊ Π΄Π°Π½Π½ΡΠΌ ΠΌΠ΅ΡΠΎΠ΄ΠΈΡΠ΅ΡΠΊΠΈΠΌ ΡΠΊΠ°Π·Π°Π½ΠΈΡΠΌ ΠΈ ΠΏΡΠΈΠΌΠ΅ΡΠ°ΠΌΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ. ΠΠ·Π½Π°ΠΊΠΎΠΌΠΈΡΡΡΡ Ρ ΡΠ΅ΠΊΡΡΠΎΠΌ Π·Π°Π΄Π°Π½ΠΈΡ ΠΊ Π»Π°Π±ΠΎΡΠ°ΡΠΎΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΠ΅, ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠΈΡΡ ΡΠ΅ΠΌΠ°ΡΠΈΠΊΡ (ΡΡΠΆΠ΅Ρ) ΠΈΠ³ΡΡ ΠΈ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ, ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΡΡΡΡΡ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡΠΌ Π·Π°Π΄Π°Π½ΠΈΡ ΠΊ Π»Π°Π±ΠΎΡΠ°ΡΠΎΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΠ΅, ΠΈ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
ΠΠ°Π΄Π°Π½ΠΈΠ΅ ΠΊ Π»Π°Π±ΠΎΡΠ°ΡΠΎΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΠ΅
Π Π°Π·ΡΠ°Π±ΠΎΡΠ°ΡΡ Π°ΠΏΠ»Π΅Ρ, ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡΠΈΠΉ ΠΈΠ³ΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ:
o ΠΎΡΠ½ΠΎΠ²Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° — Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ, ΡΠΎΠ·Π΄Π°Π½Π½ΡΠ΅ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² java. awt, java.awt.geom ΠΈ ΠΊΠ»Π°ΡΡΠΎΠ² java.awt.Graphics ΠΈ java.awt.Graphics2D.
o Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ Π΄Π²ΡΡ Π΄Π²ΠΈΠΆΡΡΠΈΡ ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², ΡΠΎΠ·Π΄Π°Π½Π½ΡΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΠ΅Ρ ΠΆΠ΅ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² ΠΈ ΠΊΠ»Π°ΡΡΠΎΠ². ΠΠ°ΠΆΠ΄ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΏΡΠ°Π²Π»ΡΠ΅ΡΡΡ ΡΠ²ΠΎΠΈΠΌ ΠΏΠΎΡΠΎΠΊΠΎΠΌ, ΡΡΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ Π²ΠΈΠ·ΡΠ°Π»ΡΠ½ΠΎ Π·Π°ΠΌΠ΅ΡΠ½ΠΎ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π·Π°Π΄Π°Π½ΠΈΡ ΡΠ°Π·Π½ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΡ ΠΌΠ΅ΡΠΎΠ΄Π°Ρ Thread. sleep ()).
Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈΠ³ΡΠΎΠΉ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΡΡΡΡ Ρ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ ΠΈ/ΠΈΠ»ΠΈ ΠΌΡΡΡΡ. ΠΡΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΌΡΡΡ, ΡΠΎ Π½Π΅Π»ΡΠ·Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΡΡΡΠΎΡ, Π·Π°Π΄Π°Π½Π½ΡΠΉ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, (Π²ΠΌΠ΅ΡΡΠΎ Π½Π΅Π³ΠΎ Π½Π°Π΄ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π»ΡΠ±ΠΎΠΉ Π΄ΡΡΠ³ΠΎΠΉ, ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠΈΠΉ ΠΏΠΎ ΡΠΌΡΡΠ»Ρ, ΠΈΠ»ΠΈ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ²ΠΎΠΉ).
o Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ (Π½Π΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ) — Π² ΠΈΠ³ΡΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π²Π΅ΡΡΠΈΡΡ ΠΏΠΎΠ΄ΡΡΠ΅Ρ ΠΎΡΠΊΠΎΠ².
Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠ³ΠΎ Π²Π°ΡΠΈΠ°Π½ΡΠ° ΠΈΠ³ΡΡ ΠΏΠΎΠ΄ΠΎΠΉΠ΄Π΅Ρ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, «ΡΠΈΡ» ΠΈΠ»ΠΈ «ΡΡΡΠ±ΠΎΠ»».
Π‘ΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅ ΠΎΡΡΠ΅ΡΠ°
ΠΡΡΠ΅Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ:
ΠΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΡ Π·Π°Π΄Π°ΡΠΈ, ΡΠ΅ΡΠ°Π΅ΠΌΠΎΠΉ ΠΎΡΠ»Π°ΠΆΠ΅Π½Π½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΎΠΉ.
Π ΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΎΡΠ»Π°ΠΆΠ΅Π½Π½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ΅Π΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ² Π²ΡΠ΅Ρ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
ΠΠΈΡΡΠΈΠ½Π³ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠΌΠΈ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠΌΠΈ.
ΠΠΎΠ½ΡΡΠΎΠ»ΡΠ½ΡΠ΅ Π²ΠΎΠΏΡΠΎΡΡ
1. Π ΡΠ»ΡΡΠ°Π΅, Π΅ΡΠ»ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° — Π°ΠΏΠ»Π΅Ρ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΊΠ»Π°ΡΡΠΎΠ² ΠΈ ΠΏΠΎΡΠ»Π΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½ΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°ΠΉΠ»ΠΎΠ² *.class, ΠΊΠ°ΠΊ Π²Π½ΡΡΡΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° html — ΡΠ°ΠΉΠ»Π° ΡΡΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΊΠ°Π·Π°ΡΡ?
2. Π‘ΠΊΠΎΠ»ΡΠΊΠΎ ΠΊΠ»Π°ΡΡΠΎΠ² Π² ΠΏΠ°ΠΊΠ΅ΡΠ΅ java. applet?
3. ΠΠ°ΠΊ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ ΡΠ΅Π½ΡΡΠ° ΠΎΠΊΠ½Π°?
4. Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΈΠ½ΡΠ΅ΡΠ»ΠΈΠ½ΡΡΠΆ?
5. ΠΠ°ΠΊ Π·Π°Π΄Π°ΡΡ ΡΠΎΡΠΌΡ ΠΊΡΡΡΠΎΡΠ°?
6. ΠΠ°Π·ΠΎΠ²ΠΈΡΠ΅ ΠΈΠΌΡ Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΠ° Π² Java — ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ (Π³Π»Π°Π²Π½ΡΠΉ ΠΏΠΎΡΠΎΠΊ — ΡΡΠΎ ΠΏΠΎΡΠΎΠΊ, ΠΊΠΎΡΠΎΡΡΠΉ Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ ΠΌΠ΅ΡΠΎΠ΄ main ()).
7. ΠΠΎ ΠΊΠ°ΠΊΠΎΠΌΡ ΠΏΡΠΈΠ½ΡΠΈΠΏΡ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°ΡΡΡΡ ΠΈΠΌΠ΅Π½Π° ΠΏΠΎΡΠΎΠΊΠ°ΠΌ, ΡΡΠΈ ΠΈΠΌΠ΅Π½Π° Π½Π΅ Π·Π°Π΄Π°ΡΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠΌ ΡΠ²Π½ΠΎ?
8. ΠΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΡΡΠ°Π²ΠΈΡΡ ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΈΡ Π°ΡΡΠΈΠ½Π½ΡΡ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠΉ, ΡΡΠΎΠ±Ρ Π² Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ Π΅Π΅ ΠΊ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΊΠ°ΠΊ Π΅Π΄ΠΈΠ½ΠΎΠ΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅.
ΠΡΠΈΡΠΈΠ°Π»ΡΠ½ΡΠ΅ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΈ:
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. ΠΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Ρ
ΠΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠΎΡΠΌΠΈΡΡΠ΅ΡΡΡ Π΅Π³ΠΎ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ. Π ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΠ°Π΅ΡΡΡ ΠΎΠ±Π»Π°ΡΡΡ ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ Π²ΡΠ²ΠΎΠ΄Π° ΡΠ΅ΠΊΡΡΠ° ΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ. ΠΠΎΠ½ΡΠ΅ΠΊΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠ΅ΠΊΡΡΠΈΠΉ ΠΈ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½ΡΠΉ ΡΠ²Π΅Ρ ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΡΠ²Π΅Ρ ΡΠΎΠ½Π° — ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΊΠ»Π°ΡΡΠ° Color, ΡΠ΅ΠΊΡΡΠΈΠΉ ΡΡΠΈΡΡ Π΄Π»Ρ Π²ΡΠ²ΠΎΠ΄Π° ΡΠ΅ΠΊΡΡΠ° — ΠΎΠ±ΡΠ΅ΠΊΡ ΠΊΠ»Π°ΡΡΠ° Font.
Π ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ° ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ, Π½Π°ΡΠ°Π»ΠΎ ΠΊΠΎΡΠΎΡΠΎΠΉ Ρ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ°ΠΌΠΈ (0, 0) ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΎ Π² Π²Π΅ΡΡ Π½Π΅ΠΌ Π»Π΅Π²ΠΎΠΌ ΡΠ³Π»Ρ ΠΎΠ±Π»Π°ΡΡΠΈ ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΎΡΡ ΠΡ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½Π° Π²ΠΏΡΠ°Π²ΠΎ, ΠΎΡΡ ΠΡ — Π²Π½ΠΈΠ·. ΠΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ ΠΈΠ·ΠΌΠ΅ΡΡΡΡΡΡ Π² ΠΏΠΈΠΊΡΠ΅Π»ΡΡ .
Π£ΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠΎΠΌ ΠΊΠ»Π°ΡΡ Graphics ΠΈΠ»ΠΈ Π½ΠΎΠ²ΡΠΉ ΠΊΠ»Π°ΡΡ Graphics2D, Π²Π²Π΅Π΄Π΅Π½Π½ΡΠΉ Π² Java 2. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ ΡΠΈΠ»ΡΠ½ΠΎ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ, ΡΡΠΈ ΠΊΠ»Π°ΡΡΡ ΡΠ΄Π΅Π»Π°Π½Ρ Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΡΠΌΠΈ. ΠΠΎΡΡΠΎΠΌΡ Π½Π΅Π»ΡΠ·Ρ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΡ ΠΊΠ»Π°ΡΡΠ° Graphics ΠΈΠ»ΠΈ Graphics2D.
ΠΠ΄Π½Π°ΠΊΠΎ ΠΊΠ°ΠΆΠ΄Π°Ρ Π²ΠΈΡΡΡΠ°Π»ΡΠ½Π°Ρ ΠΌΠ°ΡΠΈΠ½Π° Java ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅Ρ ΠΌΠ΅ΡΠΎΠ΄Ρ ΡΡΠΈΡ ΠΊΠ»Π°ΡΡΠΎΠ², ΡΠΎΠ·Π΄Π°Π΅Ρ ΠΈΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΡ Π΄Π»Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΊΠ»Π°ΡΡΠ° Graphics ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ getGraphics () ΠΊΠ»Π°ΡΡΠ° Component ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² paint () ΠΈ update ().
ΠΠΎΡΠΌΠΎΡΡΠΈΠΌ ΡΠ½Π°ΡΠ°Π»Π°, ΠΊΠ°ΠΊΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΡΠ°Π±ΠΎΡΡ Ρ Π³ΡΠ°ΡΠΈΠΊΠΎΠΉ ΠΈ ΡΠ΅ΠΊΡΡΠΎΠΌ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΊΠ»Π°ΡΡ Graphics.
ΠΠ΅ΡΠΎΠ΄Ρ ΠΊΠ»Π°ΡΡΠ° Graphics
ΠΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° Π² Π½Π΅ΠΌ Π·Π°Π΄Π°Π΅ΡΡΡ ΡΠ΅ΠΊΡΡΠΈΠΉ ΡΠ²Π΅Ρ Π΄Π»Ρ ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΎΠ±ΡΡΠ½ΠΎ ΡΠ΅ΡΠ½ΡΠΉ, ΠΈ ΡΠ²Π΅Ρ ΡΠΎΠ½Π° ΠΎΠ±Π»Π°ΡΡΠΈ ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ — Π±Π΅Π»ΡΠΉ ΠΈΠ»ΠΈ ΡΠ΅ΡΡΠΉ. ΠΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΠ΅ΠΊΡΡΠΈΠΉ ΡΠ²Π΅Ρ ΠΌΠΎΠΆΠ½ΠΎ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ setColor (Color newColor), Π°ΡΠ³ΡΠΌΠ΅Π½Ρ newColor ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ — ΠΎΠ±ΡΠ΅ΠΊΡ ΠΊΠ»Π°ΡΡΠ° Color.
Π£Π·Π½Π°ΡΡ ΡΠ΅ΠΊΡΡΠΈΠΉ ΡΠ²Π΅Ρ ΠΌΠΎΠΆΠ½ΠΎ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ getColor (), Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΠΈΠΌ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΊΠ»Π°ΡΡΠ° Color.
ΠΠ°ΠΊ Π·Π°Π΄Π°ΡΡ ΡΠ²Π΅Ρ
Π¦Π²Π΅Ρ, ΠΊΠ°ΠΊ ΠΈ Π²ΡΠ΅ Π² Java, — ΠΎΠ±ΡΠ΅ΠΊΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ, ΠΊΠ»Π°ΡΡΠ° Color. ΠΡΠ½ΠΎΠ²Ρ ΠΊΠ»Π°ΡΡΠ° ΡΠΎΡΡΠ°Π²Π»ΡΡΡ ΡΠ΅ΠΌΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠΎΠ² ΡΠ²Π΅ΡΠ°. Π‘Π°ΠΌΡΠΉ ΠΏΡΠΎΡΡΠΎΠΉ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ:
Color (int red, int green, int blue)
ΡΠΎΠ·Π΄Π°Π΅Ρ ΡΠ²Π΅Ρ, ΠΏΠΎΠ»ΡΡΠ°ΡΡΠΈΠΉΡΡ ΠΊΠ°ΠΊ ΡΠΌΠ΅ΡΡ ΠΊΡΠ°ΡΠ½ΠΎΠΉ red, Π·Π΅Π»Π΅Π½ΠΎΠΉ green ΠΈ ΡΠΈΠ½Π΅ΠΉ blue ΡΠΎΡΡΠ°Π²Π»ΡΡΡΠΈΡ . ΠΡΠ° ΡΠ²Π΅ΡΠΎΠ²Π°Ρ ΠΌΠΎΠ΄Π΅Π»Ρ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ RGB. ΠΠ°ΠΆΠ΄Π°Ρ ΡΠΎΡΡΠ°Π²Π»ΡΡΡΠ°Ρ ΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΠΎΡ 0 (ΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅ ΡΠΎΡΡΠ°Π²Π»ΡΡΡΠ΅ΠΉ) Π΄ΠΎ 255 (ΠΏΠΎΠ»Π½Π°Ρ ΠΈΠ½ΡΠ΅Π½ΡΠΈΠ²Π½ΠΎΡΡΡ ΡΡΠΎΠΉ ΡΠΎΡΡΠ°Π²Π»ΡΡΡΠ΅ΠΉ). ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
Color pureRed = new Color (255, 0, 0);
Color pureGreen = new Color (0, 255, 0);
ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΡΠΈΡΡΡΠΉ ΡΡΠΊΠΎ-ΠΊΡΠ°ΡΠ½ΡΠΉ pureRed ΠΈ ΡΠΈΡΡΡΠΉ ΡΡΠΊΠΎ-Π·Π΅Π»Π΅Π½ΡΠΉ pureGreen ΡΠ²Π΅ΡΠ°.
ΠΠΎ Π²ΡΠΎΡΠΎΠΌ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ΅ ΠΈΠ½ΡΠ΅Π½ΡΠΈΠ²Π½ΠΎΡΡΡ ΡΠΎΡΡΠ°Π²Π»ΡΡΡΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ Π±ΠΎΠ»Π΅Π΅ Π³Π»Π°Π΄ΠΊΠΎ Π²Π΅ΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠΌΠΈ ΡΠΈΡΠ»Π°ΠΌΠΈ ΠΎΡ 0.0 (ΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅ ΡΠΎΡΡΠ°Π²Π»ΡΡΡΠ΅ΠΉ) Π΄ΠΎ 1.0 (ΠΏΠΎΠ»Π½Π°Ρ ΠΈΠ½ΡΠ΅Π½ΡΠΈΠ²Π½ΠΎΡΡΡ ΡΠΎΡΡΠ°Π²Π»ΡΡΡΠ΅ΠΉ):
Color (float red, float green, float blue)
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Color someColor = new Color (O.OSf, 0.4f, 0.95f);
Π’ΡΠ΅ΡΠΈΠΉ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ
Color (int rgb)
Π·Π°Π΄Π°Π΅Ρ Π²ΡΠ΅ ΡΡΠΈ ΡΠΎΡΡΠ°Π²Π»ΡΡΡΠΈΠ΅ Π² ΠΎΠ΄Π½ΠΎΠΌ ΡΠ΅Π»ΠΎΠΌ ΡΠΈΡΠ»Π΅. Π Π±ΠΈΡΠ°Ρ 16—23 Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ ΠΊΡΠ°ΡΠ½Π°Ρ ΡΠΎΡΡΠ°Π²Π»ΡΡΡΠ°Ρ, Π² Π±ΠΈΡΠ°Ρ 8—15 — Π·Π΅Π»Π΅Π½Π°Ρ, Π° Π² Π±ΠΈΡΠ°Ρ 0—7 — ΡΠΈΠ½ΡΡ ΡΠΎΡΡΠ°Π²Π»ΡΡΡΠ°Ρ ΡΠ²Π΅ΡΠ°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Color Ρ = new Color (OXFF8F48FF);
ΠΠ΄Π΅ΡΡ ΠΊΡΠ°ΡΠ½Π°Ρ ΡΠΎΡΡΠ°Π²Π»ΡΡΡΠ°Ρ Π·Π°Π΄Π°Π½Π° Ρ ΠΈΠ½ΡΠ΅Π½ΡΠΈΠ²Π½ΠΎΡΡΡΡ 0x8 °F, Π·Π΅Π»Π΅Π½Π°Ρ — 0×48, ΡΠΈΠ½ΡΡ — 0xFF.
Π‘Π»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΡΠΈ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ°
Color (int red, int green, int blue, int alpha)
Color (float red, float green, float blue, float alpha)
Color (int rgb, boolean hasAlpha)
Π²Π²ΠΎΠ΄ΡΡ ΡΠ΅ΡΠ²Π΅ΡΡΡΡ ΡΠΎΡΡΠ°Π²Π»ΡΡΡΡΡ ΡΠ²Π΅ΡΠ°, ΡΠ°ΠΊ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΡ «Π°Π»ΡΡΡ», ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΡΡ ΠΏΡΠΎΠ·ΡΠ°ΡΠ½ΠΎΡΡΡ ΡΠ²Π΅ΡΠ°. ΠΡΠ° ΡΠΎΡΡΠ°Π²Π»ΡΡΡΠ°Ρ ΠΏΡΠΎΡΠ²Π»ΡΠ΅Ρ ΡΠ΅Π±Ρ ΠΏΡΠΈ Π½Π°Π»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ²Π΅ΡΠ° Π½Π° Π΄ΡΡΠ³ΠΎΠΉ. ΠΡΠ»ΠΈ Π°Π»ΡΡΠ° ΡΠ°Π²Π½Π° 255 ΠΈΠ»ΠΈ 1.0, ΡΠΎ ΡΠ²Π΅Ρ ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ Π½Π΅ΠΏΡΠΎΠ·ΡΠ°ΡΠ΅Π½, ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠΉ ΡΠ²Π΅Ρ Π½Π΅ ΠΏΡΠΎΡΠ²Π΅ΡΠΈΠ²Π°Π΅Ρ ΡΠΊΠ²ΠΎΠ·Ρ Π½Π΅Π³ΠΎ. ΠΡΠ»ΠΈ Π°Π»ΡΡΠ° ΡΠ°Π²Π½Π° 0 ΠΈΠ»ΠΈ 0.0, ΡΠΎ ΡΠ²Π΅Ρ Π°Π±ΡΠΎΠ»ΡΡΠ½ΠΎ ΠΏΡΠΎΠ·ΡΠ°ΡΠ΅Π½, Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠΈΠΊΡΠ΅Π»Ρ Π²ΠΈΠ΄Π΅Π½ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠΉ ΡΠ²Π΅Ρ.
ΠΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΠΈΠ· ΡΡΠΈΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠΎΠ² ΡΡΠΈΡΡΠ²Π°Π΅Ρ ΡΠΎΡΡΠ°Π²Π»ΡΡΡΡΡ Π°Π»ΡΡΠ°, Π½Π°Ρ ΠΎΠ΄ΡΡΡΡΡΡ Π² Π±ΠΈΡΠ°Ρ 24—31, Π΅ΡΠ»ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ hasAlpha ΡΠ°Π²Π΅Π½ true. ΠΡΠ»ΠΈ ΠΆΠ΅ hasAlpha ΡΠ°Π²Π½ΠΎ false, ΡΠΎ ΡΠΎΡΡΠ°Π²Π»ΡΡΡΠ°Ρ Π°Π»ΡΡΠ° ΡΡΠΈΡΠ°Π΅ΡΡΡ ΡΠ°Π²Π½ΠΎΠΉ 255, Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΡΠΎΠ³ΠΎ, ΡΡΠΎ Π·Π°ΠΏΠΈΡΠ°Π½ΠΎ Π² ΡΡΠ°ΡΡΠΈΡ Π±ΠΈΡΠ°Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° rgb.
ΠΠ΅ΡΠ²ΡΠ΅ ΡΡΠΈ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ° ΡΠΎΠ·Π΄Π°ΡΡ Π½Π΅ΠΏΡΠΎΠ·ΡΠ°ΡΠ½ΡΠΉ ΡΠ²Π΅Ρ Ρ Π°Π»ΡΡΠΎΠΉ, ΡΠ°Π²Π½ΠΎΠΉ 255 ΠΈΠ»ΠΈ 1.0.
Π‘Π΅Π΄ΡΠΌΠΎΠΉ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ
Color (ColorSpace cspace, float[] components, float alpha)
ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΠ²Π΅Ρ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΠ²Π΅ΡΠΎΠ²ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ (color model) RGB, Π½ΠΎ ΠΈ Π² Π΄ΡΡΠ³ΠΈΡ ΠΌΠΎΠ΄Π΅Π»ΡΡ : CMYK, HSB, CIEXYZ, ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ ΠΊΠ»Π°ΡΡΠ° ColorSpace.
ΠΠ»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ²Π΅ΡΠ° Π² ΠΌΠΎΠ΄Π΅Π»ΠΈ HSB ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ
getHSBColor (float hue, float saturation, float brightness).
ΠΡΠ»ΠΈ Π½Π΅Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΡΡΠ°ΡΠ΅Π»ΡΠ½ΠΎ ΠΏΠΎΠ΄Π±ΠΈΡΠ°ΡΡ ΡΠ²Π΅ΡΠ°, ΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΡΡΠΈΠ½Π°Π΄ΡΠ°ΡΠΈ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΊΠΎΠ½ΡΡΠ°Π½Ρ ΡΠΈΠΏΠ° Color, ΠΈΠΌΠ΅ΡΡΠΈΡ ΡΡ Π² ΠΊΠ»Π°ΡΡΠ΅ Color. ΠΠΎΠΏΡΠ΅ΠΊΠΈ ΡΠΎΠ³Π»Π°ΡΠ΅Π½ΠΈΡ «Code Conventions» ΠΎΠ½ΠΈ Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡΡΡ ΡΡΡΠΎΡΠ½ΡΠΌΠΈ Π±ΡΠΊΠ²Π°ΠΌΠΈ: black, blue, cyan, darkGray, gray, green, lightGray, magenta, orange, pink, red, white, yellow.
ΠΠ΅ΡΠΎΠ΄Ρ ΠΊΠ»Π°ΡΡΠ° Color ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠΎΡΡΠ°Π²Π»ΡΡΡΠΈΠ΅ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΡΠ²Π΅ΡΠ°: getRed (), getGreen (), getBlue (), getAlpha (), getRGB (), getColorSpace (), getComponents ().
ΠΠ²Π° ΠΌΠ΅ΡΠΎΠ΄Π° ΡΠΎΠ·Π΄Π°ΡΡ Π±ΠΎΠ»Π΅Π΅ ΡΡΠΊΠΈΠΉ brighter () ΠΈ Π±ΠΎΠ»Π΅Π΅ ΡΠ΅ΠΌΠ½ΡΠΉ darker () ΡΠ²Π΅ΡΠ° ΠΏΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ ΡΠ΅ΠΊΡΡΠΈΠΌ ΡΠ²Π΅ΡΠΎΠΌ. ΠΠ½ΠΈ ΠΏΠΎΠ»Π΅Π·Π½Ρ, Π΅ΡΠ»ΠΈ Π½Π°Π΄ΠΎ Π²ΡΠ΄Π΅Π»ΠΈΡΡ Π°ΠΊΡΠΈΠ²Π½ΡΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΠΈΠ»ΠΈ, Π½Π°ΠΎΠ±ΠΎΡΠΎΡ, ΠΏΠΎΠΊΠ°Π·Π°ΡΡ Π½Π΅Π°ΠΊΡΠΈΠ²Π½ΡΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Π±Π»Π΅Π΄Π½Π΅Π΅ ΠΎΡΡΠ°Π»ΡΠ½ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ².
ΠΠ²Π° ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΌΠ΅ΡΠΎΠ΄Π° Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ ΡΠ²Π΅Ρ, ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½Π½ΡΠΉ ΠΈΠ· ΡΠ²Π΅ΡΠΎΠ²ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ RGB Π² HSB ΠΈ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ:
float[] RGBtoHSB (int red, int green, int blue, float[] hsb)
int HSBtoRGB (int hue, int saturation, int brightness)
Π‘ΠΎΠ·Π΄Π°Π² ΡΠ²Π΅Ρ, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈΠΌ Π² Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅.
ΠΠ°ΠΊ Π½Π°ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ΅ΡΡΠ΅ΠΆ
ΠΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΌΠ΅ΡΠΎΠ΄ ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ
drawLine (int x1, int y1, int Ρ 2, int y2)
Π²ΡΡΠ΅ΡΡΠΈΠ²Π°Π΅Ρ ΡΠ΅ΠΊΡΡΠΈΠΌ ΡΠ²Π΅ΡΠΎΠΌ ΠΎΡΡΠ΅Π·ΠΎΠΊ ΠΏΡΡΠΌΠΎΠΉ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΎΡΠΊΠ°ΠΌΠΈ Ρ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ°ΠΌΠΈ (x1, y1) ΠΈ (Ρ 2, Ρ2).
ΠΠ΄Π½ΠΎΠ³ΠΎ ΡΡΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π° Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ, ΡΡΠΎΠ±Ρ, Π½Π°ΡΠΈΡΠΎΠ²Π°ΡΡ Π»ΡΠ±ΡΡ ΠΊΠ°ΡΡΠΈΠ½Ρ ΠΏΠΎ ΡΠΎΡΠΊΠ°ΠΌ, Π²ΡΡΠ΅ΡΡΠΈΠ²Π°Ρ ΠΊΠ°ΠΆΠ΄ΡΡ ΡΠΎΡΠΊΡ Ρ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ°ΠΌΠΈ (Ρ , Ρ) ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ drawLine (x, Ρ, Ρ , Ρ) ΠΈ ΠΌΠ΅Π½ΡΡ ΡΠ²Π΅ΡΠ° ΠΎΡ ΡΠΎΡΠΊΠΈ ΠΊ ΡΠΎΡΠΊΠ΅. ΠΠΎ Π½ΠΈΠΊΡΠΎ, ΡΠ°Π·ΡΠΌΠ΅Π΅ΡΡΡ, Π½Π΅ ΡΡΠ°Π½Π΅Ρ ΡΡΠΎΠ³ΠΎ Π΄Π΅Π»Π°ΡΡ.
ΠΡΡΠ³ΠΈΠ΅ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Ρ:
Β· drawRect (int x, int Ρ, int width, int height) — ΡΠ΅ΡΡΠΈΡ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊ ΡΠΎ ΡΡΠΎΡΠΎΠ½Π°ΠΌΠΈ, ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΡΠΌΠΈ ΠΊΡΠ°ΡΠΌ ΡΠΊΡΠ°Π½Π°, Π·Π°Π΄Π°Π²Π°Π΅ΠΌΡΠΉ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ°ΠΌΠΈ Π²Π΅ΡΡ Π½Π΅Π³ΠΎ Π»Π΅Π²ΠΎΠ³ΠΎ ΡΠ³Π»Π° (Ρ , Ρ), ΡΠΈΡΠΈΠ½ΠΎΠΉ width ΠΏΠΈΠΊΡΠ΅Π»ΠΎΠ² ΠΈ Π²ΡΡΠΎΡΠΎΠΉ height ΠΏΠΈΠΊΡΠ΅Π»ΠΎΠ²;
Β· draw3DRect (int x, int Ρ, int width, int height, boolean raised) — ΡΠ΅ΡΡΠΈΡ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊ, ΠΊΠ°ΠΊ Π±ΡΠ΄ΡΠΎ Π²ΡΠ΄Π΅Π»ΡΡΡΠΈΠΉΡΡ ΠΈΠ· ΠΏΠ»ΠΎΡΠΊΠΎΡΡΠΈ ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ, Π΅ΡΠ»ΠΈ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ raised ΡΠ°Π²Π΅Π½ true, ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ Π±ΡΠ΄ΡΠΎ Π²Π΄Π°Π²Π»Π΅Π½Π½ΡΠΉ Π² ΠΏΠ»ΠΎΡΠΊΠΎΡΡΡ, Π΅ΡΠ»ΠΈ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ raised ΡΠ°Π²Π΅Π½ false;
Β· drawOval (int x, int Ρ, int width, int height) — ΡΠ΅ΡΡΠΈΡ ΠΎΠ²Π°Π», Π²ΠΏΠΈΡΠ°Π½Π½ΡΠΉ Π² ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊ, Π·Π°Π΄Π°Π½Π½ΡΠΉ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ ΠΌΠ΅ΡΠΎΠ΄Π°. ΠΡΠ»ΠΈ width == height, ΡΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡΡ ΠΎΠΊΡΡΠΆΠ½ΠΎΡΡΡ;
Β· drawArc (int x, int Ρ, int width, int height, int startAngle, int arc) — ΡΠ΅ΡΡΠΈΡ Π΄ΡΠ³Ρ ΠΎΠ²Π°Π»Π°, Π²ΠΏΠΈΡΠ°Π½Π½ΠΎΠ³ΠΎ Π² ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊ, Π·Π°Π΄Π°Π½Π½ΡΠΉ ΠΏΠ΅ΡΠ²ΡΠΌΠΈ ΡΠ΅ΡΡΡΡΠΌΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ. ΠΡΠ³Π° ΠΈΠΌΠ΅Π΅Ρ Π²Π΅Π»ΠΈΡΠΈΠ½Ρ arc Π³ΡΠ°Π΄ΡΡΠΎΠ² ΠΈ ΠΎΡΡΡΠΈΡΡΠ²Π°Π΅ΡΡΡ ΠΎΡ ΡΠ³Π»Π° startAngle. Π£Π³ΠΎΠ» ΠΎΡΡΡΠΈΡΡΠ²Π°Π΅ΡΡΡ Π² Π³ΡΠ°Π΄ΡΡΠ°Ρ ΠΎΡ ΠΎΡΠΈ ΠΡ . ΠΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΡΠ³ΠΎΠ» ΠΎΡΡΡΠΈΡΡΠ²Π°Π΅ΡΡΡ ΠΏΡΠΎΡΠΈΠ² ΡΠ°ΡΠΎΠ²ΠΎΠΉ ΡΡΡΠ΅Π»ΠΊΠΈ, ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΡΠΉ — ΠΏΠΎ ΡΠ°ΡΠΎΠ²ΠΎΠΉ ΡΡΡΠ΅Π»ΠΊΠ΅;
Β· drawRoundRect (int x, int Ρ, int width, int height, int arcWidth, int arcHeight) — ΡΠ΅ΡΡΠΈΡ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊ Ρ Π·Π°ΠΊΡΡΠ³Π»Π΅Π½Π½ΡΠΌΠΈ ΠΊΡΠ°ΡΠΌΠΈ. ΠΠ°ΠΊΡΡΠ³Π»Π΅Π½ΠΈΡ Π²ΡΡΠ΅ΡΡΠΈΠ²Π°ΡΡΡΡ ΡΠ΅ΡΠ²Π΅ΡΡΠΈΠ½ΠΊΠ°ΠΌΠΈ ΠΎΠ²Π°Π»ΠΎΠ², Π²ΠΏΠΈΡΠ°Π½Π½ΡΡ Π² ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠΈ ΡΠΈΡΠΈΠ½ΠΎΠΉ arcwidth ΠΈ Π²ΡΡΠΎΡΠΎΠΉ arcHeight, ΠΏΠΎΡΡΡΠΎΠ΅Π½Π½ΡΠ΅ Π² ΡΠ³Π»Π°Ρ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ³ΠΎ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠ°;
Β· drawPolyline (int[] xPoints, int[] yPoints, int nPoints) — ΡΠ΅ΡΡΠΈΡ Π»ΠΎΠΌΠ°Π½ΡΡ Ρ Π²Π΅ΡΡΠΈΠ½Π°ΠΌΠΈ Π² ΡΠΎΡΠΊΠ°Ρ (xPoints[i], ypoints[i]) ΠΈ ΡΠΈΡΠ»ΠΎΠΌ Π²Π΅ΡΡΠΈΠ½ nPoints;
Β· drawPolygon (int[] xPoints, int[] yPoints, int nPoints) — ΡΠ΅ΡΡΠΈΡ Π»ΠΎΠΌΠ°Π½ΡΡ, ΠΏΡΠΎΠ²ΠΎΠ΄Ρ Π·Π°ΠΌΡΠΊΠ°ΡΡΠΈΠΉ ΠΎΡΡΠ΅Π·ΠΎΠΊ ΠΏΡΡΠΌΠΎΠΉ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΠ΅ΡΠ²ΠΎΠΉ ΠΈ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ ΡΠΎΡΠΊΠΎΠΉ;
Β· drawFoiygon (Polygon p) — ΡΠ΅ΡΡΠΈΡ Π·Π°ΠΌΠΊΠ½ΡΡΡΡ Π»ΠΎΠΌΠ°Π½ΡΡ, Π²Π΅ΡΡΠΈΠ½Ρ ΠΊΠΎΡΠΎΡΠΎΠΉ Π·Π°Π΄Π°Π½Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ Ρ ΠΊΠ»Π°ΡΡΠ° Polygon.
ΠΠ»Π°ΡΡ Polygon
ΠΡΠΎΡ ΠΊΠ»Π°ΡΡ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΠΌΠ½ΠΎΠ³ΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠΎΠΌ, Π² ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, Ρ ΡΡΠ΅ΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠ°ΠΌΠΈ ΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΡΠΌΠΈ ΡΠ΅ΡΡΡΠ΅Ρ ΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠ°ΠΌΠΈ.
ΠΠ±ΡΠ΅ΠΊΡΡ ΡΡΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ Π΄Π²ΡΠΌΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ°ΠΌΠΈ:
Β· Polygon () — ΡΠΎΠ·Π΄Π°Π΅Ρ ΠΏΡΡΡΠΎΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ;
Β· Polygon (int[] xPoints, int[] yPoints, int nPoints) — Π·Π°Π΄Π°ΡΡΡΡ Π²Π΅ΡΡΠΈΠ½Ρ ΠΌΠ½ΠΎΠ³ΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠ° (xPoints[i], yPoints[i]) ΠΈ ΠΈΡ ΡΠΈΡΠ»ΠΎ nPoints
ΠΠΎΡΠ»Π΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π² Π½Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ Π²Π΅ΡΡΠΈΠ½Ρ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ
addPoint (int x, int Ρ)
ΠΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ contains () ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ, Π½Π΅ Π»Π΅ΠΆΠΈΡ Π»ΠΈ Π² ΠΌΠ½ΠΎΠ³ΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠ΅ Π·Π°Π΄Π°Π½Π½Π°Ρ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ ΠΌΠ΅ΡΠΎΠ΄Π° ΡΠΎΡΠΊΠ°, ΠΎΡΡΠ΅Π·ΠΎΠΊ ΠΏΡΡΠΌΠΎΠΉ ΠΈΠ»ΠΈ ΡΠ΅Π»ΡΠΉ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊ ΡΠΎ ΡΡΠΎΡΠΎΠ½Π°ΠΌΠΈ, ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΡΠΌΠΈ ΡΡΠΎΡΠΎΠ½Π°ΠΌ ΡΠΊΡΠ°Π½Π°.
ΠΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ intersects () ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ, Π½Π΅ ΠΏΠ΅ΡΠ΅ΡΠ΅ΠΊΠ°Π΅ΡΡΡ Π»ΠΈ Ρ Π΄Π°Π½Π½ΡΠΌ ΠΌΠ½ΠΎΠ³ΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠΎΠΌ ΠΎΡΡΠ΅Π·ΠΎΠΊ ΠΏΡΡΠΌΠΎΠΉ, Π·Π°Π΄Π°Π½Π½ΡΠΉ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ ΠΌΠ΅ΡΠΎΠ΄Π°, ΠΈΠ»ΠΈ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊ ΡΠΎ ΡΡΠΎΡΠΎΠ½Π°ΠΌΠΈ, ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΡΠΌΠΈ ΡΡΠΎΡΠΎΠ½Π°ΠΌ ΡΠΊΡΠ°Π½Π°.
ΠΠ΅ΡΠΎΠ΄Ρ getBounds () ΠΈ getBounds2D () Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊ, ΡΠ΅Π»ΠΈΠΊΠΎΠΌ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ Π² ΡΠ΅Π±Π΅ Π΄Π°Π½Π½ΡΠΉ ΠΌΠ½ΠΎΠ³ΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊ.
ΠΠ΅ΡΠ½Π΅ΠΌΡΡ ΠΊ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌ ΠΊΠ»Π°ΡΡΠ° Graphics. ΠΠ΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² Π²ΡΡΠ΅ΡΡΠΈΠ²Π°ΡΡ ΡΠΈΠ³ΡΡΡ, Π·Π°Π»ΠΈΡΡΠ΅ ΡΠ΅ΠΊΡΡΠΈΠΌ ΡΠ²Π΅ΡΠΎΠΌ: fillRect (), fill3DRect (), fillArc (), fillOval (), fillPolygon (), fillRoundRect (). Π£ Π½ΠΈΡ ΡΠ°ΠΊΠΈΠ΅ ΠΆΠ΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ, ΠΊΠ°ΠΊ ΠΈ Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ², Π²ΡΡΠ΅ΡΡΠΈΠ²Π°ΡΡΠΈΡ Π½Π΅Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Π½ΡΠ΅ ΡΠΈΠ³ΡΡΡ.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΠ²Π΅Ρ ΡΠΎΠ½Π° ΠΎΠ±Π»Π°ΡΡΠΈ ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΡΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ Π½ΠΎΠ²ΡΠΉ ΡΠ΅ΠΊΡΡΠΈΠΉ ΡΠ²Π΅Ρ ΠΈ Π½Π°ΡΠ΅ΡΡΠΈΡΠ΅ ΠΈΠΌ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Π½ΡΠΉ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊ Π²Π΅Π»ΠΈΡΠΈΠ½ΠΎΠΉ Π²ΠΎ Π²ΡΡ ΠΎΠ±Π»Π°ΡΡΡ:
public void paint (Graphics g)(
Color initColor = g. getColor (); // Π‘ΠΎΡ ΡΠ°Π½ΡΠ΅ΠΌ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΡΠ²Π΅Ρ
g.setColor (new Color (0, 0, 255)); // Π£ΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ ΡΠ²Π΅Ρ ΡΠΎΠ½Π°
// ΠΠ°Π»ΠΈΠ²Π°Π΅ΠΌ ΠΎΠ±Π»Π°ΡΡΡ ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ
g.fillRect (0, 0, getSize ().width-1, getSize ().height-1);
g.setColor (initColor); // ΠΠΎΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΡΠ²Π΅Ρ
// ΠΠ°Π»ΡΠ½Π΅ΠΉΡΠΈΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ
}
ΠΠ°ΠΊ Π²ΠΈΠ΄Π½ΠΎ, Π² ΠΊΠ»Π°ΡΡΠ΅ Graphics ΡΠΎΠ±ΡΠ°Π½Ρ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ°ΠΌΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ ΡΡΠ΅Π΄ΡΡΠ²Π° ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΠ΅Ρ Π΄Π°ΠΆΠ΅ ΠΌΠ΅ΡΠΎΠ΄Π°, Π·Π°Π΄Π°ΡΡΠ΅Π³ΠΎ ΡΠ²Π΅Ρ ΡΠΎΠ½Π° (Ρ ΠΎΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°ΡΡ ΡΠ²Π΅Ρ ΡΠΎΠ½Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ setBackground () ΠΊΠ»Π°ΡΡΠ° Π‘omponent). Π‘ΡΠ΅Π΄ΡΡΠ²Π° ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ, Π²ΡΠ²ΠΎΠ΄Π° ΡΠ΅ΠΊΡΡΠ° Π² ΠΎΠ±Π»Π°ΡΡΡ ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ Π²ΡΠ²ΠΎΠ΄Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½Ρ ΠΈ ΡΠ°ΡΡΠΈΡΠ΅Π½Ρ Π² ΠΏΠΎΠ΄ΠΊΠ»Π°ΡΡΠ΅ Graphics2D, Π²Ρ ΠΎΠ΄ΡΡΠ΅ΠΌ Π² ΡΠΈΡΡΠ΅ΠΌΡ Java 2D. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π² Π½Π΅ΠΌ Π΅ΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ Π·Π°Π΄Π°Π½ΠΈΡ ΡΠ²Π΅ΡΠ° ΡΠΎΠ½Π° setBackground (Color Ρ).
ΠΠ΅ΡΠ΅Π΄ ΡΠ΅ΠΌ ΠΊΠ°ΠΊ ΠΎΠ±ΡΠ°ΡΠΈΡΡΡΡ ΠΊ ΠΊΠ»Π°ΡΡΡ Graphics2D, ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΡΠ΅Π΄ΡΡΠ²Π° ΠΊΠ»Π°ΡΡΠ° Graphics Π΄Π»Ρ Π²ΡΠ²ΠΎΠ΄Π° ΡΠ΅ΠΊΡΡΠ°.
ΠΠ°ΠΊ Π²ΡΠ²Π΅ΡΡΠΈ ΡΠ΅ΠΊΡΡ
ΠΠ»Ρ Π²ΡΠ²ΠΎΠ΄Π° ΡΠ΅ΠΊΡΡΠ° Π² ΠΎΠ±Π»Π°ΡΡΡ ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ΅ΠΊΡΡΠΈΠΌ ΡΠ²Π΅ΡΠΎΠΌ ΠΈ ΡΡΠΈΡΡΠΎΠΌ, Π½Π°ΡΠΈΠ½Π°Ρ Ρ ΡΠΎΡΠΊΠΈ (Ρ , Ρ), Π², ΠΊΠ»Π°ΡΡΠ΅ Graphics Π΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ²:
Β· drawString (String s, int x, int y) — Π²ΡΠ²ΠΎΠ΄ΠΈΡ ΡΡΡΠΎΠΊΡ s;
Β· drawBytes (byte[] b, int offset, int length, int x, int Ρ) — Π²ΡΠ²ΠΎΠ΄ΠΈΡ length ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΌΠ°ΡΡΠΈΠ²Π° Π±Π°ΠΉΡΠΎΠ² b, Π½Π°ΡΠΈΠ½Π°Ρ Ρ ΠΈΠ½Π΄Π΅ΠΊΡΠ° offset;
Β· drawChars (char[] ch, int offset, int length, int x, int Ρ) — Π²ΡΠ²ΠΎΠ΄ΠΈΡ length ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΌΠ°ΡΡΠΈΠ²Π° ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² ch, Π½Π°ΡΠΈΠ½Π°Ρ Ρ ΠΈΠ½Π΄Π΅ΠΊΡΠ° offset.
Π§Π΅ΡΠ²Π΅ΡΡΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ Π²ΡΠ²ΠΎΠ΄ΠΈΡ ΡΠ΅ΠΊΡΡ, Π·Π°Π½Π΅ΡΠ΅Π½Π½ΡΠΉ Π² ΠΎΠ±ΡΠ΅ΠΊΡ ΠΊΠ»Π°ΡΡΠ°, ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡΠ΅Π³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ AttributedCharacterIterator. ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π·Π°Π΄Π°Π²Π°ΡΡ ΡΠ²ΠΎΠΉ ΡΡΠΈΡΡ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π²ΡΠ²ΠΎΠ΄ΠΈΠΌΠΎΠ³ΠΎ ΡΠΈΠΌΠ²Π±Π»Π°:
Β· drawString (AttributedCharacterIterator iter, int x, int y).Π’ΠΎΡΠΊΠ° (Ρ , Ρ) — ΡΡΠΎ Π»Π΅Π²Π°Ρ Π½ΠΈΠΆΠ½ΡΡ ΡΠΎΡΠΊΠ° ΠΏΠ΅ΡΠ²ΠΎΠΉ Π±ΡΠΊΠ²Ρ ΡΠ΅ΠΊΡΡΠ° Π½Π° Π±Π°Π·ΠΎΠ²ΠΎΠΉ Π»ΠΈΠ½ΠΈΠΈ (baseline) Π²ΡΠ²ΠΎΠ΄Π° ΡΡΠΈΡΡΠ°.
ΠΠ°ΠΊ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΡΠΈΡΡ
ΠΠ΅ΡΠΎΠ΄ setFont (Font newFont) ΠΊΠ»Π°ΡΡΠ° Graphics ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ ΡΠ΅ΠΊΡΡΠΈΠΉ ΡΡΠΈΡΡ Π΄Π»Ρ Π²ΡΠ²ΠΎΠ΄Π° ΡΠ΅ΠΊΡΡΠ°.
ΠΠ΅ΡΠΎΠ΄ getFont () Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠ΅ΠΊΡΡΠΈΠΉ ΡΡΠΈΡΡ.
ΠΠ°ΠΊ ΠΈ Π²ΡΠ΅ Π² ΡΠ·ΡΠΊΠ΅ Java, ΡΡΠΈΡΡ — ΡΡΠΎ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΊΠ»Π°ΡΡΠ° Font. ΠΠΎΡΠΌΠΎΡΡΠΈΠΌ, ΠΊΠ°ΠΊΠΈΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΡΠΎΡ ΠΊΠ»Π°ΡΡ.
ΠΠ°ΠΊ Π·Π°Π΄Π°ΡΡ ΡΡΠΈΡΡ
ΠΠ±ΡΠ΅ΠΊΡΡ ΠΊΠ»Π°ΡΡΠ° Font Ρ ΡΠ°Π½ΡΡ Π½Π°ΡΠ΅ΡΡΠ°Π½ΠΈΡ (glyphs) ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ², ΠΎΠ±ΡΠ°Π·ΡΡΡΠΈΠ΅ ΡΡΠΈΡΡ. ΠΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ Π΄Π²ΡΠΌΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ°ΠΌΠΈ:
Β· Font (Map attributes) — Π·Π°Π΄Π°Π΅Ρ ΡΡΠΈΡΡ Ρ Π·Π°Π΄Π°Π½Π½ΡΠΌΠΈ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠΌ attributes Π°ΡΡΠΈΠ±ΡΡΠ°ΠΌΠΈ. ΠΠ»ΡΡΠΈ Π°ΡΡΠΈΠ±ΡΡΠΎΠ² ΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π·Π°Π΄Π°ΡΡΡΡ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ°ΠΌΠΈ ΠΊΠ»Π°ΡΡΠ° TextAttnbute ΠΈΠ· ΠΏΠ°ΠΊΠ΅ΡΠ° java.awt.font. ΠΡΠΎΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠ΅Π½ Π΄Π»Ρ Java 2D ΠΈ Π±ΡΠ΄Π΅Ρ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½ Π΄Π°Π»Π΅Π΅.
Β· Font (String name, int style, int size) — Π·Π°Π΄Π°Π΅Ρ ΡΡΠΈΡΡ ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ name, ΡΠΎ ΡΡΠΈΠ»Π΅ΠΌ style ΠΈ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠΌ size ΡΠΈΠΏΠΎΠ³ΡΠ°ΡΡΠΊΠΈΡ ΠΏΡΠ½ΠΊΡΠΎΠ². ΠΡΠΎΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠ΅Π½ Π΄Π»Ρ JDK 1.1, Π½ΠΎ ΡΠΈΡΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΈ Π² Java 2D Π² ΡΠΈΠ»Ρ ΡΠ²ΠΎΠ΅ΠΉ ΠΏΡΠΎΡΡΠΎΡΡ.
Π’ΠΈΠΏΠΎΠ³ΡΠ°ΡΡΠΊΠΈΠΉ ΠΏΡΠ½ΠΊΡ Π² Π ΠΎΡΡΠΈΠΈ ΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ Π΅Π²ΡΠΎΠΏΠ΅ΠΉΡΠΊΠΈΡ ΡΡΡΠ°Π½Π°Ρ ΡΠ°Π²Π΅Π½ 0,376 ΠΌΠΌ, Π’ΠΎΡΠ½Π΅Π΅, 1/72 ΡΠ°ΡΡΠΈ ΡΡΠ°Π½ΡΡΠ·ΡΠΊΠΎΠ³ΠΎ Π΄ΡΠΉΠΌΠ°. Π Π°Π½Π³Π»ΠΎ-Π°ΠΌΠ΅ΡΠΈΠΊΠ°Π½ΡΠΊΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΌΠ΅Ρ ΠΏΡΠ½ΠΊΡ ΡΠ°Π²Π΅Π½ 1/72 ΡΠ°ΡΡΠΈ Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΎΠ³ΠΎ Π΄ΡΠΉΠΌΠ°, 0,351 ΠΌΠΌ. ΠΡΠΎΡ-ΡΠΎ ΠΏΡΠ½ΠΊΡ ΠΈ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π² ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½ΠΎΠΉ Π³ΡΠ°ΡΠΈΠΊΠ΅.
ΠΠΌΡ ΡΡΠΈΡΡΠ° name ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΡΡΠΎΠΊΠΎΠΉ Ρ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΡΡΠΈΡΡΠ°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, «Courier New», ΠΈΠ»ΠΈ ΠΎΠ΄Π½Π° ΠΈΠ· ΡΡΡΠΎΠΊ «Dialog», «Dialoglnput» ,' «Monospaced», «Serif», «SansSerif», «Symbol». ΠΡΠΎ ΡΠ°ΠΊ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΠ΅ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΈΠΌΠ΅Π½Π° ΡΡΠΈΡΡΠΎΠ² (logical font names). ΠΡΠ»ΠΈ name == null, ΡΠΎ Π·Π°Π΄Π°Π΅ΡΡΡ ΡΡΠΈΡΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ.
Π‘ΡΠΈΠ»Ρ ΡΡΠΈΡΡΠ° style — ΡΡΠΎ ΠΎΠ΄Π½Π° ΠΈΠ· ΠΊΠΎΠ½ΡΡΠ°Π½Ρ ΠΊΠ»Π°ΡΡΠ° Font:
Β· BOLD — ΠΏΠΎΠ»ΡΠΆΠΈΡΠ½ΡΠΉ;
Β· ITALIC — ΠΊΡΡΡΠΈΠ²;
Β· PLAIN — ΠΎΠ±ΡΡΠ½ΡΠΉ.
ΠΠΎΠ»ΡΠΆΠΈΡΠ½ΡΠΉ ΠΊΡΡΡΠΈΠ² (bolditalic) ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ΅ΠΉ ΠΏΠΎΠ±ΠΈΡΠΎΠ²ΠΎΠ³ΠΎ ΡΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Font. BOLD | Font. ITALIC.
ΠΡΠΈ Π²ΡΠ²ΠΎΠ΄Π΅ ΡΠ΅ΠΊΡΡΠ° Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΈΠΌΠ΅Π½Π°ΠΌ ΡΡΠΈΡΡΠΎΠ² ΠΈ ΡΡΠΈΠ»ΡΠΌ ΡΠΎΠΏΠΎΡΡΠ°Π²Π»ΡΡΡΡΡ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΈΠΌΠ΅Π½Π° ΡΡΠΈΡΡΠΎΠ² (font face name) ΠΈΠ»ΠΈ ΠΈΠΌΠ΅Π½Π° ΡΠ΅ΠΌΠ΅ΠΉΡΡΠ² ΡΡΠΈΡΡΠΎΠ² (font name). ΠΡΠΎ ΠΈΠΌΠ΅Π½Π° ΡΠ΅Π°Π»ΡΠ½ΡΡ ΡΡΠΈΡΡΠΎΠ², ΠΈΠΌΠ΅ΡΡΠΈΡ ΡΡ Π² Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠΌΡ ΠΈΠΌΠ΅Π½ΠΈ «Serif» ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠΎΠΏΠΎΡΡΠ°Π²Π»Π΅Π½ΠΎ ΠΈΠΌΡ ΡΠ΅ΠΌΠ΅ΠΉΡΡΠ²Π° (family) ΡΡΠΈΡΡΠΎΠ² Times New Roman, Π° Π² ΡΠΎΡΠ΅ΡΠ°Π½ΠΈΠΈ ΡΠΎ ΡΡΠΈΠ»ΡΠΌΠΈ — ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠ΅ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΈΠΌΠ΅Π½Π° Times New Roman Bold, Times New Roman Italic. ΠΡΠΈ ΡΡΠΈΡΡΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡΡ Π² ΡΠΎΡΡΠ°Π²Π΅ ΡΡΠΈΡΡΠΎΠ² Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Ρ, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΉ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.
Π‘ΠΏΠΈΡΠΎΠΊ ΠΈΠΌΠ΅Π½ Π΄ΠΎΡΡΡΠΏΠ½ΡΡ ΡΡΠΈΡΡΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ°ΠΌΠΈ:
Font[] fnt = Toolkit.getGraphicsEnvironment.getAHFonts ();
for (int i = 0; i< fnt. length; i++)
System.out.println (fnt[i]. getFontName ());
Π ΡΠΎΡΡΠ°Π² SUN J2SDK Π²Ρ ΠΎΠ΄ΠΈΡ ΡΠ΅ΠΌΠ΅ΠΉΡΡΠ²ΠΎ ΡΡΠΈΡΡΠΎΠ² Lucida. Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΠ² SDK, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π±ΡΡΡ ΡΠ²Π΅ΡΠ΅Π½Ρ, ΡΡΠΎ ΡΡΠΈ ΡΡΠΈΡΡΡ Π΅ΡΡΡ Π² Π²Π°ΡΠ΅ΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅.
Π’Π°Π±Π»ΠΈΡΡ ΡΠΎΠΏΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΡ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΡ ΠΈ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈΡ ΠΈΠΌΠ΅Π½ ΡΡΠΈΡΡΠΎΠ² Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ Π² ΡΠ°ΠΉΠ»Π°Ρ Ρ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ
Β· font. properties;
Β· font.properties.ar;
Β· font.properties.ja;
Β· font.properties.ru.
ΠΈ Ρ. Π΄. ΠΡΠΈ ΡΠ°ΠΉΠ»Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Ρ Π² JDK Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ jdkl.3jrelib ΠΈΠ»ΠΈ ΠΊΠ°ΠΊΠΎΠΌ-Π»ΠΈΠ±ΠΎ ΠΡΡΠ³ΠΎΠΌ ΠΏΠΎΠ΄ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ lib ΠΊΠΎΡΠ½Π΅Π²ΠΎΠ³ΠΎ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π° JDK ΡΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Ρ, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΉ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.
ΠΡΠΆΠ½ΡΠΉ ΡΠ°ΠΉΠ» Π²ΡΠ±ΠΈΡΠ°Π΅ΡΡΡ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½ΠΎΠΉ Java ΠΏΠΎ ΠΎΠΊΠΎΠ½ΡΠ°Π½ΠΈΠΈ ΠΈΠΌΠ΅Π½ΠΈ ΡΠ°ΠΉΠ»Π°. ΠΡΠΎ ΠΎΠΊΠΎΠ½ΡΠ°Π½ΠΈΠ΅ ΡΠΎΠ²ΠΏΠ°Π΄Π°Π΅Ρ Ρ ΠΌΠ΅ΠΆΠ΄ΡΠ½Π°ΡΠΎΠ΄Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ ΡΠ·ΡΠΊΠ°, ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π² Π»ΠΎΠΊΠ°Π»ΠΈ ΠΈΠ»ΠΈ Π² ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠΌ ΡΠ²ΠΎΠΉΡΡΠ²Π΅ user.language. ΠΡΠ»ΠΈ Ρ Π²Π°Ρ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π° ΡΡΡΡΠΊΠ°Ρ Π»ΠΎΠΊΠ°Π»Ρ Ρ ΠΌΠ΅ΠΆΠ΄ΡΠ½Π°ΡΠΎΠ΄Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ ΡΠ·ΡΠΊΠ° «ru», ΡΠΎ Π΄Π»Ρ ΡΠΎΠΏΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΡ Π±ΡΠ΄Π΅Ρ Π²ΡΠ±ΡΠ°Π½ ΡΠ°ΠΉΠ» font.properties.ru. ΠΡΠ»ΠΈ ΡΠ°ΠΊΠΎΠΉ ΡΠ°ΠΉΠ» Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½, ΡΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΡΠ°ΠΉΠ» font. properties, Π½Π΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ Π»ΠΎΠΊΠ°Π»ΠΈ.
ΠΡΠ°ΠΊ, ΡΠΎΠ±ΠΈΡΠ°ΡΡΡ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡ ΡΡΡΠΎΠΊΡ str Π² Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ drawString (), ΠΌΡ ΡΠΎΠ·Π΄Π°Π΅ΠΌ ΡΠ΅ΠΊΡΡΠΈΠΉ ΡΡΠΈΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠΎΠΌ ΠΊΠ»Π°ΡΡΠ° Font, ΡΠΊΠ°Π·ΡΠ²Π°Ρ Π² Π½Π΅ΠΌ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΈΠΌΡ ΡΡΠΈΡΡΠ°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, «Serif». ΠΡΠΏΠΎΠ»Π½ΡΡΡΠ°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° Java ΠΎΡΡΡΠΊΠΈΠ²Π°Π΅Ρ Π² ΡΠ°ΠΉΠ»Π΅ font. properties, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅ΠΌ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΌΡ ΡΠ·ΡΠΊΡ, ΡΠΎΠΏΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΡΠΉ ΡΡΠΎΠΌΡ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠΌΡ ΠΈΠΌΠ΅Π½ΠΈ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΡΠΈΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Times New Roman. ΠΡΠ»ΠΈ ΡΡΠΎ Unicode-ΡΡΠΈΡΡ, ΡΠΎ ΠΈΠ· Π½Π΅Π³ΠΎ ΠΈΠ·Π²Π»Π΅ΠΊΠ°ΡΡΡΡ Π½Π°ΡΠ΅ΡΡΠ°Π½ΠΈΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² ΡΡΡΠΎΠΊΠΈ str ΠΏΠΎ ΠΈΡ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠ΅ Unicode ΠΈ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΡΡ Π² Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ.
ΠΡΠΈ Π²ΡΠ²ΠΎΠ΄Π΅ ΡΡΡΠΎΠΊΠΈ Π² ΠΎΠΊΠ½ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΎΡΠ΅Π½Ρ ΡΠ°ΡΡΠΎ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠΈΡΡ Π΅Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π΄ΡΡΠ³ΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ: ΡΠ΅Π½ΡΡΠΈΡΠΎΠ²Π°ΡΡ, Π²ΡΠ²Π΅ΡΡΠΈ Π½Π°Π΄ ΠΈΠ»ΠΈ ΠΏΠΎΠ΄ Π΄ΡΡΠ³ΠΈΠΌ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π½Π°Π΄ΠΎ Π·Π½Π°ΡΡ ΠΌΠ΅ΡΡΠΈΠΊΡ ΡΡΡΠΎΠΊΠΈ: Π΅Π΅ Π²ΡΡΠΎΡΡ ΠΈ ΡΠΈΡΠΈΠ½Ρ. ΠΠ»Ρ ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠ² ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² ΠΈ ΡΡΡΠΎΠΊΠΈ Π² ΡΠ΅Π»ΠΎΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½ ΠΊΠ»Π°ΡΡ FontMetrics.
Π Java 2D ΠΊΠ»Π°ΡΡ FontMetrics Π·Π°ΠΌΠ΅Π½Π΅Π½ ΠΊΠ»Π°ΡΡΠΎΠΌ TextLayout. ΠΠ³ΠΎ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ Π² ΠΊΠΎΠ½ΡΠ΅ ΡΡΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π° ΡΠ΅ΠΉΡΠ°Ρ Π²ΡΡΡΠ½ΠΈΠΌ, ΠΊΠ°ΠΊΡΡ ΠΏΠΎΠ»ΡΠ·Ρ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·Π²Π»Π΅ΡΡ ΠΈΠ· ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΠΊΠ»Π°ΡΡΠ° FontMetrics.
ΠΠ»Π°ΡΡ FontMetrics
ΠΠ»Π°ΡΡ FontMetrics ΡΠ²Π»ΡΠ΅ΡΡΡ Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΡΠΌ, ΠΏΠΎΡΡΠΎΠΌΡ Π½Π΅Π»ΡΠ·Ρ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΅Π³ΠΎ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠΎΠΌ. ΠΠ»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΊΠ»Π°ΡΡΠ° FontMetrics, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ΅Π³ΠΎ Π½Π°Π±ΠΎΡ ΠΌΠ΅ΡΡΠΈΡΠ΅ΡΠΊΠΈΡ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊ ΡΡΠΈΡΡΠ° f, Π½Π°Π΄ΠΎ ΠΎΠ±ΡΠ°ΡΠΈΡΡΡΡ ΠΊ ΠΌΠ΅ΡΠΎΠ΄Ρ getFontMetrics (f) ΠΊΠ»Π°ΡΡΠ° Graphics ΠΈΠ»ΠΈ ΠΊΠ»Π°ΡΡΠ° Component.
ΠΠ»Π°ΡΡ FontMetrics ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ·Π½Π°ΡΡ ΡΠΈΡΠΈΠ½Ρ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠΈΠΌΠ²ΠΎΠ»Π° ch Π² ΠΏΠΈΠΊΡΠ΅Π»Π°Ρ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ charWidth (ch), ΠΎΠ±ΡΡΡ ΡΠΈΡΠΈΠ½Ρ Π²ΡΠ΅Ρ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² ΠΌΠ°ΡΡΠΈΠ²Π° ΠΈΠ»ΠΈ ΠΏΠΎΠ»ΠΌΠ°ΡΡΠΈΠ²Π° ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² ΠΈΠ»ΠΈ Π±Π°ΠΉΡΠΎΠ² ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌΠΈ getChars () ΠΈ getBytes (), ΡΠΈΡΠΈΠ½Ρ ΡΠ΅Π»ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ str Π² ΠΏΠΈΠΊΡΠ΅Π»Π°Ρ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ stringWidth (str).
ΠΠ΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ Π² ΠΏΠΈΠΊΡΠ΅Π»Π°Ρ Π²Π΅ΡΡΠΈΠΊΠ°Π»ΡΠ½ΡΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΡ ΡΡΠΈΡΡΠ°.
ΠΠ½ΡΠ΅ΡΠ»ΠΈΠ½ΡΡΠΆ (leading) — ΡΠ°ΡΡΡΠΎΡΠ½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ Π½ΠΈΠΆΠ½Π΅ΠΉ ΡΠΎΡΠΊΠΎΠΉ ΡΠ²ΠΈΡΠ°ΡΡΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΡΠ°ΠΊΠΈΡ Π±ΡΠΊΠ², ΠΊΠ°ΠΊ Ρ, Ρ ΠΈ Π²Π΅ΡΡ Π½Π΅ΠΉ ΡΠΎΡΠΊΠΎΠΉ Π²ΡΡΡΡΠΏΠ°ΡΡΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΡΠ°ΠΊΠΈΡ Π±ΡΠΊΠ², ΠΊΠ°ΠΊ Π±, Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΡΡΡΠΎΠΊΠ΅ — Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΌΠ΅ΡΠΎΠ΄ getLeading ().
Π‘ΡΠ΅Π΄Π½Π΅Π΅ ΡΠ°ΡΡΡΠΎΡΠ½ΠΈΠ΅ ΠΎΡ Π±Π°Π·ΠΎΠ²ΠΎΠΉ Π»ΠΈΠ½ΠΈΠΈ ΡΡΠΈΡΡΠ° Π΄ΠΎ Π²Π΅ΡΡ Π½Π΅ΠΉ ΡΠΎΡΠΊΠΈ ΠΏΡΠΎΠΏΠΈΡΠ½ΡΡ Π±ΡΠΊΠ² ΠΈ Π²ΡΡΡΡΠΏΠ°ΡΡΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΡΠΎΠΉ ΠΆΠ΅ ΡΡΡΠΎΠΊΠΈ (ascent) Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΌΠ΅ΡΠΎΠ΄ getAscent (), Π° ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ — ΠΌΠ΅ΡΠΎΠ΄ getMaxAscent ().
Π‘ΡΠ΅Π΄Π½Π΅Π΅ ΡΠ°ΡΡΡΠΎΡΠ½ΠΈΠ΅ ΡΠ²ΠΈΡΠ°ΡΡΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΎΡ Π±Π°Π·ΠΎΠ²ΠΎΠΉ Π»ΠΈΠ½ΠΈΠΈ ΡΠΎΠΉ ΠΆΠ΅ ΡΡΡΠΎΠΊΠΈ (descent) Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΌΠ΅ΡΠΎΠ΄ getDescent (), Π° ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ — ΠΌΠ΅ΡΠΎΠ΄ getMaxDescent ().
ΠΠ°ΠΊΠΎΠ½Π΅Ρ, Π²ΡΡΠΎΡΡ ΡΡΠΈΡΡΠ° (height) — ΡΡΠΌΠΌΡ ascent + descent + leading — Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΌΠ΅ΡΠΎΠ΄ getHeight (). ΠΡΡΠΎΡΠ° ΡΡΠΈΡΡΠ° ΡΠ°Π²Π½Π° ΡΠ°ΡΡΡΠΎΡΠ½ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ Π±Π°Π·ΠΎΠ²ΡΠΌΠΈ Π»ΠΈΠ½ΠΈΡΠΌΠΈ ΡΠΎΡΠ΅Π΄Π½ΠΈΡ ΡΡΡΠΎΠΊ.
ΠΡΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ Π½Π° ΡΠΈΡ. 1.
Π ΠΈΡ. 1. ΠΠ»Π΅ΠΌΠ΅Π½ΡΡ ΡΡΠΈΡΡΠ°
ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ ΡΡΠΈΡΡΠ° ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌΠΈ ΠΊΠ»Π°ΡΡΠ° LineMetrics ΠΈΠ· ΠΏΠ°ΠΊΠ΅ΡΠ° java.awt.font. ΠΠ±ΡΠ΅ΠΊΡ ΡΡΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌΠΈ getLineMetrics () ΠΊΠ»Π°ΡΡΠ° FontMetrics.
ΠΡΠΈΠΌΠ΅Ρ 1 ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²ΠΎΠ² ΠΈ ΡΡΠΈΡΡΠΎΠ², Π° ΡΠΈΡ. 2 — ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈΠ· ΡΡΠΎΠ³ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ°.
ΠΡΠΈΠΌΠ΅Ρ 1. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²ΠΎΠ² ΠΈ ΡΡΠΈΡΡΠΎΠ²
import java.awt.*;
import j ava.awt.event.*;
class GraphTest extends Frame{
GraphTest (String s) {
super (s);
setBounds (0, 0, 500, 300);
setVisible (true);
}
public void paint (Graphics g){
Dimension d = getSize ();
int dx=d.width/20, dy=d.height/20;
g.drawRect (dx, dy+20, d. width-2*dx, d. height-2*dy-20);
g.drawRoundRect (2*dx, 2*dy+20, d. width-4*dx, d. height-4*dy-20, dx, dy);
g.fillArctd.width (2-dx, d. height-2*dy+1, 2*dx, dy-1, 0, 360);
g.drawArctd.width (2−3*dx, d. height-3*dy/2−5, dx, dy/2, 0, 360);
g.drawArctd.width (2+2*dx, d. height-3*dy/2 — 5, dx, dy/2, 0, 360);
Font fl = new Font («Serif», Font. BOLD (Font.ITALIC, 2*dy);
Font f2 = new Font («Serif», Font. BOLD, 5*dy/2);
FontMetrics fml = getFontMetrics (fl);
FontMetrics fm2 = getFontMetrics (f2);
String s1 = «ΠΡΡΠΊΠ°Ρ ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ ΠΎΡΠΈΠ±ΠΊΠ°» ;
String s2 = «ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠ΅Π΄ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ.» ;
String s3 = «ΠΠ°ΠΊΠΎΠ½ ΠΎΡΠ»Π°Π΄ΠΊΠΈ» ;
int firstLine = d. height/3;
int nextLine = fml. getHeight ();
int secondLine = firstLine+nextLine/2;
g.setFont (f2);
g.drawstring (s3, (d.width-fm2.stringWidth (s3))/2, firstLine);
g.drawLine (d.width/4, secondLine-2, 3*d.width/4, secondLine-2);
g.drawLine (d.width/4, secondLine—1, 3*d.width/4, secondLine-1);
g.drawLine (d.width/4, secondLine, 3*d.width/4, secondLine);
g.setFont (fl);
g.drawstring (s1,(d.width-fml.stringWidth (s1))/2, firstLine+2*nextLine);
g.drawString (s2,(d.width-fml.stringWidth (s2))/2, firstLine+3*nextLine);
}
public static void main (String[] args){
GraphTest f = new GraphTest («ΠΡΠΈΠΌΠ΅Ρ ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ»);
f.addWindowListener (new WindowAdapter (){
public void windowClosing (WindowEvent ev){
System.exit (0);
}
});
}
}
Π ΠΏΡΠΈΠΌΠ΅ΡΠ΅ 1 ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ ΠΏΡΠΎΡΡΠΎΠΉ ΠΊΠ»Π°ΡΡ Dimension, Π³Π»Π°Π²Π½Π°Ρ Π·Π°Π΄Π°ΡΠ° ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ — Ρ ΡΠ°Π½ΠΈΡΡ ΡΠΈΡΠΈΠ½Ρ ΠΈ Π²ΡΡΠΎΡΡ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π² ΡΠ²ΠΎΠΈΡ ΠΏΠΎΠ»ΡΡ width ΠΈ height. ΠΠ΅ΡΠΎΠ΄ getSize () ΠΊΠ»Π°ΡΡΠ° component Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠ°Π·ΠΌΠ΅ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° Π² Π²ΠΈΠ΄Π΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΊΠ»Π°ΡΡΠ° Dimension. Π ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ 1 ΡΠ°Π·ΠΌΠ΅ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° f ΡΠΈΠΏΠ° GrapTest ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Ρ Π² ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ setBounds () ΡΠ°Π²Π½ΡΠΌΠΈ 500×300 ΠΏΠΈΠΊΡΠ΅Π»ΠΎΠ².
ΠΡΠ΅ ΠΎΠ΄Π½Π° ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠ° 1 — Π΄Π»Ρ Π²ΡΡΠ΅ΡΡΠΈΠ²Π°Π½ΠΈΡ ΡΠΎΠ»ΡΡΠΎΠΉ Π»ΠΈΠ½ΠΈΠΈ, ΠΎΡΠ΄Π΅Π»ΡΡΡΠ΅ΠΉ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ ΠΎΡ ΡΠ΅ΠΊΡΡΠ°, ΠΏΡΠΈΡΠ»ΠΎΡΡ ΠΏΡΠΎΠ²Π΅ΡΡΠΈ ΡΡΠΈ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΡΠ΅ ΠΏΡΡΠΌΡΠ΅ Π½Π° ΡΠ°ΡΡΡΠΎΡΠ½ΠΈΠΈ ΠΎΠ΄ΠΈΠ½ ΠΏΠΈΠΊΡΠ΅Π» Π΄ΡΡΠ³ ΠΎΡ Π΄ΡΡΠ³Π°.
Π ΠΈΡ. 2. ΠΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΊΠ»Π°ΡΡΠ° Graphics
ΠΠ°ΠΊ Π²Ρ ΡΠ²ΠΈΠ΄Π΅Π»ΠΈ ΠΈΠ· ΠΎΠ±Π·ΠΎΡΠ° ΠΊΠ»Π°ΡΡΠ° Graphics ΠΈ ΡΠΎΠΏΡΡΡΡΠ²ΡΡΡΠΈΡ Π΅ΠΌΡ ΠΊΠ»Π°ΡΡΠΎΠ², ΡΡΠ΅Π΄ΡΡΠ²Π° ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ Π²ΡΠ²ΠΎΠ΄Π° ΡΠ΅ΠΊΡΡΠ° Π² ΡΡΠΎΠΌ ΠΊΠ»Π°ΡΡΠ΅ Π²Π΅ΡΡΠΌΠ° ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Ρ. ΠΠΈΠ½ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΏΠ»ΠΎΡΠ½ΡΠ΅ ΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΎΠ»ΡΠΈΠ½ΠΎΠΉ Π² ΠΎΠ΄ΠΈΠ½ ΠΏΠΈΠΊΡΠ΅Π», ΡΠ΅ΠΊΡΡ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π³ΠΎΡΠΈΠ·ΠΎΠ½ΡΠ°Π»ΡΠ½ΠΎ ΠΈ ΡΠ»Π΅Π²Π° Π½Π°ΠΏΡΠ°Π²ΠΎ, Π½Π΅ ΡΡΠΈΡΡΠ²Π°ΡΡΡΡ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²Π° Π²ΡΠ²ΠΎΠ΄Π°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΠΊΡΠ°Π½Π°.
ΠΡΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΠΎΠΉΡΠΈ ΡΠ°Π·Π½ΡΠΌΠΈ Ρ ΠΈΡΡΠΎΡΡΡΠΌΠΈ: ΡΠ΅ΡΡΠΈΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΡΡ Π»ΠΈΠ½ΠΈΠΉ, ΠΏΡΠΈΠΆΠ°ΡΡΡ Π΄ΡΡΠ³ ΠΊ Π΄ΡΡΠ³Ρ, ΠΊΠ°ΠΊ Π² ΠΏΡΠΈΠΌΠ΅ΡΠ΅ 1, ΠΈΠ»ΠΈ ΡΠ·ΠΊΠΈΠΉ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Π½ΡΠΉ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊ, Π²ΡΠ²ΠΎΠ΄ΠΈΡΡ ΡΠ΅ΠΊΡΡ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΉ Π±ΡΠΊΠ²Π΅, ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΠΊΡΠ°Π½Π° ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ getScreenSize () ΠΊΠ»Π°ΡΡΠ° Java.awt.Toolkit ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ Π² Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΌ. ΠΠΎ Π²ΡΠ΅ ΡΡΠΎ Π·Π°ΡΡΡΠ΄Π½ΡΠ΅Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅, Π»ΠΈΡΠ°Π΅Ρ Π΅Π³ΠΎ ΡΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ ΠΈ Π΅ΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΡΡΠΈ.
Π Java 2 ΠΊΠ»Π°ΡΡ Graphics, Π² ΡΠ°ΠΌΠΊΠ°Ρ ΡΠΈΡΡΠ΅ΠΌΡ Java 2D, Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ°ΡΡΠΈΡΠ΅Π½ ΠΊΠ»Π°ΡΡΠΎΠΌ Graphics2D.
ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Java 2D
Π ΡΠΈΡΡΠ΅ΠΌΡ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² ΠΈ ΠΊΠ»Π°ΡΡΠΎΠ² Java 2D, ΠΎΡΠ½ΠΎΠ²Π° ΠΊΠΎΡΠΎΡΠΎΠΉ— ΠΊΠ»Π°ΡΡ Graphics2D ΠΏΠ°ΠΊΠ΅ΡΠ° java. awt, Π²Π½Π΅ΡΠ΅Π½ΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈΠ½ΡΠΈΠΏΠΈΠ°Π»ΡΠ½ΠΎ Π½ΠΎΠ²ΡΡ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ:
Β· ΠΡΠΎΠΌΠ΅ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ, ΠΏΡΠΈΠ½ΡΡΠΎΠΉ Π² ΠΊΠ»Π°ΡΡΠ΅ Graphics ΠΈ Π½Π°Π·Π²Π°Π½Π½ΠΎΠΉ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ½ΡΠΌ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ (User Space), Π²Π²Π΅Π΄Π΅Π½Π° Π΅ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΠ° ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ ΡΡΡΡΠΎΠΉΡΡΠ²Π° Π²ΡΠ²ΠΎΠ΄Π° (Device Space): ΡΠΊΡΠ°Π½Π° ΠΌΠΎΠ½ΠΈΡΠΎΡΠ°, ΠΏΡΠΈΠ½ΡΠ΅ΡΠ°. ΠΠ΅ΡΠΎΠ΄Ρ ΠΊΠ»Π°ΡΡΠ° Graphics2D Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΡΡ (transform) ΡΠΈΡΡΠ΅ΠΌΡ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π² ΡΠΈΡΡΠ΅ΠΌΡ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΠΏΡΠΈ Π²ΡΠ²ΠΎΠ΄Π΅ Π³ΡΠ°ΡΠΈΠΊΠΈ.
Β· ΠΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π² ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°ΡΡ «Π²ΡΡΡΠ½ΡΡ», ΠΏΡΠΈΡΠ΅ΠΌ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎ ΡΠ»ΡΠΆΠΈΡΡ Π»ΡΠ±ΠΎΠ΅ Π°ΡΡΠΈΠ½Π½ΠΎΠ΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠ»ΠΎΡΠΊΠΎΡΡΠΈ, Π² ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, ΠΏΠΎΠ²ΠΎΡΠΎΡ Π½Π° Π»ΡΠ±ΠΎΠΉ ΡΠ³ΠΎΠ» ΠΈ/ΠΈΠ»ΠΈ ΡΠΆΠ°ΡΠΈΠ΅/ΡΠ°ΡΡΡΠΆΠ΅Π½ΠΈΠ΅. ΠΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ ΠΊΠ°ΠΊ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΊΠ»Π°ΡΡΠ° AffineTransform. ΠΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΊΠ°ΠΊ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ setTransform (). ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ «Π½Π° Π»Π΅ΡΡ» ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌΠΈ transform () ΠΈ translate () ΠΈ Π΄Π΅Π»Π°ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΈΡ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠΉ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ concatenate ().
Β· ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π°ΡΡΠΈΠ½Π½ΠΎΠ΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π²Π΅ΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ, ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ Π·Π°Π΄Π°ΡΡΡΡ Π²Π΅ΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠΌΠΈ, Π° Π½Π΅ ΡΠ΅Π»ΡΠΌΠΈ ΡΠΈΡΠ»Π°ΠΌΠΈ.
Β· ΠΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Ρ: ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊ, ΠΎΠ²Π°Π», Π΄ΡΠ³Π° ΠΈ Π΄Ρ., ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡ ΡΠ΅ΠΏΠ΅ΡΡ Π½ΠΎΠ²ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ shape ΠΏΠ°ΠΊΠ΅ΡΠ° java.awt. ΠΠ»Ρ ΠΈΡ Π²ΡΡΠ΅ΡΡΠΈΠ²Π°Π½ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π½ΠΎΠ²ΡΠΉ Π΅Π΄ΠΈΠ½ΡΠΉ Π΄Π»Ρ Π²ΡΠ΅Ρ ΡΠΈΠ³ΡΡ ΠΌΠ΅ΡΠΎΠ΄ draw (), Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠΌ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΠΏΠΎΡΠΎΠ±Π΅Π½ ΡΠ»ΡΠΆΠΈΡΡ Π»ΡΠ±ΠΎΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ, ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π²ΡΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ shape. ΠΠ²Π΅Π΄Π΅Π½ ΠΌΠ΅ΡΠΎΠ΄ fill (), Π·Π°ΠΏΠΎΠ»Π½ΡΡΡΠΈΠΉ ΡΠΈΠ³ΡΡΡ— ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΊΠ»Π°ΡΡΠ°, ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π²ΡΠ΅Π³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ shape.
Β· ΠΠ»Ρ Π²ΡΡΠ΅ΡΡΠΈΠ²Π°Π½ΠΈΡ (Stroke) Π»ΠΈΠ½ΠΈΠΉ Π²Π²Π΅Π΄Π΅Π½ΠΎ ΠΏΠΎΠ½ΡΡΠΈΠ΅ ΠΏΠ΅ΡΠ° (ΡΠ΅n). Π‘Π²ΠΎΠΉΡΡΠ²Π° ΠΏΠ΅ΡΠ° ΠΎΠΏΠΈΡΡΠ²Π°Π΅Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Stroke. ΠΠ»Π°ΡΡ BasicStroke ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅Ρ ΡΡΠΎΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ. ΠΠ΅ΡΠΎ ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ ΡΠ΅ΡΡΡΡΠΌΡ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠ°ΠΌΠΈ:
o ΠΎΠ½ΠΎ ΠΈΠΌΠ΅Π΅Ρ ΡΠΎΠ»ΡΠΈΠ½Ρ (width) Π² ΠΎΠ΄ΠΈΠ½ (ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ) ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠΈΠΊΡΠ΅Π»ΠΎΠ²;
o ΠΎΠ½ΠΎ ΠΌΠΎΠΆΠ΅Ρ Π·Π°ΠΊΠΎΠ½ΡΠΈΡΡ Π»ΠΈΠ½ΠΈΡ (end cap) Π·Π°ΠΊΡΡΠ³Π»Π΅Π½ΠΈΠ΅ΠΌ — ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ° CAP_ROUND, ΠΏΡΡΠΌΡΠΌ ΠΎΠ±ΡΠ΅Π·ΠΎΠΌ — CAP_SQUARE (ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ), ΠΈΠ»ΠΈ Π½Π΅ ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΎΠΊΠΎΠ½ΡΠ°Π½ΠΈΡ — CAP_BUTT;
o ΠΎΠ½ΠΎ ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠΏΡΡΠ³Π°ΡΡ Π»ΠΈΠ½ΠΈΠΈ (line joins) Π·Π°ΠΊΡΡΠ³Π»Π΅Π½ΠΈΠ΅ΠΌ — ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ° JOIN_ROOND, ΠΎΡΡΠ΅Π·ΠΊΠΎΠΌ ΠΏΡΡΠΌΠΎΠΉ — JOIN_BEVEL, ΠΈΠ»ΠΈ ΠΏΡΠΎΡΡΠΎ ΡΠΎΡΡΡΠΊΠΎΠ²ΡΠ²Π°ΡΡ — JOIN_MITER (ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ);
o ΠΎΠ½ΠΎ ΠΌΠΎΠΆΠ΅Ρ ΡΠ΅ΡΡΠΈΡΡ Π»ΠΈΠ½ΠΈΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌΠΈ ΠΏΡΠ½ΠΊΡΠΈΡΠ°ΠΌΠΈ (dash) ΠΈ ΡΡΡΠΈΡ -ΠΏΡΠ½ΠΊΡΠΈΡΠ°ΠΌΠΈ, Π΄Π»ΠΈΠ½Ρ ΡΡΡΠΈΡ ΠΎΠ² ΠΈ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΊΠΎΠ² Π·Π°Π΄Π°ΡΡΡΡ Π² ΠΌΠ°ΡΡΠΈΠ²Π΅, ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΌΠ°ΡΡΠΈΠ²Π° Ρ ΡΠ΅ΡΠ½ΡΠΌΠΈ ΠΈΠ½Π΄Π΅ΠΊΡΠ°ΠΌΠΈ Π·Π°Π΄Π°ΡΡ Π΄Π»ΠΈΠ½Ρ ΡΡΡΠΈΡ Π°, Ρ Π½Π΅ΡΠ΅ΡΠ½ΡΠΌΠΈ ΠΈΠ½Π΄Π΅ΠΊΡΠ°ΠΌΠΈ — Π΄Π»ΠΈΠ½Ρ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΊΠ° ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΡΠΈΡ Π°ΠΌΠΈ.
Β· ΠΠ΅ΡΠΎΠ΄Ρ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠΈΠ³ΡΡ ΠΎΠΏΠΈΡΠ°Π½Ρ Π² ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ΅ Paint. Π’ΡΠΈ ΠΊΠ»Π°ΡΡΠ° ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡ ΡΡΠΎΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ. ΠΠ»Π°ΡΡ Color ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅Ρ Π΅Π³ΠΎ ΡΠΏΠ»ΠΎΡΠ½ΠΎΠΉ (solid) Π·Π°Π»ΠΈΠ²ΠΊΠΎΠΉ, ΠΊΠ»Π°ΡΡ GradientPaint — Π³ΡΠ°Π΄ΠΈΠ΅Π½ΡΠ½ΡΠΌ (gradient) Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ, ΠΏΡΠΈ ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΠ²Π΅Ρ ΠΏΠ»Π°Π²Π½ΠΎ ΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΠΎΡ ΠΎΠ΄Π½ΠΎΠΉ Π·Π°Π΄Π°Π½Π½ΠΎΠΉ ΡΠΎΡΠΊΠΈ ΠΊ Π΄ΡΡΠ³ΠΎΠΉ Π·Π°Π΄Π°Π½Π½ΠΎΠΉ ΡΠΎΡΠΊΠ΅, ΠΊΠ»Π°ΡΡ TexturePaint — Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π·Π°Π΄Π°Π½Π½ΠΎΠΌΡ ΠΎΠ±ΡΠ°Π·ΡΡ (pattern fill).
Β· ΠΡΠΊΠ²Ρ ΡΠ΅ΠΊΡΡΠ° ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡΡΡ ΠΊΠ°ΠΊ ΡΠΈΠ³ΡΡΡ, Ρ. Π΅. ΠΎΠ±ΡΠ΅ΠΊΡΡ, ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡΠΈΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ shape, ΠΈ ΠΌΠΎΠ³ΡΡ Π²ΡΡΠ΅ΡΡΠΈΠ²Π°ΡΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ draw () Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π²ΡΠ΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ ΡΡΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π°. ΠΡΠΈ ΠΈΡ Π²ΡΡΠ΅ΡΡΠΈΠ²Π°Π½ΠΈΠΈ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΠΏΠ΅ΡΠΎ, Π²ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΈ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ.
Β· ΠΡΠΎΠΌΠ΅ ΠΈΠΌΠ΅Π½ΠΈ, ΡΡΠΈΠ»Ρ ΠΈ ΡΠ°Π·ΠΌΠ΅ΡΠ°, ΡΡΠΈΡΡ ΠΏΠΎΠ»ΡΡΠΈΠ» ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ Π°ΡΡΠΈΠ±ΡΡΠΎΠ², Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ, ΠΏΠΎΠ΄ΡΠ΅ΡΠΊΠΈΠ²Π°Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΠΏΠ΅ΡΠ΅ΡΠ΅ΡΠΊΠΈΠ²Π°Π½ΠΈΠ΅ ΡΠ΅ΠΊΡΡΠ°, Π²ΡΠ²ΠΎΠ΄ ΡΠ΅ΠΊΡΡΠ° ΡΠΏΡΠ°Π²Π° Π½Π°Π»Π΅Π²ΠΎ. Π¦Π²Π΅Ρ ΡΠ΅ΠΊΡΡΠ° ΠΈ Π΅Π³ΠΎ ΡΠΎΠ½Π° ΡΠ²Π»ΡΡΡΡΡ ΡΠ΅ΠΏΠ΅ΡΡ Π°ΡΡΠΈΠ±ΡΡΠ°ΠΌΠΈ ΡΠ°ΠΌΠΎΠ³ΠΎ ΡΠ΅ΠΊΡΡΠ°, Π° Π½Π΅ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ°. ΠΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°ΡΡ ΡΠ°Π·Π½ΡΡ ΡΠΈΡΠΈΠ½Ρ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² ΡΡΠΈΡΡΠ°, Π½Π°Π΄ΡΡΡΠΎΡΠ½ΡΠ΅ ΠΈ ΠΏΠΎΠ΄ΡΡΡΠΎΡΠ½ΡΠ΅ ΠΈΠ½Π΄Π΅ΠΊΡΡ. ΠΡΡΠΈΠ±ΡΡΡ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡΡΡ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ°ΠΌΠΈ ΠΊΠ»Π°ΡΡΠ° TextAttribute.
Β· ΠΡΠΎΡΠ΅ΡΡ Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ (rendering) ΡΠ΅Π³ΡΠ»ΠΈΡΡΠ΅ΡΡΡ ΠΏΡΠ°Π²ΠΈΠ»Π°ΠΌΠΈ (hints), ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΌΠΈ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ°ΠΌΠΈ ΠΊΠ»Π°ΡΡΠ° RenderingHints.
Π‘ ΡΠ°ΠΊΠΈΠΌΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠΌΠΈ Java 2D ΡΡΠ°Π»Π° ΠΏΠΎΠ»Π½ΠΎΡΠ΅Π½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ, Π²ΡΠ²ΠΎΠ΄Π° ΡΠ΅ΠΊΡΡΠ° ΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ. ΠΠΎΡΠΌΠΎΡΡΠΈΠΌ, ΠΊΠ°ΠΊ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ ΡΡΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ, ΠΈ ΠΊΠ°ΠΊ ΠΈΠΌΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ.
ΠΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ
ΠΡΠ°Π²ΠΈΠ»ΠΎ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π² ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²Π° (transform) Π·Π°Π΄Π°Π΅ΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° ΡΠ°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΡΠ²Π΅Ρ ΠΈ ΡΡΠΈΡΡ. Π Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΌ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ setTransform () ΡΠ°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΡΠ²Π΅Ρ ΠΈΠ»ΠΈ ΡΡΠΈΡΡ. ΠΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠΌ ΡΡΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π° ΡΠ»ΡΠΆΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΊΠ»Π°ΡΡΠ° AffineTransform ΠΈΠ· ΠΏΠ°ΠΊΠ΅ΡΠ° java.awt.geom, ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌ ΠΊΠ»Π°ΡΡΠ° Π‘olor ΠΈΠ»ΠΈ Font ΠΏΡΠΈ Π·Π°Π΄Π°Π½ΠΈΠΈ ΡΠ²Π΅ΡΠ° ΠΈΠ»ΠΈ ΡΡΠΈΡΡΠ°.
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΠΊΠ»Π°ΡΡ AffineTransform.
ΠΠ»Π°ΡΡ AffineTransform
ΠΡΡΠΈΠ½Π½ΠΎΠ΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ Π·Π°Π΄Π°Π΅ΡΡΡ Π΄Π²ΡΠΌΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΠΌΠΈ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ°ΠΌΠΈ ΠΊΠ»Π°ΡΡΠ° AffineTransform:
AffineTransform (double a, double b, double Ρ, double d, double e, double f)
AffineTransform (float a, float b, float c, float d, float e, float f)
ΠΡΠΈ ΡΡΠΎΠΌ ΡΠΎΡΠΊΠ° Ρ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ°ΠΌΠΈ (Ρ , Ρ) Π² ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΏΠ΅ΡΠ΅ΠΉΠ΄Π΅Ρ Π² ΡΠΎΡΠΊΡ Ρ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ°ΠΌΠΈ (Π°*Ρ +Ρ*Ρ+Π΅, b*x+d*y+f) Π² ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²Π°.
Π’Π°ΠΊΠΎΠ΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π΅ ΠΈΡΠΊΡΠΈΠ²Π»ΡΠ΅Ρ ΠΏΠ»ΠΎΡΠΊΠΎΡΡΡ — ΠΏΡΡΠΌΡΠ΅ Π»ΠΈΠ½ΠΈΠΈ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΡΡ Π² ΠΏΡΡΠΌΡΠ΅, ΡΠ³Π»Ρ ΠΌΠ΅ΠΆΠ΄Ρ Π»ΠΈΠ½ΠΈΡΠΌΠΈ ΡΠΎΡ ΡΠ°Π½ΡΡΡΡΡ. ΠΡΠΈΠΌΠ΅ΡΠ°ΠΌΠΈ Π°ΡΡΠΈΠ½Π½ΡΡ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠΉ ΡΠ»ΡΠΆΠ°Ρ ΠΏΠΎΠ²ΠΎΡΠΎΡΡ Π²ΠΎΠΊΡΡΠ³ Π»ΡΠ±ΠΎΠΉ ΡΠΎΡΠΊΠΈ Π½Π° Π»ΡΠ±ΠΎΠΉ ΡΠ³ΠΎΠ», ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΡΠ΅ ΡΠ΄Π²ΠΈΠ³ΠΈ, ΠΎΡΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΎΡ ΠΎΡΠ΅ΠΉ, ΡΠΆΠ°ΡΠΈΡ ΠΈ ΡΠ°ΡΡΡΠΆΠ΅Π½ΠΈΡ ΠΏΠΎ ΠΎΡΡΠΌ.
Π‘Π»Π΅Π΄ΡΡΡΠΈΠ΅ Π΄Π²Π° ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° ΠΌΠ°ΡΡΠΈΠ² {Π°, b, Ρ, d, e, f} ΠΈΠ»ΠΈ {a, b, c, d}, Π΅ΡΠ»ΠΈ e = f = 0, ΡΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΡΠΉ ΠΈΠ· ΡΠ°ΠΊΠΈΡ ΠΆΠ΅ ΠΊΠΎΡΡΡΠΈΡΠΈΠ΅Π½ΡΠΎΠ² Π² ΡΠΎΠΌ ΠΆΠ΅ ΠΏΠΎΡΡΠ΄ΠΊΠ΅:
AffineTransform (double[] arr)
AffineTransform (float[] arr)
ΠΡΡΡΠΉ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΡΠΎΠ·Π΄Π°Π΅Ρ Π½ΠΎΠ²ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΏΠΎ Π΄ΡΡΠ³ΠΎΠΌΡ, ΡΠΆΠ΅ ΠΈΠΌΠ΅ΡΡΠ΅ΠΌΡΡΡ, ΠΎΠ±ΡΠ΅ΠΊΡΡ:
AffineTransform (AffineTransform at)
Π¨Π΅ΡΡΠΎΠΉ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ — ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ — ΡΠΎΠ·Π΄Π°Π΅Ρ ΡΠΎΠΆΠ΄Π΅ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅:
AffineTransform ()
ΠΡΠΈ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΡ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠΎΡΠ½Ρ, Π½ΠΎ Π½Π΅ΡΠ΄ΠΎΠ±Π½Ρ ΠΏΡΠΈ Π·Π°Π΄Π°Π½ΠΈΠΈ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΡ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠΉ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ°ΡΡΡΠΈΡΠ°ΡΡ ΠΊΠΎΡΡΡΠΈΡΠΈΠ΅Π½ΡΡ ΠΏΠΎΠ²ΠΎΡΠΎΡΠ° Π½Π° 57Β° Π²ΠΎΠΊΡΡΠ³ ΡΠΎΡΠΊΠΈ Ρ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ°ΠΌΠΈ (20, 40).
ΠΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ ΡΠ»ΡΡΠ°ΡΡ ΡΠ΄ΠΎΠ±Π½Π΅Π΅ ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌΠΈ, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΠΈΠΌΠΈ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΊΠ»Π°ΡΡΠ° AffineTransform.
Β· getRotateInstance (double angle) — Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΏΠΎΠ²ΠΎΡΠΎΡ Π½Π° ΡΠ³ΠΎΠ» angle, Π·Π°Π΄Π°Π½Π½ΡΠΉ Π² ΡΠ°Π΄ΠΈΠ°Π½Π°Ρ , Π²ΠΎΠΊΡΡΠ³ Π½Π°ΡΠ°Π»Π° ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ. ΠΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ²ΠΎΡΠΎΡΠ° ΡΠ°ΠΊΠΎΠ²ΠΎ, ΡΡΠΎ ΡΠΎΡΠΊΠΈ ΠΎΡΠΈ ΠΡ ΠΏΠΎΠ²ΠΎΡΠ°ΡΠΈΠ²Π°ΡΡΡΡ Π² Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠΈ ΠΊ ΠΎΡΠΈ ΠΡ. ΠΡΠ»ΠΈ ΠΎΡΠΈ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π½Π΅ ΠΌΠ΅Π½ΡΠ»ΠΈΡΡ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΎΡΡΠ°ΠΆΠ΅Π½ΠΈΡ, ΡΠΎ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ angle Π·Π°Π΄Π°Π΅Ρ ΠΏΠΎΠ²ΠΎΡΠΎΡ ΠΏΠΎ ΡΠ°ΡΠΎΠ²ΠΎΠΉ ΡΡΡΠ΅Π»ΠΊΠ΅.
Β· getRotateInstance (double angle, double x, double Ρ) — ΡΠ°ΠΊΠΎΠΉ ΠΆΠ΅ ΠΏΠΎΠ²ΠΎΡΠΎΡ Π²ΠΎΠΊΡΡΠ³ ΡΠΎΡΠΊΠΈ Ρ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ°ΠΌΠΈ (Ρ , Ρ).
Β· getScalelnstance (double sx, double sy) — ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅Ρ ΠΌΠ°ΡΡΡΠ°Π± ΠΏΠΎ ΠΎΡΠΈ ΠΡ Π² sx ΡΠ°Π·, ΠΏΠΎ ΠΎΡΠΈ ΠΡ — Π² sy ΡΠ°Π·.
Β· getSharelnstance (double shx, double shy) — ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ΅Ρ ΠΊΠ°ΠΆΠ΄ΡΡ ΡΠΎΡΠΊΡ (x, Ρ) Π² ΡΠΎΡΠΊΡ (x+shx*y, shy*x+y).
Β· getTranslateInstance (double tx, double ty)—ΡΠ΄Π²ΠΈΠ³Π°Π΅Ρ ΠΊΠ°ΠΆΠ΄ΡΡ ΡΠΎΡΠΊΡ (Ρ , Ρ) Π² ΡΠΎΡΠΊΡ (x+tx, y+ty).
ΠΠ΅ΡΠΎΠ΄ createInverse () Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅, ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ΅ ΡΠ΅ΠΊΡΡΠ΅ΠΌΡ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ.
ΠΠΎΡΠ»Π΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌΠΈ:
setTransform (AffineTransform at)
setTransform (double a, double b, double c, double d, double e, double f)
setToIdentity ()
setToRotation (double angle)
setToRotation (double angle, double x, double y)
setToScale (double sx, double sy)
setToShare (double shx, double shy)
setToTranslate (double tx, double ty)
ΡΠ΄Π΅Π»Π°Π² ΡΠ΅ΠΊΡΡΠΈΠΌ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅, Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· ΡΡΠΈΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ².
ΠΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ, Π·Π°Π΄Π°Π½Π½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌΠΈ:
concatenate (AffineTransform at)
rotate (double angle)
rotate (double angle, double x, double y)
scale (double sx, double sy)
shear (double shx, double shy)
translate (double tx, double ty)
Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΠΏΠ΅ΡΠ΅Π΄ ΡΠ΅ΠΊΡΡΠΈΠΌ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ, ΠΎΠ±ΡΠ°Π·ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΈΡ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠΉ.
ΠΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅, Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ preConcatenate (AffineTransform at), Π½Π°ΠΏΡΠΎΡΠΈΠ², ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠΎΡΠ»Π΅ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ.
ΠΡΠΎΡΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΊΠ»Π°ΡΡΠ° AffineTransform ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΠΈΠ³ΡΡ Π² ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ.
ΠΡΠΈΠ²Π΅Π΄Π΅ΠΌ ΠΏΡΠΈΠΌΠ΅Ρ. ΠΠΎΠ±Π°Π²ΠΈΠΌ Π² Π½Π°ΡΠ°Π»ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π° paint () Π² ΠΏΡΠΈΠΌΠ΅ΡΠ΅ 1 ΡΠ΅ΡΡΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ°, ΠΊΠ°ΠΊ Π·Π°ΠΏΠΈΡΠ°Π½ΠΎ Π² ΠΏΡΠΈΠΌΠ΅ΡΠ΅ 2.
ΠΡΠΈΠΌΠ΅Ρ 2. ΠΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ
// ΠΠ°ΡΠ°Π»ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ° 1…
public void paint (Graphics gr){
Graphics2D g = (Graphics2D)gr;
AffineTransform at =
AffineTransform.getRotatelnstance (-Math.PI/4.0, 250.0,150.0);
at.concatenate (new AffineTransform (0.5, 0.0, 0.0, 0.5, 100.0, 60.0));
g.setTransform (at);
Dimension d = getSize ();
// ΠΡΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΠ° 1…
ΠΠ΅ΡΠΎΠ΄ paint () Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° gr ΠΊΠ»Π°ΡΡΠ° Graphics2D ΠΏΡΠΎΡΡΡΠΌ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° gr ΠΊ ΡΠΈΠΏΡ Graphics2D. ΠΠ°ΡΠ΅ΠΌ, ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ getRotatelnstance () ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ ΠΏΠΎΠ²ΠΎΡΠΎΡ Π½Π° 45Β° ΠΏΡΠΎΡΠΈΠ² ΡΠ°ΡΠΎΠ²ΠΎΠΉ ΡΡΡΠ΅Π»ΠΊΠΈ Π²ΠΎΠΊΡΡΠ³ ΡΠΎΡΠΊΠΈ (250.0, 150.0). ΠΡΠΎ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅— ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ at ΠΊΠ»Π°ΡΡΠ° AffineTransform. ΠΠ΅ΡΠΎΠ΄ concatenate (), Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ at, Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ ΠΊ ΡΡΠΎΠΌΡ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ ΡΠΆΠ°ΡΠΈΠ΅ Π² Π΄Π²Π° ΡΠ°Π·Π° ΠΏΠΎ ΠΎΠ±Π΅ΠΈΠΌ ΠΎΡΡΠΌ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ ΠΈ ΠΏΠ΅ΡΠ΅Π½ΠΎΡ Π½Π°ΡΠ°Π»Π° ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ Π² ΡΠΎΡΠΊΡ (100.0, 60.0). ΠΠ°ΠΊΠΎΠ½Π΅Ρ, ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΈΡ ΡΡΠΈΡ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠΉ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ ΠΊΠ°ΠΊ ΡΠ΅ΠΊΡΡΠ΅Π΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ° g ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ setTransform ().
ΠΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅. Π‘Π½Π°ΡΠ°Π»Π° ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΡΠΆΠΈΠΌΠ°Π΅ΡΡΡ Π² Π΄Π²Π° ΡΠ°Π·Π° Π²Π΄ΠΎΠ»Ρ ΠΎΠ±Π΅ΠΈΡ ΠΎΡΠ΅ΠΉ, Π·Π°ΡΠ΅ΠΌ Π½Π°ΡΠ°Π»ΠΎ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ — Π»Π΅Π²ΡΠΉ Π²Π΅ΡΡ Π½ΠΈΠΉ ΡΠ³ΠΎΠ» — ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΡΡΡ Π² ΡΠΎΡΠΊΡ (100.0, 60.0) ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²Π°. ΠΠΎΡΠΎΠΌ ΠΊΠ°ΡΡΠΈΠ½ΠΊΠ° ΠΏΠΎΠ²ΠΎΡΠ°ΡΠΈΠ²Π°Π΅ΡΡΡ Π½Π° ΡΠ³ΠΎΠ» 45Β° ΠΏΡΠΎΡΠΈΠ² ΡΠ°ΡΠΎΠ²ΠΎΠΉ ΡΡΡΠ΅Π»ΠΊΠΈ Π²ΠΎΠΊΡΡΠ³ ΡΠΎΡΠΊΠΈ (250.0, 150.0).
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ ΡΡΠΈΡ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠΉ ΠΏΠΎΠΊΠ°Π·Π°Π½ Π½Π° ΡΠΈΡ. 3.
Π ΠΈΡ. 3. ΠΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ
Π ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΈΠ³ΡΡ ΡΡΠ΅Π΄ΡΡΠ²Π°ΠΌΠΈ Java2D
Π₯Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ ΠΏΠ΅ΡΠ° Π΄Π»Ρ ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠΈΠ³ΡΡ ΠΎΠΏΠΈΡΠ°Π½Ρ Π² ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ΅ Stroke. Π Java 2D Π΅ΡΡΡ ΠΏΠΎΠΊΠ° ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΠΊΠ»Π°ΡΡ, ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡΠΈΠΉ ΡΡΠΎΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ — ΠΊΠ»Π°ΡΡ BasicStroke.
ΠΠ»Π°ΡΡ BasicStroke
ΠΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΡ ΠΊΠ»Π°ΡΡΠ° BasicStroke ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ ΠΏΠ΅ΡΠ°. ΠΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ
BasicStroke (float width, int cap, int join, float miter, float[] dash, float dashBegin)
Π·Π°Π΄Π°Π΅Ρ:
Β· ΡΠΎΠ»ΡΠΈΠ½Ρ ΠΏΠ΅ΡΠ° width Π² ΠΏΠΈΠΊΡΠ΅Π»Π°Ρ ;
Β· ΠΎΡΠΎΡΠΌΠ»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΠ° Π»ΠΈΠ½ΠΈΠΈ cap; ΡΡΠΎ ΠΎΠ΄Π½Π° ΠΈΠ· ΠΊΠΎΠ½ΡΡΠ°Π½Ρ:
o CAP_ROUND — Π·Π°ΠΊΡΡΠ³Π»Π΅Π½Π½ΡΠΉ ΠΊΠΎΠ½Π΅Ρ Π»ΠΈΠ½ΠΈΠΈ;
o CAP_SQUARE — ΠΊΠ²Π°Π΄ΡΠ°ΡΠ½ΡΠΉ ΠΊΠΎΠ½Π΅Ρ Π»ΠΈΠ½ΠΈΠΈ;
o CAP_BUTT — ΠΎΡΠΎΡΠΌΠ»Π΅Π½ΠΈΠ΅ ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ;
Β· ΡΠΏΠΎΡΠΎΠ± ΡΠΎΠΏΡΡΠΆΠ΅Π½ΠΈΡ Π»ΠΈΠ½ΠΈΠΉ join; ΡΡΠΎ ΠΎΠ΄Π½Π° ΠΈΠ· ΠΊΠΎΠ½ΡΡΠ°Π½Ρ:
o JOIN_ROUND — Π»ΠΈΠ½ΠΈΠΈ ΡΠΎΠΏΡΡΠ³Π°ΡΡΡΡ Π΄ΡΠ³ΠΎΠΉ ΠΎΠΊΡΡΠΆΠ½ΠΎΡΡΠΈ;
o JOIN_BEVEL — Π»ΠΈΠ½ΠΈΠΈ ΡΠΎΠΏΡΡΠ³Π°ΡΡΡΡ ΠΎΡΡΠ΅Π·ΠΊΠΎΠΌ ΠΏΡΡΠΌΠΎΠΉ, ΠΏΠ΅ΡΠΏΠ΅Π½Π΄ΠΈΠΊΡΠ»ΡΡΠ½ΡΠΌ Π±ΠΈΡΡΠ΅ΠΊΡΡΠΈΡΠ΅ ΡΠ³Π»Π° ΠΌΠ΅ΠΆΠ΄Ρ Π»ΠΈΠ½ΠΈΡΠΌΠΈ;
o JOIN_MITER — Π»ΠΈΠ½ΠΈΠΈ ΠΏΡΠΎΡΡΠΎ ΡΡΡΠΊΡΡΡΡΡ;
Β· ΡΠ°ΡΡΡΠΎΡΠ½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ Π»ΠΈΠ½ΠΈΡΠΌΠΈ miter, Π½Π°ΡΠΈΠ½Π°Ρ Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΡΠΎΠΏΡΡΠΆΠ΅Π½ΠΈΠ΅ JOIN_MITER;
Β· Π΄Π»ΠΈΠ½Ρ ΡΡΡΠΈΡ ΠΎΠ² ΠΈ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΊΠΎΠ² ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΡΠΈΡ Π°ΠΌΠΈ — ΠΌΠ°ΡΡΠΈΠ² dash; ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΌΠ°ΡΡΠΈΠ²Π° Ρ ΡΠ΅ΡΠ½ΡΠΌΠΈ ΠΈΠ½Π΄Π΅ΠΊΡΠ°ΠΌΠΈ Π·Π°Π΄Π°ΡΡ Π΄Π»ΠΈΠ½Ρ ΡΡΡΠΈΡ Π° Π² ΠΏΠΈΠΊΡΠ΅Π»Π°Ρ , ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Ρ Π½Π΅ΡΠ΅ΡΠ½ΡΠΌΠΈ ΠΈΠ½Π΄Π΅ΠΊΡΠ°ΠΌΠΈ — Π΄Π»ΠΈΠ½Ρ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΊΠ°; ΠΌΠ°ΡΡΠΈΠ² ΠΏΠ΅ΡΠ΅Π±ΠΈΡΠ°Π΅ΡΡΡ ΡΠΈΠΊΠ»ΠΈΡΠ΅ΡΠΊΠΈ;
Β· ΠΈΠ½Π΄Π΅ΠΊΡ dashBegin, Π½Π°ΡΠΈΠ½Π°Ρ Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΏΠ΅ΡΠ΅Π±ΠΈΡΠ°ΡΡΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΌΠ°ΡΡΠΈΠ²Π°
Β· dash.
ΠΡΡΠ°Π»ΡΠ½ΡΠ΅ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΡ Π·Π°Π΄Π°ΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ:
Β· BasicStroke (float width, int cap, int join, float miter) — ΡΠΏΠ»ΠΎΡΠ½Π°Ρ Π»ΠΈΠ½ΠΈΡ;
Β· BasicStroke (float width, int cap, int join) — ΡΠΏΠ»ΠΎΡΠ½Π°Ρ Π»ΠΈΠ½ΠΈΡ Ρ ΡΠΎΠΏΡΡΠΆΠ΅Π½ΠΈΠ΅ΠΌ JOIN_ROUND ΠΈΠ»ΠΈ JOIN_BEVEL; Π΄Π»Ρ ΡΠΎΠΏΡΡΠΆΠ΅Π½ΠΈΡ JOIN_MITER Π·Π°Π΄Π°Π΅ΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ miter = 10.0f;
Β· BasicStroke (float width) — ΠΏΡΡΠΌΠΎΠΉ ΠΎΠ±ΡΠ΅Π· CAP_SQUARE ΠΈ ΡΠΎΠΏΡΡΠΆΠ΅Π½ΠΈΠ΅ JOIN_MITER ΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ miter = 10.0f;
Β· BasicStroke () — ΡΠΈΡΠΈΠ½Π°1. 0f.
Π ΠΏΡΠΈΠΌΠ΅ΡΠ΅ 3 ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΎ ΠΏΡΡΡ ΠΏΠ΅ΡΡΠ΅Π² Ρ ΡΠ°Π·Π½ΡΠΌΠΈ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠ°ΠΌΠΈ, ΡΠΈΡ 4 ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ ΡΠΈΡΡΡΡ.
ΠΡΠΈΠΌΠ΅Ρ 3. ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΡΠ΅Π²
import java.awt.*;
import java.awt.geom. *;
import java.awt.event.*;
class StrokeTest extends Frame{
StrokeTest (String s) {
super (s) ;
setSize (500, 400);
setvisible (true);
addWindowListener (new WindowAdapter (){
public void windowClosing (WindowEvent ev)(
System.exit (0);
}
});
}
public void paint (Graphics gr){
Graphics2D g = (Graphics2D)gr;
g.setFont (new Font («Serif», Font. PLAIN, 15));
BasicStroke pen1 = new BasicStroke (20, BasicStroke. CAP_BUTT,
BasicStroke.JOIN_MITER, 30);
BasicStroke pen2 = new BasicStroke (20, BasicStroke. CAP_ROUND,
BasicStroke.JOIN_ROUND);
BasicStroke ΡΠ΅nΠ = new BasicStroke (20, BasicStroke. CAP_SQUARE,
BasicStroke.JOIN_BEVEL);
floatf] dash1 = {5, 20};
BasicStroke pen4 = new BasicStroke (10, BasicStroke. CAP_ROUND,
BasicStroke.JOIN_BEVEL, 10, dashl, 0);
float[] dash2 = (10, 5, 5, 5};
BasicStroke pen5 = new BasicStroke (10, BasicStroke. CAP_BUTT, BasicStroke. JOIN_BEVEL, 10, dash2, 0);
g.setStroke (pen1);
g.draw (new Rectangle2D. Double (50, 50, 50, 50));
g.draw (new Line2D. Double (50, 180, 150, 180));
g.setStroke (pen2);
g.draw (new Rectangle2D. Double (200, 50, 50, 50));
g.draw (new Line2D. Double (50, 230, 150, 230));
g.setStroke (ΡΠ΅n3);
g.draw (new Rectangle2D. Double (350, 50, 50, 50));
g.draw (new Line2D. Double (50, 280, 150, 280));
g.drawstring («JOIN_MITER», 40, 130);
g.drawstring («JOIN_ROUND», 180, 130);
g.drawstring («JOINJBEVEL», 330, 130);
g.drawstring («CAP_BUTT», 170, 190);
g.drawstring («CAP_ROUND», 170, 240);
g.drawstring («CAP_SQUARE», 170, 290);
g.setStroke (pen5);
g.drawfnew Line2D. Double (50, 330, 250, 330));
g.setStroke (pen4);
g.draw (new Line2D. Double (50, 360, 250, 360));
g.drawString («{10, 5, 5, 5,…}», 260, 335);
g.drawstring («(5, 10,…)», 260, 365);
}
public static void main (String[] args){
new StrokeTest («ΠΠΎΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°»);
}
}
Π ΠΈΡ. 4. ΠΠ΅ΡΡΡ Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌΠΈ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠ°ΠΌΠΈ.
ΠΠΎΡΠ»Π΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΠ΅ΡΠ° ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠΎΠ² ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΏΠ΅ΡΠ° ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ setStroke () ΠΌΠΎΠΆΠ½ΠΎ ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΠΈΠ³ΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌΠΈ draw () ΠΈ fill ().
ΠΠ±ΡΠΈΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΡΠΈΠ³ΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ draw () ΠΊΠ»Π°ΡΡΠ° Graphics2D, ΠΎΠΏΠΈΡΠ°Π½Ρ Π² ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ΅ shape. ΠΡΠΎΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΎΠ±ΡΡΠ½ΠΎΠ³ΠΎ Π½Π°Π±ΠΎΡΠ° ΡΠΈΠ³ΡΡ — ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠΎΠ², ΠΏΡΡΠΌΡΡ , ΡΠ»Π»ΠΈΠΏΡΠΎΠ², Π΄ΡΠ³, ΡΠΎΡΠ΅ΠΊ — ΠΊΠ»Π°ΡΡΠ°ΠΌΠΈ Rectangle2D, RoundRectangle2D, Line2D, Ellipse2D, Arc2D, Point2D ΠΏΠ°ΠΊΠ΅ΡΠ° java.awt.geom. Π ΡΡΠΎΠΌ ΠΏΠ°ΠΊΠ΅ΡΠ΅ Π΅ΡΡΡ Π΅ΡΠ΅ ΠΊΠ»Π°ΡΡΡ CubicCurve2D ΠΈ QuadCurve2D Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΊΡΠΈΠ²ΡΡ ΡΡΠ΅ΡΡΠ΅Π³ΠΎ ΠΈ Π²ΡΠΎΡΠΎΠ³ΠΎ ΠΏΠΎΡΡΠ΄ΠΊΠ°.
ΠΡΠ΅ ΡΡΠΈ ΠΊΠ»Π°ΡΡΡ Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΡΠ΅, Π½ΠΎ ΡΡΡΠ΅ΡΡΠ²ΡΡΡ ΠΈΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ — Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ ΠΊΠ»Π°ΡΡΡ Double ΠΈ Float Π΄Π»Ρ Π·Π°Π΄Π°Π½ΠΈΡ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ ΡΠΈΡΠ»Π°ΠΌΠΈ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π³ΠΎ ΡΠΈΠΏΠ°. Π ΠΏΡΠΈΠΌΠ΅ΡΠ΅ 3 ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Ρ ΠΊΠ»Π°ΡΡΡ Rectangle2D. Double Π Line2D. Double Π΄Π»Ρ Π²ΡΡΠ΅ΡΡΠΈΠ²Π°Π½ΠΈΡ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠΎΠ² ΠΈ ΠΎΡΡΠ΅Π·ΠΊΠΎΠ².
ΠΠ»Π°ΡΡ GeneralPath
ΠΠ±ΡΠ΅ΠΊΡΡ ΠΊΠ»Π°ΡΡΠ° java.awt.geom.GeneralPath ΠΌΠΎΠ³ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΡΠ»ΠΎΠΆΠ½ΡΠ΅ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ, ΡΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΡΠ΅ ΠΈΠ· ΠΎΡΡΠ΅Π·ΠΊΠΎΠ² ΠΏΡΡΠΌΡΡ ΠΈΠ»ΠΈ ΠΊΡΠΈΠ²ΡΡ Π»ΠΈΠ½ΠΈΠΉ ΠΈ ΠΏΡΠΎΡΠΈΡ ΡΠΈΠ³ΡΡ, ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½Π½ΡΡ ΠΈΠ»ΠΈ Π½Π΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½Π½ΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΎΠ±ΠΎΠΉ. ΠΠΎΠ»Π΅Π΅ ΡΠΎΠ³ΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΡΠΎΡ ΠΊΠ»Π°ΡΡ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ shape, Π΅Π³ΠΎ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΡ ΡΠ°ΠΌΠΈ ΡΠ²Π»ΡΡΡΡΡ ΡΠΈΠ³ΡΡΠ°ΠΌΠΈ ΠΈ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌΠΈ Π΄ΡΡΠ³ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΊΠ»Π°ΡΡΠ° GeneralPath.
ΠΠ½Π°ΡΠ°Π»Π΅ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΠΏΡΡΡΠΎΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΊΠ»Π°ΡΡΠ° GeneralPath ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠΎΠΌ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ GeneralPath () ΠΈΠ»ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ ΠΎΠ΄Π½Ρ ΡΠΈΠ³ΡΡΡ, ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠΎΠΌ GeneralPath (Shape sh).
ΠΠ°ΡΠ΅ΠΌ ΠΊ ΡΡΠΎΠΌΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡΡΡ ΡΠΈΠ³ΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ append (Shape sh, boolean connect)
ΠΡΠ»ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ connect ΡΠ°Π²Π΅Π½ true, ΡΠΎ Π½ΠΎΠ²Π°Ρ ΡΠΈΠ³ΡΡΠ° ΡΠΎΠ΅Π΄ΠΈΠ½ΡΠ΅ΡΡΡ Ρ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠΌΠΈ ΡΠΈΠ³ΡΡΠ°ΠΌΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΠΏΠ΅ΡΠ°.
Π ΠΎΠ±ΡΠ΅ΠΊΡΠ΅ Π΅ΡΡΡ ΡΠ΅ΠΊΡΡΠ°Ρ ΡΠΎΡΠΊΠ°. ΠΠ½Π°ΡΠ°Π»Π΅ Π΅Π΅ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ (0, 0), Π·Π°ΡΠ΅ΠΌ Π΅Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΡΠΈΡΡ Π² ΡΠΎΡΠΊΡ (Ρ , Ρ) ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ moveTo (float x, float Ρ).
ΠΡ ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΡΠΎΡΠΊΠΈ ΠΊ ΡΠΎΡΠΊΠ΅ (Ρ , Ρ) ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΠ²Π΅ΡΡΠΈ:
Β· ΠΎΡΡΠ΅Π·ΠΎΠΊ ΠΏΡΡΠΌΠΎΠΉ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ lineTo (float x, float Ρ);
Β· ΠΎΡΡΠ΅Π·ΠΎΠΊ ΠΊΠ²Π°Π΄ΡΠ°ΡΠΈΡΠ½ΠΎΠΉ ΠΊΡΠΈΠ²ΠΎΠΉ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ quadTo (float xi, float yl, float x, float y),
Β· ΠΊΡΠΈΠ²ΡΡ ΠΠ΅Π·ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ curveTo (float xl, float yl, float x2, float y2, float x, float y).
Π’Π΅ΠΊΡΡΠ΅ΠΉ ΡΠΎΡΠΊΠΎΠΉ ΠΏΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΡΠΎΡΠΊΠ° (Ρ , Ρ). ΠΠ°ΡΠ°Π»ΡΠ½ΡΡ ΠΈ ΠΊΠΎΠ½Π΅ΡΠ½ΡΡ ΡΠΎΡΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ closePath (). ΠΠΎΡ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΡΡΠ΅ΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊ Ρ Π·Π°Π΄Π°Π½Π½ΡΠΌΠΈ Π²Π΅ΡΡΠΈΠ½Π°ΠΌΠΈ:
GeneralPath p = new GeneralPath ();
p.moveTo (xl, yl); // ΠΠ΅ΡΠ΅Π½ΠΎΡΠΈΠΌ ΡΠ΅ΠΊΡΡΡΡ ΡΠΎΡΠΊΡ Π² ΠΏΠ΅ΡΠ²ΡΡ Π²Π΅ΡΡΠΈΠ½Ρ,
p.lineTo (x2, y2); // ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΠΌ ΡΡΠΎΡΠΎΠ½Ρ ΡΡΠ΅ΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠ° Π΄ΠΎ Π²ΡΠΎΡΠΎΠΉ Π²Π΅ΡΡΠΈΠ½Ρ,
p.lineTo (x3, ΡΠ); // ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΠΌ Π²ΡΠΎΡΡΡ ΡΡΠΎΡΠΎΠ½Ρ,
p.closePath (); // ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΠΌ ΡΡΠ΅ΡΡΡ ΡΡΠΎΡΠΎΠ½Ρ Π΄ΠΎ ΠΏΠ΅ΡΠ²ΠΎΠΉ Π²Π΅ΡΡΠΈΠ½Ρ
Π‘ΠΏΠΎΡΠΎΠ±Ρ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠΈΠ³ΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Ρ Π² ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ΅ Paint. Π Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ Java 2D ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΡΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΡΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° — ΠΊΠ»Π°ΡΡΡ Color, GradientPaint ΠΈ TexturePamt.
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ 2. ΠΠ°Π½ΠΈΠΏΡΠ»ΡΡΠΈΠΈ Ρ ΠΊΡΡΡΠΎΡΠ°ΠΌΠΈ
ΠΠ»Π°ΡΡ Cursor
ΠΡΠ½ΠΎΠ²Π° ΠΊΠ»Π°ΡΡΠ° — ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΠΈΠ΅ ΡΠΎΡΠΌΡ ΠΊΡΡΡΠΎΡΠ°:
Β· CROSSHAIR_CURSOR — ΠΊΡΡΡΠΎΡ Π² Π²ΠΈΠ΄Π΅ ΠΊΡΠ΅ΡΡΠ°, ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ±ΡΡΠ½ΠΎ ΠΏΡΠΈ ΠΏΠΎΠΈΡΠΊΠ΅ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ Π΄Π»Ρ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΠΊΠ°ΠΊΠΎΠ³ΠΎ-ΡΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°;
Β· DEFAULT_CURSOR — ΠΎΠ±ΡΡΠ½Π°Ρ ΡΠΎΡΠΌΠ° ΠΊΡΡΡΠΎΡΠ° — ΡΡΡΠ΅Π»ΠΊΠ° Π²Π»Π΅Π²ΠΎ Π²Π²Π΅ΡΡ ;
Β· HAND_CURSOR — «ΡΠΊΠ°Π·ΡΡΡΠΈΠΉ ΠΏΠ΅ΡΡΡ», ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ±ΡΡΠ½ΠΎ ΠΏΡΠΈ Π²ΡΠ±ΠΎΡΠ΅ ΠΊΠ°ΠΊΠΎΠ³ΠΎ-ΡΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΡΠΏΠΈΡΠΊΠ°;
Β· MOVE_CURSOR — ΠΊΡΠ΅ΡΡ ΡΠΎ ΡΡΡΠ΅Π»ΠΊΠ°ΠΌΠΈ, Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ ΠΎΠ±ΡΡΠ½ΠΎ ΠΏΡΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°;
Β· TEXT_CURSOR — Π²Π΅ΡΡΠΈΠΊΠ°Π»ΡΠ½Π°Ρ ΡΠ΅ΡΡΠ°, ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ Π² ΡΠ΅ΠΊΡΡΠΎΠ²ΡΡ ΠΏΠΎΠ»ΡΡ ;
Β· WAIT_CURSOR — ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΡΠ°ΡΠΎΠ², ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠΈ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠΈ.
Π‘Π»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΊΡΡΡΠΎΡΡ ΠΏΠΎΡΠ²Π»ΡΡΡΡΡ ΠΎΠ±ΡΡΠ½ΠΎ ΠΏΡΠΈ ΠΏΡΠΈΠ±Π»ΠΈΠΆΠ΅Π½ΠΈΠΈ ΠΊ ΠΊΡΠ°Ρ ΠΈΠ»ΠΈ ΡΠ³Π»Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°:
Β· E_RESIZE_CURSOR — ΡΡΡΠ΅Π»ΠΊΠ° Π²ΠΏΡΠ°Π²ΠΎ Ρ ΡΠΏΠΎΡΠΎΠΌ;
Β· N_RESIZE_CURSOR — ΡΡΡΠ΅Π»ΠΊΠ° Π²Π²Π΅ΡΡ Ρ ΡΠΏΠΎΡΠΎΠΌ;
Β· NE_RESIZE_CURSOR — ΡΡΡΠ΅Π»ΠΊΠ° Π²ΠΏΡΠ°Π²ΠΎ Π²Π²Π΅ΡΡ , ΡΠΏΠΈΡΠ°ΡΡΠ°ΡΡΡ Π² ΡΠ³ΠΎΠ»;
Β· NW_RESIZE_CURSOR — ΡΡΡΠ΅Π»ΠΊΠ° Π²Π»Π΅Π²ΠΎ Π²Π²Π΅ΡΡ , ΡΠΏΠΈΡΠ°ΡΡΠ°ΡΡΡ Π² ΡΠ³ΠΎΠ»;
Β· S_RESIZE_CURSOR — ΡΡΡΠ΅Π»ΠΊΠ° Π²Π½ΠΈΠ· Ρ ΡΠΏΠΎΡΠΎΠΌ;
Β· SE_RESIZE_CURSOR — ΡΡΡΠ΅Π»ΠΊΠ° Π²ΠΏΡΠ°Π²ΠΎ Π²Π½ΠΈΠ·, ΡΠΏΠΈΡΠ°ΡΡΠ°ΡΡΡ Π² ΡΠ³ΠΎΠ»;
Β· SW_RESIZE_CURSOR — ΡΡΡΠ΅Π»ΠΊΠ° Π²Π»Π΅Π²ΠΎ Π²Π½ΠΈΠ·, ΡΠΏΠΈΡΠ°ΡΡΠ°ΡΡΡ Π² ΡΠ³ΠΎΠ»;
Β· W_RESIZE_CURSOR — ΡΡΡΠ΅Π»ΠΊΠ° Π²Π»Π΅Π²ΠΎ Ρ ΡΠΏΠΎΡΠΎΠΌ.
ΠΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Π½ΡΠ΅ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ ΡΠ²Π»ΡΡΡΡΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠΌ type Π² ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ΅ ΠΊΠ»Π°ΡΡΠ° Cursor (int type).
ΠΠΌΠ΅ΡΡΠΎ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ° ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡΠ°ΡΠΈΡΡΡΡ ΠΊ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΌΡ ΠΌΠ΅ΡΠΎΠ΄Ρ getPredefinedCursor (int type), ΡΠΎΠ·Π΄Π°ΡΡΠ΅ΠΌΡ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΊΠ»Π°ΡΡΠ° Cursor ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΠ΅ΠΌΡ ΡΡΡΠ»ΠΊΡ Π½Π° Π½Π΅Π³ΠΎ.
ΠΠΎΠ»ΡΡΠΈΡΡ ΠΊΡΡΡΠΎΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ getDefauitcursor (). ΠΠ°ΡΠ΅ΠΌ ΡΠΎΠ·Π΄Π°Π½Π½ΡΠΉ ΠΊΡΡΡΠΎΡ Π½Π°Π΄ΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠΎΡΠ»Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ:
Cursor curs = new Cursor (Cursor.WAIT_CURSOR);
someComp.setCursor (curs);
ΠΏΡΠΈ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΠΈ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ ΠΌΡΡΠΈ Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ΅ somecomp ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ ΠΏΡΠΈΠΌΠ΅Ρ Π²ΠΈΠ΄ ΡΠ°ΡΠΎΠ².
ΠΠ°ΠΊ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ²ΠΎΠΉ ΠΊΡΡΡΠΎΡ
ΠΡΠΎΠΌΠ΅ ΡΡΠΈΡ ΠΏΡΠ΅Π΄ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΠΊΡΡΡΠΎΡΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°ΡΡ ΡΠ²ΠΎΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ ΡΠΎΡΠΌΡ ΠΊΡΡΡΠΎΡΠ°. ΠΠ΅ ΡΠΈΠΏ Π½ΠΎΡΠΈΡ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ CUSTOM_CURSOR. Π‘ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°ΡΡ ΡΠ²ΠΎΠΉ ΠΊΡΡΡΠΎΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ
createCustomCursor (Image cursor, Point hotspot, String name)
ΡΠΎΠ·Π΄Π°ΡΡΠΈΠΌ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΊΠ»Π°ΡΡΠ° Cursor ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΠΈΠΌ ΡΡΡΠ»ΠΊΡ Π½Π° Π½Π΅Π³ΠΎ. ΠΠ΅ΡΠ΅Π΄ ΡΡΠΈΠΌ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΠΎΠ·Π΄Π°ΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΊΡΡΡΠΎΡΠ° cursor — ΠΎΠ±ΡΠ΅ΠΊΡ ΠΊΠ»Π°ΡΡΠ° Image. ΠΡΠ³ΡΠΌΠ΅Π½Ρ name Π·Π°Π΄Π°Π΅Ρ ΠΈΠΌΡ ΠΊΡΡΡΠΎΡΠ°, ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΠΏΡΠΎΡΡΠΎ null. ΠΡΠ³ΡΠΌΠ΅Π½Ρ hotspot Π·Π°Π΄Π°Π΅Ρ ΡΠΎΡΠΊΡ ΡΠΎΠΊΡΡΠ° ΠΊΡΡΡΠΎΡΠ°. ΠΡΠ° ΡΠΎΡΠΊΠ° Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ Π² ΠΏΡΠ΅Π΄Π΅Π»Π°Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΊΡΡΡΠΎΡΠ°, ΡΠΎΡΠ½Π΅Π΅, Π² ΠΏΡΠ΅Π΄Π΅Π»Π°Ρ , ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ
getBestCursorSize (int desiredWidth, int desiredHeight)
Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΠΈΠΌ ΡΡΡΠ»ΠΊΡ Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡ ΠΊΠ»Π°ΡΡΠ° Dimension. ΠΡΠ³ΡΠΌΠ΅Π½ΡΡ ΠΌΠ΅ΡΠΎΠ΄Π° ΠΎΠ·Π½Π°ΡΠ°ΡΡ ΠΆΠ΅Π»Π°Π΅ΠΌΡΠΉ ΡΠ°Π·ΠΌΠ΅Ρ ΠΊΡΡΡΠΎΡΠ°. ΠΡΠ»ΠΈ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° Π½Π΅ Π΄ΠΎΠΏΡΡΠΊΠ°Π΅Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΊΡΡΡΠΎΡΠΎΠ², Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ (0, 0). ΠΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΏΡΠΈΠ±Π»ΠΈΠ·ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ°Π·ΠΌΠ΅Ρ ΡΠΎΠ³ΠΎ ΠΊΡΡΡΠΎΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠ·Π΄Π°ΡΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΠΈΡΡΠ΅ΠΌΠ°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, (32, 32). ΠΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ cursor Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ΄ΠΎΠ³Π½Π°Π½ΠΎ ΠΏΠΎΠ΄ ΡΡΠΎΡ ΡΠ°Π·ΠΌΠ΅Ρ, ΠΏΡΠΈ ΡΡΠΎΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ ΠΈΡΠΊΠ°ΠΆΠ΅Π½ΠΈΡ.
Π’ΡΠ΅ΡΠΈΠΉ ΠΌΠ΅ΡΠΎΠ΄— getMaximumCursorColors () — Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π½Π°ΠΈΠ±ΠΎΠ»ΡΡΠ΅Π΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ²Π΅ΡΠΎΠ², Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, 256, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΈ ΠΊΡΡΡΠΎΡΠ°.
ΠΡΠΎ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΊΠ»Π°ΡΡΠ° java.awt.Toolkit, Ρ ΠΊΠΎΡΠΎΡΡΠΌ ΠΌΡ Π΅ΡΠ΅ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π»ΠΈ. ΠΠ»Π°ΡΡ Toolkit ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ, ΡΠ²ΡΠ·ΡΠ²Π°ΡΡΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Java ΡΠΎ ΡΡΠ΅Π΄ΡΡΠ²Π°ΠΌΠΈ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΉ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠΠΎΡΡΠΎΠΌΡ Π½Π΅Π»ΡΠ·Ρ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΠΊΠ»Π°ΡΡΠ° Toolkit ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠΎΠΌ, Π΄Π»Ρ Π΅Π³ΠΎ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠ»Π΅Π΄ΡΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΌΠ΅ΡΠΎΠ΄ Toolkit. getDefaultToolkit ().
ΠΡΠ»ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π² ΠΎΠΊΠ½Π΅ Window ΠΈΠ»ΠΈ Π΅Π³ΠΎ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡΡ , Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Frame, ΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ Toolkit ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ getToolkit () ΠΊΠ»Π°ΡΡΠ° Window.
Π‘ΠΎΠ±Π΅ΡΠ΅ΠΌ Π²ΡΠ΅ ΡΡΠΎ Π²ΠΌΠ΅ΡΡΠ΅:
Toolkit tk = Toolkit. getDefaultToolkit ();
int colorMax = tk. getMaximumCursorColors (); // ΠΠ°ΠΈΠ±ΠΎΠ»ΡΡΠ΅Π΅ ΡΠΈΡΠ»ΠΎ ΡΠ²Π΅ΡΠΎΠ²
Dimension d = tk. getBestCursorSize (50, 50); // d — ΡΠ°Π·ΠΌΠ΅Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ
int w = d. width, h = d. height, k = 0;
Point p = new Point (0, 0); // Π€ΠΎΠΊΡΡ ΠΊΡΡΡΠΎΡΠ° Π±ΡΠ΄Π΅Ρ
// Π² Π΅Π³ΠΎ Π²Π΅ΡΡ Π½Π΅ΠΌ Π»Π΅Π²ΠΎΠΌ ΡΠ³Π»Ρ
int[] pix = new int[w * h]; // ΠΠ΄Π΅ΡΡ Π±ΡΠ΄ΡΡ ΠΏΠΈΠΊΡΠ΅Π»Ρ
//ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ
for (int i = 0; i < w; i++)
for (int j = 0; j < h; j++)
if (j < i) pix[k++] = 0xFFFF0000; // ΠΠ΅Π²ΡΠΉ Π½ΠΈΠΆΠ½ΠΈΠΉ ΡΠ³ΠΎΠ» ;
//ΠΊΡΠ°ΡΠ½ΡΠΉ
else pix[k++] = 0; // ΠΡΠ°Π²ΡΠΉ Π²Π΅ΡΡ Π½ΠΈΠΉ ΡΠ³ΠΎΠ» —
//ΠΏΡΠΎΠ·ΡΠ°ΡΠ½ΡΠΉ
// Π‘ΠΎΠ·Π΄Π°Π΅ΡΡΡ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΎΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠΌ (w, h),
// Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Π½ΠΎΠ΅ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠΌ ΠΏΠΈΠΊΡΠ΅Π»ΠΎΠ² pix, Ρ Π΄Π»ΠΈΠ½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ w
Image im = createImage (new MemoryImageSource (w, h, pix, 0, w));
Cursor curs = tk. createCustomCursor (im, p, null);
someComp.setCursor (curs);
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΠΊΡΡΡΠΎΡ Π² Π²ΠΈΠ΄Π΅ ΠΊΡΠ°ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΎΠ³ΠΎ ΡΡΠ΅ΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠ° Ρ ΠΊΠ°ΡΠ΅ΡΠ°ΠΌΠΈ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠΌ 32 ΠΏΠΈΠΊΡΠ΅Π»Π° ΠΈ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ Π² ΠΊΠ°ΠΊΠΎΠΌ-ΡΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ΅ someComp.
Π‘ΠΎΠ±ΡΡΠΈΡ
Π‘ΠΎΠ±ΡΡΠΈΠ΅ ComponentEvent ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΏΡΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°, ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ Π΅Π³ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ°, ΡΠ΄Π°Π»Π΅Π½ΠΈΠΈ Ρ ΡΠΊΡΠ°Π½Π° ΠΈ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΠΈ Π½Π° ΡΠΊΡΠ°Π½Π΅.
Π‘ΠΎΠ±ΡΡΠΈΠ΅ FocusEvent Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ ΠΏΡΠΈ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠΈ ΠΈΠ»ΠΈ ΠΏΠΎΡΠ΅ΡΠ΅ ΡΠΎΠΊΡΡΠ°.
Π‘ΠΎΠ±ΡΡΠΈΠ΅ KeyEvent ΠΏΡΠΎΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Π½Π°ΠΆΠ°ΡΠΈΠΈ ΠΈ ΠΎΡΠΏΡΡΠΊΠ°Π½ΠΈΠΈ ΠΊΠ»Π°Π²ΠΈΡΠΈ, Π΅ΡΠ»ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΠΈΠΌΠ΅Π΅Ρ ΡΠΎΠΊΡΡ Π²Π²ΠΎΠ΄Π°.
Π‘ΠΎΠ±ΡΡΠΈΠ΅ MouseEvent ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΏΡΠΈ ΠΌΠ°Π½ΠΈΠΏΡΠ»ΡΡΠΈΡΡ ΠΌΡΡΠΈ Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ΅.
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ 3. ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ ΠΌΡΡΠΈ ΠΈ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ
ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ ΠΌΡΡΠΈ
Π‘ΠΎΠ±ΡΡΠΈΠ΅ MouseEvent Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ΅ ΠΏΠΎ Π»ΡΠ±ΠΎΠΉ ΠΈΠ· ΡΠ΅ΠΌΠΈ ΠΏΡΠΈΡΠΈΠ½:
Β· Π½Π°ΠΆΠ°ΡΠΈΠ΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΌΡΡΠΈ — ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ MOUSE_PRESSED;
Β· ΠΎΡΠΏΡΡΠΊΠ°Π½ΠΈΠ΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΌΡΡΠΈ — ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ MOUSE_RELEASED;
Β· ΡΠ΅Π»ΡΠΎΠΊ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡΡΠΈ — ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ MOUSE_CLICKED (Π½Π°ΠΆΠ°ΡΠΈΠ΅ ΠΈ ΠΎΡΠΏΡΡΠΊΠ°Π½ΠΈΠ΅ Π½Π΅ ΡΠ°Π·Π»ΠΈΡΠ°ΡΡΡΡ);
Β· ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΌΡΡΠΈ — ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ MOUSE_MOVED;
Β· ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΌΡΡΠΈ Ρ Π½Π°ΠΆΠ°ΡΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ — ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ MOUSE_DRAGGED;
Β· ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΠ΅ ΠΊΡΡΡΠΎΡΠ° ΠΌΡΡΠΈ Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ΅ — ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ MOUSE_ENTERED;
Β· Π²ΡΡ ΠΎΠ΄ ΠΊΡΡΡΠΎΡΠ° ΠΌΡΡΠΈ ΠΈΠ· ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° — ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ MOUSE_EXITED.
ΠΠ»Ρ ΠΈΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π΅ΡΡΡ ΡΠ΅ΠΌΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² Π² Π΄Π²ΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°Ρ :
public interface MouseListener extends EventListener{
public void mouseClicked (MouseEvent e);
public void mousePressed (MouseEvent e) ;
public void mouseReleased (MouseEvent e);
public void mouseEntered (MouseEvent e);
public void mouseExited (MouseEvent e);
}
public interface MouseMotionListener extends EventListener{
public void mouseDragged (MouseEvent e);
public void mouseMoved (MouseEvent e);
}
ΠΡΠΈ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΎΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° Π΅ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ ΠΊΡΡΡΠΎΡΠ° ΠΌΡΡΠΈ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌΠΈ e. getx (), e. getv (), ΠΈΠ»ΠΈ ΠΎΠ΄Π½ΠΈΠΌ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ e. getPoint (), Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΠΈΠΌ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΠΊΠ»Π°ΡΡΠ° Point.
ΠΠ²ΠΎΠΉΠ½ΠΎΠΉ ΡΠ΅Π»ΡΠΎΠΊ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡΡΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΡΠ»Π΅Π΄ΠΈΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ e. getClickCount (), Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΠΈΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ΅Π»ΡΠΊΠΎΠ². ΠΡΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΠΈ ΠΌΡΡΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ 0.
Π£Π·Π½Π°ΡΡ, ΠΊΠ°ΠΊΠ°Ρ ΠΊΠ½ΠΎΠΏΠΊΠ° Π±ΡΠ»Π° Π½Π°ΠΆΠ°ΡΠ°, ΠΌΠΎΠΆΠ½ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Π° e. getModifiers () ΠΊΠ»Π°ΡΡΠ° inputEvent ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ΠΌ ΡΠΎ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌΠΈ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ°ΠΌΠΈ ΠΊΠ»Π°ΡΡΠ° inputEvent:
Β· BUTTON1_MASK — Π½Π°ΠΆΠ°ΡΠ° ΠΏΠ΅ΡΠ²Π°Ρ ΠΊΠ½ΠΎΠΏΠΊΠ°, ΠΎΠ±ΡΡΠ½ΠΎ Π»Π΅Π²Π°Ρ;
Β· BUTTON2_MASK — Π½Π°ΠΆΠ°ΡΠ° Π²ΡΠΎΡΠ°Ρ ΠΊΠ½ΠΎΠΏΠΊΠ°, ΠΎΠ±ΡΡΠ½ΠΎ ΡΡΠ΅Π΄Π½ΡΡ, ΠΈΠ»ΠΈ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Π½Π°ΠΆΠ°ΡΡ ΠΎΠ±Π΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ Π½Π° Π΄Π²ΡΡ ΠΊΠ½ΠΎΠΏΠΎΡΠ½ΠΎΠΉ ΠΌΡΡΠΈ;
Β· BUTTON3_MASK — Π½Π°ΠΆΠ°ΡΠ° ΡΡΠ΅ΡΡΡ ΠΊΠ½ΠΎΠΏΠΊΠ°, ΠΎΠ±ΡΡΠ½ΠΎ ΠΏΡΠ°Π²Π°Ρ.
ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ
Π‘ΠΎΠ±ΡΡΠΈΠ΅ KeyEvent ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ΅ ΠΏΠΎ Π»ΡΠ±ΠΎΠΉ ΠΈΠ· ΡΡΠ΅Ρ ΠΏΡΠΈΡΠΈΠ½:
Β· Π½Π°ΠΆΠ°ΡΠ° ΠΊΠ»Π°Π²ΠΈΡΠ° — ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ KEY_PRESSED;
Β· ΠΎΡΠΏΡΡΠ΅Π½Π° ΠΊΠ»Π°Π²ΠΈΡΠ° — ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ KEY_RELEASED;
Β· Π²Π²Π΅Π΄Π΅Π½ ΡΠΈΠΌΠ²ΠΎΠ» — ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ KEY_TYPED.
ΠΠΎΡΠ»Π΅Π΄Π½Π΅Π΅ ΡΠΎΠ±ΡΡΠΈΠ΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ ΠΈΠ·-Π·Π° ΡΠΎΠ³ΠΎ, ΡΡΠΎ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ Π²Π²ΠΎΠ΄ΡΡΡΡ Π½Π°ΠΆΠ°ΡΠΈΠ΅ΠΌ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΊΠ»Π°Π²ΠΈΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π·Π°Π³Π»Π°Π²Π½ΡΠ΅ Π±ΡΠΊΠ²Ρ Π²Π²ΠΎΠ΄ΡΡΡΡ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΠ΅ΠΉ ΠΊΠ»Π°Π²ΠΈΡ +<οΏ½Π±ΡΠΊΠ²Π°>. ΠΡΠΏΠΎΠΌΠ½ΠΈΡΠ΅ Π΅ΡΠ΅ <οΏ½Πlt>-Π²Π²ΠΎΠ΄ Π² MS Windows. ΠΠ°ΠΆΠ°ΡΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΡ ΠΊΠ»Π°Π²ΠΈΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π΅ Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΡΠΎΠ±ΡΡΠΈΠ΅ KEY_TYPED.
ΠΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΡΡ ΡΡΠΈ ΡΠΎΠ±ΡΡΠΈΡ ΡΡΠ΅ΠΌΡ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌΠΈ, ΠΎΠΏΠΈΡΠ°Π½Π½ΡΠΌΠΈ Π² ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ΅:
public interface KeyListener extends EventListener{
public void keyTyped (KeyEvent e);
public void keyPressed (KeyEvent e);
public void keyReleased (KeyEvent e);
}
ΠΡΠ³ΡΠΌΠ΅Π½Ρ Π΅ ΡΡΠΈΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ Π΄Π°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ.
ΠΠ΅ΡΠΎΠ΄ e. getKeyChar () Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠΈΠΌΠ²ΠΎΠ» Unicode ΡΠΈΠΏΠ° char, ΡΠ²ΡΠ·Π°Π½Π½ΡΠΉ Ρ ΠΊΠ»Π°Π²ΠΈΡΠ΅ΠΉ. ΠΡΠ»ΠΈ Ρ ΠΊΠ»Π°Π²ΠΈΡΠ΅ΠΉ Π½Π΅ ΡΠ²ΡΠ·Π°Π½ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ ΡΠΈΠΌΠ²ΠΎΠ», ΡΠΎ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ° CHAR_UNDEFINED.
ΠΠ΅ΡΠΎΠ΄ e. getKeyCode () Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΊΠΎΠ΄ ΠΊΠ»Π°Π²ΠΈΡΠΈ Π² Π²ΠΈΠ΄Π΅ ΡΠ΅Π»ΠΎΠ³ΠΎ ΡΠΈΡΠ»Π° ΡΠΈΠΏΠ° int. Π ΠΊΠ»Π°ΡΡΠ΅ KeyEvent ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Ρ ΠΊΠΎΠ΄Ρ Π²ΡΠ΅Ρ ΠΊΠ»Π°Π²ΠΈΡ Π² Π²ΠΈΠ΄Π΅ ΠΊΠΎΠ½ΡΡΠ°Π½Ρ, Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΡ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠΌΠΈ ΠΊΠΎΠ΄Π°ΠΌΠΈ ΠΊΠ»Π°Π²ΠΈΡ (virtual key codes), Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, VK_FI, VK_SHIFT, VK_A, VK_B, VK_PLUS. ΠΠ½ΠΈ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Ρ Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΊ ΠΊΠ»Π°ΡΡΡ KeyEvent. Π€Π°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΡΠ·ΡΠΊΠ° ΠΈ ΡΠ°ΡΠΊΠ»Π°Π΄ΠΊΠΈ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ. Π§ΡΠΎΠ±Ρ ΡΠ·Π½Π°ΡΡ, ΠΊΠ°ΠΊΠ°Ρ ΠΊΠ»Π°Π²ΠΈΡΠ° Π±ΡΠ»Π° Π½Π°ΠΆΠ°ΡΠ°, Π½Π°Π΄ΠΎ ΡΡΠ°Π²Π½ΠΈΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΌΠ΅ΡΠΎΠ΄Π° getKeyCode () Ρ ΡΡΠΈΠΌΠΈ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ°ΠΌΠΈ. ΠΡΠ»ΠΈ ΠΊΠΎΠ΄Π° ΠΊΠ»Π°Π²ΠΈΡΠΈ Π½Π΅Ρ, ΠΊΠ°ΠΊ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΏΡΠΈ Π½Π°ΡΡΡΠΏΠ»Π΅Π½ΠΈΠΈ ΡΠΎΠ±ΡΡΠΈΡ KEY_TYPED, ΡΠΎ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ VK_UNDEFINED.
Π§ΡΠΎΠ±Ρ ΡΠ·Π½Π°ΡΡ, Π½Π΅ Π½Π°ΠΆΠ°ΡΠ° Π»ΠΈ ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΊΠ»Π°Π²ΠΈΡ-ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠ², ,
,, Π½Π°Π΄ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΠ½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½Π½ΡΠΌ ΠΎΡ ΠΊΠ»Π°ΡΡΠ° inputEvent ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ getModifiers () ΠΈ ΡΡΠ°Π²Π½ΠΈΡΡ Π΅Π³ΠΎ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Ρ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ°ΠΌΠΈ ALT_MASK, CTRL_MASK, META_MASK, SHIFT_MASK. ΠΡΡΠ³ΠΎΠΉ ΡΠΏΠΎΡΠΎΠ± — ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ isAltDown (), isControlDown (), isMetaDown (), isShiftDown ().ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ 4. ΠΠΈΡΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ²
Π Π°Π±ΠΎΡΡ ΠΌΠ½ΠΎΠ³ΠΎΠ·Π°Π΄Π°ΡΠ½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΏΡΠΎΡΡΠΈΡΡ ΠΈ ΡΡΠΊΠΎΡΠΈΡΡ, Π΅ΡΠ»ΠΈ ΡΠ°Π·ΡΠ΅ΡΠΈΡΡ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΡΡΡΠΈΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠ°ΠΌ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π² ΠΎΠ΄Π½ΠΎΠΌ Π°Π΄ΡΠ΅ΡΠ½ΠΎΠΌ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅. Π’Π°ΠΊΠΈΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΡ Π½Π°Π·ΡΠ²Π°ΡΡΡΡ threads. Π ΡΡΡΡΠΊΠΎΠΉ Π»ΠΈΡΠ΅ΡΠ°ΡΡΡΠ΅ ΠΏΡΠ΅Π΄Π»Π°Π³Π°ΡΡΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄Ρ ΡΡΠΎΠ³ΠΎ ΡΠ»ΠΎΠ²Π°. ΠΡΠΊΠ²Π°Π»ΡΠ½ΡΠΉ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ — «Π½ΠΈΡΡ». Π§Π°ΡΡΠΎ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΡΡ thread ΠΊΠ°ΠΊ «ΠΏΠΎΡΠΎΠΊ» ΠΈΠ»ΠΈ «ΠΏΠΎΠ΄ΠΏΡΠΎΡΠ΅ΡΡ» .
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΠΎΡΠΎΠΊΠΎΠ² ΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈΠΌΠΈ — ΡΡΠΎ Π΄Π΅Π»ΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ, Π½ΠΎ Π² ΡΠ·ΡΠΊ Java Π²Π²Π΅Π΄Π΅Π½Ρ ΡΡΠ΅Π΄ΡΡΠ²Π° Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΠΈΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΠ΅ Π½Π° Java, Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π²ΠΎ Π²ΡΠ΅Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ , ΡΡΠΈ ΡΡΠ΅Π΄ΡΡΠ²Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ°ΠΌΡΠ΅ ΠΎΠ±ΡΠΈΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ.
ΠΠΎΠ³Π΄Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ ΠΌΠ°ΡΠΈΠ½Ρ Java Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΎΠ½Π° ΡΠΎΠ·Π΄Π°Π΅Ρ ΠΎΠ΄ΠΈΠ½ ΠΏΡΠΎΡΠ΅ΡΡ Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΠΏΠΎΡΠΎΠΊΠ°ΠΌΠΈ. ΠΠ»Π°Π²Π½ΡΠΉ (main) ΠΏΠΎΡΠΎΠΊ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ, ΠΎΠ½ ΡΡΠ°Π·Ρ ΠΆΠ΅ ΠΎΠ±ΡΠ°ΡΠ°Π΅ΡΡΡ ΠΊ ΠΌΠ΅ΡΠΎΠ΄Ρ main () ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΡΠΎΡ ΠΏΠΎΡΠΎΠΊ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΡΠΎΠ΄ΠΈΡΡ Π½ΠΎΠ²ΡΠ΅ ΠΏΠΎΡΠΎΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅, Π² ΡΠ²ΠΎΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ, ΡΠΏΠΎΡΠΎΠ±Π½Ρ ΠΏΠΎΡΠΎΠ΄ΠΈΡΡ ΠΏΠΎΡΠΎΠΊΠΈ ΠΈ Ρ. Π΄. ΠΠ»Π°Π²Π½ΡΠΌ ΠΏΠΎΡΠΎΠΊΠΎΠΌ Π°ΠΏΠ»Π΅ΡΠ° ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΏΠΎΡΠΎΠΊΠΎΠ² Π±ΡΠ°ΡΠ·Π΅ΡΠ°, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π°ΠΏΠ»Π΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ. ΠΠ»Π°Π²Π½ΡΠΉ ΠΏΠΎΡΠΎΠΊ Π½Π΅ ΠΈΠ³ΡΠ°Π΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ ΠΎΡΠΎΠ±ΠΎΠΉ ΡΠΎΠ»ΠΈ, ΠΏΡΠΎΡΡΠΎ ΠΎΠ½ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΠΏΠ΅ΡΠ²ΡΠΌ.
ΠΠΎΡΠΎΠΊ Π² Java ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΠΈ ΡΠΏΡΠ°Π²Π»ΡΠ΅ΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌΠΈ ΠΊΠ»Π°ΡΡΠ° Thread. ΠΠΎΡΠ»Π΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΡΡΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· Π΅Π³ΠΎ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠΎΠ² Π½ΠΎΠ²ΡΠΉ ΠΏΠΎΡΠΎΠΊ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ start ().
ΠΠΎΠ»ΡΡΠΈΡΡ ΡΡΡΠ»ΠΊΡ Π½Π° ΡΠ΅ΠΊΡΡΠΈΠΉ ΠΏΠΎΡΠΎΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ
Thread.currentThread ();
ΠΠ»Π°ΡΡ Thread ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Runnable. ΠΡΠΎΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΎΠΏΠΈΡΡΠ²Π°Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΠΌΠ΅ΡΠΎΠ΄ run (). ΠΠΎΠ²ΡΠΉ ΠΏΠΎΡΠΎΠΊ Π±ΡΠ΄Π΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΡΠΎ, ΡΡΠΎ Π·Π°ΠΏΠΈΡΠ°Π½ΠΎ Π² ΡΡΠΎΠΌ ΠΌΠ΅ΡΠΎΠ΄Π΅. ΠΠΏΡΠΎΡΠ΅ΠΌ, ΠΊΠ»Π°ΡΡ Thread ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΡΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΌΠ΅ΡΠΎΠ΄Π° run (), ΠΏΠΎΡΡΠΎΠΌΡ ΠΊΠ»Π°ΡΡ Thread Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠ°ΠΌ ΠΏΠΎ ΡΠ΅Π±Π΅, ΠΎΠ½ Π²ΡΠ΅Π³Π΄Π° ΡΠ°ΡΡΠΈΡΡΠ΅ΡΡΡ. ΠΡΠΈ Π΅Π³ΠΎ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠΈ ΠΌΠ΅ΡΠΎΠ΄ run () ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ.
ΠΠ΅ΡΠΎΠ΄ run () Π½Π΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ², Ρ. ΠΊ. Π½Π΅ΠΊΠΎΠΌΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π² ΠΌΠ΅ΡΠΎΠ΄. ΠΠ½ Π½Π΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, Π΅Π³ΠΎ Π½Π΅ΠΊΡΠ΄Π° ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ. Π ΠΌΠ΅ΡΠΎΠ΄Ρ run () Π½Π΅Π»ΡΠ·Ρ ΠΎΠ±ΡΠ°ΡΠΈΡΡΡΡ ΠΈΠ· ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΡΡΠΎ Π²ΡΠ΅Π³Π΄Π° Π΄Π΅Π»Π°Π΅ΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΈΡΠΏΠΎΠ»Π½ΡΡΡΠ΅ΠΉ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ Java ΠΏΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΠ° ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ start ().
ΠΡΠ°ΠΊ, Π·Π°Π΄Π°ΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΡΠΎΠ·Π΄Π°Π²Π°Π΅ΠΌΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΠ° ΠΌΠΎΠΆΠ½ΠΎ Π΄Π²ΡΠΌΡ ΡΠΏΠΎΡΠΎΠ±Π°ΠΌΠΈ: ΡΠ°ΡΡΠΈΡΠΈΡΡ ΠΊΠ»Π°ΡΡ Thread ΠΈΠ»ΠΈ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Runnable. ΠΠ΅ΡΠ²ΡΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΊΠ»Π°ΡΡΠ° Thread Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΠΎΡΠΎΠΊΠΎΠΌ. ΠΡΠΎΡΠΎΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π² ΡΠ΅Ρ ΡΠ»ΡΡΠ°ΡΡ , ΠΊΠΎΠ³Π΄Π° Π½Π°Π΄ΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄ run (), ΠΈΠ»ΠΈ ΠΊΠ»Π°ΡΡ, ΡΠΎΠ·Π΄Π°ΡΡΠΈΠΉ ΠΏΠΎΡΠΎΠΊ, ΡΠΆΠ΅ ΡΠ°ΡΡΠΈΡΡΠ΅Ρ ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ Π΄ΡΡΠ³ΠΎΠΉ ΠΊΠ»Π°ΡΡ.
ΠΠΎΡΠΌΠΎΡΡΠΈΠΌ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΡ ΠΈ ΠΌΠ΅ΡΠΎΠ΄Ρ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΊΠ»Π°ΡΡ Thread.