ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Ρ gui Π½Π° java ΠΏΠΎΠ΄ windows
ΠΠ°ΠΊ Π½Π°ΡΠ°ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Swing GUI-Π²ΠΈΠ·Π°ΡΠ΄ΠΎΠΌ IntelliJ IDEA. ΠΠΎΠ΄ΡΠΎΠ±Π½Π°Ρ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ
ΠΠ°Π²Π½ΠΎ Π½Π΅ ΠΏΠΈΡΠ°Π» Π½Π°ΡΡΠΎΠ»ΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° Java Π²ΠΎΠΎΠ±ΡΠ΅ ΠΈ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Swing Π² ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ. ΠΠ΄Π½Π°ΠΊΠΎ, Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎ GUIΡΡ. Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ° Π²ΡΠ±ΡΠ°Π» IntelliJ IDEA Community edition, 2016.1 Π²Π΅ΡΡΠΈΠΈ.
ΠΠ·ΡΠ»ΡΡ Π²Π°ΡΡΡ ΠΈ, Π΅ΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ, ΠΏΠ΅ΡΠ²ΠΎΠ΅, Π½Π° ΡΡΠΎ Π½Π°Π»Π΅ΡΠ΅Π» β Ρ ΠΎΡΡ ΡΠΎ Π²ΡΠ΅ΠΌΡΠ½ Borland Java Builder 2006 Π²ΠΎΠ΄Ρ ΡΡΠ΅ΠΊΠ»ΠΎ Π½Π΅ΠΌΠ°Π»ΠΎ, ΡΠΊΡΠ°Π½Π½ΡΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΏΡΠΎΡΠ΅ Π½Π΅ ΡΡΠ°Π»ΠΎ, ΡΠΊΠΎΡΠ΅Π΅ Π½Π°ΠΎΠ±ΠΎΡΠΎΡ. Π ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΠΏΡΠΈΡΠΈΠ½ Π²ΡΠ±ΠΎΡΠ° IDEA Π±ΡΠ»ΠΎ ΠΊΠ°ΠΊ ΡΠ°Π· Π½Π°Π»ΠΈΡΠΈΠ΅ Swing Π΄ΠΈΠ·Π°ΠΉΠ½Π΅ΡΠ° Β«ΠΈΠ· ΠΊΠΎΡΠΎΠ±ΠΊΠΈΒ», ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΊΠ°ΠΊ ΠΈΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Ρ Ρ ΠΎΠ΄Ρ ΡΠ΅ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π½Π΅ΠΏΠΎΠ½ΡΡΠ½ΠΎ β ΡΠΎΡΠΌΠ° Π³Π΅Π½Π΅ΡΠΈΡΡΡ, ΠΊΠ»Π°ΡΡ ΡΠΎΠ·Π΄Π°ΡΡΡΡ, ΡΠΎΠ·Π΄Π°ΡΡΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΎΠ² ΠΈΠ· Π΄ΠΈΠ·Π°ΠΉΠ½Π΅ΡΠ°β¦ Π½ΠΎ ΠΈ ΡΠΎΠ»ΡΠΊΠΎ: ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ Π½Π°ΡΠ΅Π³ΠΎ ΠΊΠ»Π°ΡΡΠ° ΡΠΎΡΠΌΠ° Π½Π° ΡΠΊΡΠ°Π½Π΅ Π½Π΅ ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ
ΠΠΎΡΠ°ΡΠΈΠ» ΠΈΠ½ΡΠ΅ΡΠ½Π΅Ρ, ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΏΡΠΈΠ±Π»ΠΈΠ·ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π½ΠΎΠ»Ρ. ΠΠ°ΡΠΎΠ΄ Π³ΠΎΠ²ΠΎΡΠΈΡ, ΠΌΠΎΠ», Β«ΡΠΎΠ·Π΄Π°Π²Π°ΠΉ ΠΈ β Π²ΠΏΠ΅ΡΡΠ΄!Β». Π₯ΠΌβ¦
ΠΠΎ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°ΠΌ Π½Π΅Π±ΠΎΠ»ΡΡΠΈΡ ΠΌΡΡΠ°ΡΡΡΠ² Π½Π° ΡΡΡ ΡΠ΅ΠΌΡ ΡΠ΅ΡΠΈΠ» ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°ΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΌΠ½Π΅ Ρ ΡΡΡΡΠΎΠΌ Π±ΡΠ»ΠΎΠ³ΠΎ ΠΎΠΏΡΡΠ° Π±ΡΠ»ΠΎ ΠΈΡΠΊΠ°ΡΡ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ Π»Π΅Π³ΡΠ΅, ΡΠ΅ΠΌ Π½ΠΎΠ²ΠΈΡΠΊΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΠΎΠΎΠ±ΡΠ΅ Π² ΠΏΠ΅ΡΠ²ΡΠΉ ΡΠ°Π· Π²Π°ΡΠ΅Ρ ΡΠΎΡΠΌΡ Π½Π° Swing.
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Swing GUI ΡΠΎΡΠΌ ΡΡΠ΅Π΄ΡΡΠ²Π°ΠΌΠΈ JetBrains IntelliJ IDEA 2016.1
Π ΠΈΡΠΎΠ³Π΅ Π½Π°ΠΌ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ³Π΅Π½Π΅ΡΠΈΠ»ΠΈ ΠΊΠ»Π°ΡΡ-Π½Π°ΡΠ»Π΅Π΄Π½ΠΈΠΊ JDialog (ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ) ΠΈ ΡΠΎΡΠΌΠ° ΠΊ Π½Π΅ΠΌΡ.
ΠΠ°ΠΏΡΡΠΊΠ°Π΅ΠΌ Π½Π°Ρ ΠΏΡΠΎΠ΅ΠΊΡ Π½Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΈβ¦ ΠΎ ΡΠΆΠ°ΡΡΡΠ΄ΠΎ! ΠΏΡΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ IDEA Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ Π² ΠΊΠΎΠ½Π΅Ρ Π½Π°ΡΠ΅Π³ΠΎ ΡΠ°ΠΉΠ»Π° Π½Π΅ΠΊΠΎΡΠΎΡΡΠΉ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΠΊΠΎΠ΄.
Π’Π΅ΠΏΠ΅ΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ ΠΏΠΎΠ½ΡΠ»ΠΈ, ΠΊΠ°ΠΊ ΠΎΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ, ΠΏΠ΅ΡΠ΅ΠΉΠ΄ΡΠΌ ΠΊ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΡΠΎΡΠΈΡ ΡΠΎΡΠΌ β Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ².
ΠΠ΅Π½Π΅ΡΠΈΡΡΡ ΠΊΠ»Π°ΡΡ ΠΈ ΡΠΎΡΠΌΠ° ΠΊ Π½Π΅ΠΌΡ. ΠΠ°ΠΊΠΈΠ΄ΡΠ²Π°Π΅ΠΌ Π½Π° ΡΠΎΡΠΌΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΎΠ². Π GUI Π΄ΠΈΠ·Π°ΠΉΠ½Π΅ΡΠ΅ ΡΠΌΠΎΡΡΠΈΠΌ ΠΈΠΌΡ ΠΊΠΎΡΠ½Π΅Π²ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° (ΠΎΠ±ΡΡΠ½ΠΎ panel1, Π΅ΡΠ»ΠΈ IDEA Π½Π΅ Π·Π°Π΄Π°Π»Π° ΠΈΠΌΡ, Π° ΡΠ°ΠΊΠΎΠ΅ Π±ΡΠ²Π°Π΅Ρ, Π·Π°Π΄Π°ΠΉΡΠ΅ ΠΏΡΠΈΠ½ΡΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎ β Ρ Π΄Π»Ρ Π½Π°Π³Π»ΡΠ΄Π½ΠΎΡΡΠΈ Π½Π°Π·Π²Π°Π» rootPanel).
ΠΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΠΌ ΠΊ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠΌΡ ΠΊΠΎΠ΄Ρ Π½Π°ΡΠ΅Π³ΠΎ ΠΊΠ»Π°ΡΡΠ°.
ΠΡΠ°ΠΊ:
1. ΠΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ Π΄Π»Ρ Π½Π°ΡΠ΅Π³ΠΎ ΠΊΠ»Π°ΡΡΠ° Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ Β«extends JFrameΒ»;
2. ΠΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΠΊΠ»Π°ΡΡΠ° ΡΠΎ ΡΡΡΠΎΠΊΠ°ΠΌΠΈ:
ΠΡΡ. Π€ΠΎΡΠΌΠ° Π³ΠΎΡΠΎΠ²Π° ΠΊ ΡΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΡ. ΠΡΡΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠΌΠΎΡΡΠΈΡΠ΅ Π² ΠΌΠ½ΠΎΠ³ΠΎΡΠΈΡΠ»Π΅Π½Π½ΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡΡ ΠΏΠΎ Swing.
P.S. ΠΠ°ΠΊ Π²Π°ΡΠΈΠ°Π½Ρ, ΠΌΠΎΠΆΠ½ΠΎ Π½Π΅ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡ Π½Π°Ρ ΠΊΠ»Π°ΡΡ ΠΎΡ JFrame, Π° ΡΠΎΠ·Π΄Π°ΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ Π²ΠΈΠ΄Π°:
Π’Π°ΠΊΠΎΠΉ Π²Π°ΡΠΈΠ°Π½Ρ ΡΠΎΠΆΠ΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ β Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΊΠΎΠΌΡ-ΡΠΎ ΠΏΡΠΈΠ³ΠΎΠ΄ΠΈΡΡΡ.
ΠΡΠΎΡΠ΅ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΡΠΎΡΡΠΎΠΉ GUI ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π° ΡΠ·ΡΠΊΠ΅ Java
ΠΡΠ½ΠΎΠ²Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ GUI Π½Π° ΡΠ·ΡΠΊΠ΅ Java. Π£ΡΠΎΠΊ 1.
Π ΡΡΠΎΠΉ ΠΊΠΎΡΠΎΡΠΊΠΎΠΉ ΡΡΠ°ΡΡΠ΅ Ρ ΠΎΡΡ ΠΎΠΏΠΈΡΠ°ΡΡ ΠΏΡΠΎΡΠ΅ΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΠ΅ΠΉ GUI Π½Π° ΡΠ·ΡΠΊΠ΅ Java. ΠΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΡΡΡ, ΡΡΠΎ ΡΠΈΡΠ°ΡΠ΅Π»Ρ Π·Π½Π°ΠΊΠΎΠΌ Ρ ΠΎΡΠ½ΠΎΠ²Π°ΠΌΠΈ ΡΠ·ΡΠΊΠ° Java.
Π ΡΠ°ΠΊ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡ:
Π― Π½Π°Π·Π²Π°Π» ΠΏΡΠΎΠ΅ΠΊΡ guiBase. ΠΠ°ΠΊ Π²ΠΈΠ΄Π½ΠΎ Π½Π° ΡΠΊΡΠΈΠ½Π΅, ΠΏΠ°ΠΏΠΊΠ° src Π½Π΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π½ΠΈΡΠ΅Π³ΠΎ, ΠΏΠΎΡΡΠΎΠΌΡ ΡΠΎΠ·Π΄Π°Π΅ΠΌ Π² Π½Π΅ΠΉ Π½Π°Ρ Π³Π»Π°Π²Π½ΡΠΉ ΠΊΠ»Π°ΡΡ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ ΡΡΠ½ΠΊΡΠΈΡ main.
ΠΡΠΊΡΡΠ²Π°Π΅ΠΌ ΡΠΎΠ·Π΄Π°Π½Π½ΡΡ GUI ΡΠΎΡΠΌΡ, Π½Π°ΠΆΠΈΠΌΠ°Π΅ΠΌ Π½Π° JPanel ΠΈ Π·Π°Π΄Π°Π΅ΠΌ Π΅Π³ΠΎ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ Π² ΠΏΠΎΠ»Π΅ field name, Ρ Π·Π°Π΄Π°Π» panel.
ΠΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΎ ΠΏΠ΅ΡΠ΅ΡΠ°ΡΠΊΠΈΠ²Π°Π΅ΠΌ Π½Π° ΡΠΎΡΠΌΡ Ρ ΠΏΡΠ°Π²ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ JTextField, JPasswordField ΠΈ JButton:
ΠΡΡΠ°Π»ΠΎΡΡ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΊΠΎΠ΄ ΠΈ ΡΠ²ΡΠ·Π°ΡΡ Π½Π°ΡΡ ΡΠΎΡΠΌΡ Ρ Π½ΠΈΠΌ. ΠΠΎΠ³Π΄Π° ΠΌΡ Π΄ΠΎΠ±Π°Π²Π»ΡΠ»ΠΈ ΡΠΎΡΠΌΡ MainWindow, Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠΎΠ·Π΄Π°Π»ΡΡ ΠΈ ΠΊΠ»Π°ΡΡ MainWindow, ΡΡΠΎΡ ΠΊΠ»Π°ΡΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΊΠ»Π°ΡΡΠΎΠΌ ΡΠΎΠ·Π΄Π°Π½Π½ΠΎΠΉ ΡΠΎΡΠΌΡ, Ρ.Π΅. ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΡΠΎΡ ΠΊΠ»Π°ΡΡ Π±ΡΠ΄Π΅Ρ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°ΡΡ Π²ΡΠ΅ ΡΠΎΠ±ΡΡΠΈΡ Π΄Π°Π½Π½ΠΎΠΉ ΡΠΎΡΠΌΡ.
Π‘ΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅ ΡΡΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° Π±ΡΠ΄Π΅Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°ΡΡΡΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠΎΡΠΌΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Π΅ΡΠ»ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π½ΠΎΠ²ΡΡ ΠΊΠ½ΠΎΠΏΠΊΡ JButton, ΠΌΡ ΡΠ²ΠΈΠ΄ΠΈΠΌ Π΅Π³ΠΎ ΠΈΠ΄Π΅Π½Π΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡ Π² ΠΏΡΠΈΠ²Π°ΡΠ½ΡΡ Π°ΡΡΠΈΠ±ΡΡΠ°Ρ (ΡΠ²ΠΎΠΉΡΡΠ°Ρ ) ΠΊΠ»Π°ΡΡΠ° MainWindow.
Π₯ΠΎΡΡ ΠΊΠ»Π°ΡΡ Π½Π°ΡΠ΅Π³ΠΎ ΠΎΠΊΠ½Π° ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ, Π½ΠΎ Π΄Π°ΠΆΠ΅ ΡΠ΅ΠΉΡΠ°Ρ ΠΎΠ½ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ Π½ΠΈΡΠ΅Π³ΠΎ ΠΎΠ±ΡΠ΅Π³ΠΎ Ρ GUI, ΠΏΠΎΡΡΠΎΠΌΡ ΡΠ°ΡΡΠΈΡΠΈΠΌ Π΅Π³ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ JFrame ΠΈ ΡΠ½Π°ΡΠ»Π΅Π΄ΡΠ΅ΠΌ Π²ΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ GUI.
Π Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ ΠΌΡ ΠΈΠΌΠ΅Π΅ΠΌ ΡΠΎΡΠΌΡ MainWindow ΠΈ ΠΊΠ»Π°ΡΡ MainWindow ΡΠ°ΡΡΠΈΡΠ΅Π½Π½ΡΠΉ Ρ ΠΏΠΎΠΌΠΎΡΡΡ JFrame. Π‘Π΅ΠΉΡΠ°Ρ Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ Π²ΡΠ΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½ΡΠ΅ GUI ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΊΠ°ΠΊ ΡΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅ ΠΊΠ»Π°ΡΡΠ° MainWindow this.getContentPane().add(panel); ΠΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»Π° MainWindow.java Π±ΡΠ΄Π΅Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
ΠΡΠ»ΠΈ ΠΏΠΎΠΏΡΠΎΠ±ΡΠ΅ΡΠ΅ Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΊΠΎΠ΄, Π²Ρ ΡΠ½ΠΎΠ²Π° ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ ΡΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ βHello, Govzalla!β. ΠΠ΅Π»ΠΎ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΌΡ ΡΠΎΠ·Π΄Π°Π»ΠΈ ΠΊΠ»Π°ΡΡ ΠΈ ΡΠΎΡΠΌΡ ΠΊ Π½Π΅ΠΌΡ, Π½ΠΎ Π½Π΅ ΡΠΎΠ·Π΄Π°Π»ΠΈ ΠΈΠ½ΡΡΠ°Π½ΡΠΈΡ ΡΡΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°.
ΠΡΠΈΡΠ»ΠΎ Π²ΡΠ΅ΠΌΡ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΠ°ΠΉΠ» Main.java ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΡΠ΄Π° ΠΊΠΎΠ΄ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π½Π°ΡΠ΅Π³ΠΎ GUI:
ΠΠ°ΠΆΠ°Π² Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡ Button Π²Ρ Π·Π°ΠΌΠ΅ΡΠΈΡΠ΅, ΡΡΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ ΡΠ΅Π°Π³ΠΈΡΡΠ΅Ρ. ΠΠ΅Π»ΠΎ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΌΡ Π΅ΡΠ΅ Π½Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΡΠ»ΡΡΠ°ΡΠ΅Π»Ρ (Listener) Π΄Π»Ρ ΡΠΎΠ±ΡΡΠΈΠΉ (Events) ΠΊΠ½ΠΎΠΏΠΊΠΈ Button.
Π‘Π»ΡΡΠ°ΡΠ΅Π»Ρ ΡΠΎΠ±ΡΡΠΈΠΉ (Event listener) JButton Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΈΠΌΠΏΠ»Π΅Π½ΡΠ°ΡΠΈΠ΅ΠΉ Π°Π΄Π°ΠΏΡΠ΅ΡΠ° ActionListener, ΠΏΠΎΡΡΠΎΠΌΡ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΊΠΎΠ΄ Π² ΡΠ΅Π»ΠΎ ΠΊΠ»Π°ΡΡΠ° MainWindow:
ΠΠ΅ΡΠΎΠ΄ actionPerformed() Π±ΡΠ΄Π΅Ρ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ Π²ΡΠ΅ ΡΠΎΠ±ΡΡΠΈΡ ΠΊΠ½ΠΎΠΏΠΊΠΈ button1, Π½ΠΎ Π΄Π»Ρ Π½Π°ΡΠ°Π»Π° Π΅ΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΊΠ°Π·Π°ΡΡ ΠΊΠ½ΠΎΠΏΠΊΠ΅ button1 ΠΊΠ°ΠΊΠΎΠΉ ΠΊΠ»Π°ΡΡ Π±ΡΠ΄Π΅Ρ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ, ΠΏΠΎΡΡΠΎΠΌΡ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΊΠΎΠ΄ Π² ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΠΊΠ»Π°ΡΡΠ° MainWIndow: this.button1.addActionListener(new MyButtonListener()); Π§ΡΠΎΠ±Ρ Π½Π°Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ Π½Π΅ Π±ΡΠ» Π±Π΅ΡΡΠΌΡΡΠ»Π΅Π½Π½ΡΠΌ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΊΠΎΠ΄ Π² ΠΌΠ΅ΡΠΎΠ΄ actionPerformed():
Π‘Π΅ΠΉΡΠ°Ρ ΡΠΆΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π±ΡΠ΄Π΅Ρ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΡΠ΅Π°Π³ΠΈΡΠΎΠ²Π°ΡΡ Π½Π° ΡΠΎΠ±ΡΡΠΈΡ, Π½Π΅ Π½Π° Π²ΡΠ΅ ΡΠΎΠ±ΡΡΠΈΡ, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ ΠΏΠΎΠΏΡΡΠ°ΡΡΡΡ ΠΎΡΠΊΠ»ΡΡΠΈΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π°ΠΆΠ°Π² Π½Π° ΠΊΡΠ΅ΡΡΠΈΠΊ, ΠΎΠΊΠ½ΠΎ ΠΈΡΡΠ΅Π·Π½Π΅Ρ, Π½ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π²ΡΠ΅ Π΅ΡΠ΅ Π±ΡΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ, Ρ.ΠΊ. Π½Π΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΡΠΎΠ±ΡΡΠΈΠΉ Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°.
Π‘ΠΊΠ°ΠΆΠΈ Β«Π½Π΅ΡΒ» Electron! ΠΠΈΡΠ΅ΠΌ Π±ΡΡΡΡΠΎΠ΅ Π΄Π΅ΡΠΊΡΠΎΠΏΠ½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° JavaFX
Π ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π΅ Π²ΡΠ΅ΠΌΡ Π½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡΠΊΠΈΡ ΡΠΎΡΡΠΌΠ°Ρ ΡΠ°Π·Π²Π΅ΡΠ½ΡΠ»ΠΈΡΡ Π½Π΅ΡΠ»Π°Π±ΡΠ΅ Π΄ΠΈΡΠΊΡΡΡΠΈΠΈ (Π΄Π»Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ° ΡΠΌ. Π·Π΄Π΅ΡΡ, Π·Π΄Π΅ΡΡ ΠΈ Π·Π΄Π΅ΡΡ, ΠΈ ΡΡΠ° ΡΠ΅Π³ΠΎΠ΄Π½ΡΡΠ½ΡΡ) ΠΎΠ± Electron ΠΈ Π΅Π³ΠΎ Π²Π»ΠΈΡΠ½ΠΈΠΈ Π½Π° ΡΡΠ΅ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π΄Π΅ΡΠΊΡΠΎΠΏΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.
ΠΡΠ»ΠΈ Π²Ρ Π½Π΅ Π·Π½Π°Π΅ΡΠ΅ Electron, ΡΠΎ ΡΡΠΎ ΠΏΠΎ ΡΡΡΠΈ Π²Π΅Π±-Π±ΡΠ°ΡΠ·Π΅Ρ (Chromium) Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ Π²Π°ΡΠ΅ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅β¦ ΡΠ»ΠΎΠ²Π½ΠΎ Π½Π°ΡΡΠΎΡΡΠ°Ρ Π΄Π΅ΡΠΊΡΠΎΠΏΠ½Π°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° (Π½Π΅Ρ, ΡΡΠΎ Π½Π΅ ΡΡΡΠΊΠ°)β¦ ΡΡΠΎ Π΄Π°ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²Π΅Π±-ΡΡΠ΅ΠΊ ΠΈ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΠΊΡΠΎΡΡ-ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΡΠ΅ Π΄Π΅ΡΠΊΡΠΎΠΏΠ½ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
Π‘Π°ΠΌΡΠ΅ Π½ΠΎΠ²ΡΠ΅, Ρ ΠΈΠΏΡΡΠ΅ΡΡΠΊΠΈΠ΅ Π΄Π΅ΡΠΊΡΠΎΠΏΠ½ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π² Π½Π°ΡΠ΅ Π²ΡΠ΅ΠΌΡ ΡΠ΄Π΅Π»Π°Π½Ρ Π½Π° Electron, Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ Slack, VS Code, Atom ΠΈ GitHub Desktop. ΠΠ΅ΠΎΠ±ΡΡΠ°ΠΉΠ½ΡΠΉ ΡΡΠΏΠ΅Ρ .
ΠΡ ΠΏΠΈΡΠ°Π»ΠΈ Π΄Π΅ΡΠΊΡΠΎΠΏΠ½ΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π΄Π΅ΡΡΡΠΈΠ»Π΅ΡΠΈΡΠΌΠΈ. Π‘ Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ, Π²Π΅Π± ΡΠΎΠ»ΡΠΊΠΎ Π½Π°ΡΠ°Π» ΡΠ°Π·Π²ΠΈΠ²Π°ΡΡΡΡ ΠΌΠ΅Π½Π΅Π΅ 20 Π»Π΅Ρ Π½Π°Π·Π°Π΄, ΠΈ Π½Π° ΠΏΡΠΎΡΡΠΆΠ΅Π½ΠΈΠΈ ΠΏΠΎΡΡΠΈ Π²ΡΠ΅Π³ΠΎ ΡΡΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΎΠ½ ΡΠ»ΡΠΆΠΈΠ» ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ Π΄ΠΎΡΡΠ°Π²ΠΊΠΈ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΎΠ² ΠΈ Π°Π½ΠΈΠΌΠΈΡΠΎΠ²Π°Π½Π½ΡΡ Β«Π³ΠΈΡΠΎΠΊΒ». ΠΠΈΠΊΡΠΎ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π» Π΅Π³ΠΎ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΠΎΠ»Π½ΠΎΡΠ΅Π½Π½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π΄Π°ΠΆΠ΅ ΡΠ°ΠΌΡΡ ΠΏΡΠΎΡΡΡΡ !
ΠΠ΅ΡΡΡΡ Π»Π΅Ρ Π½Π°Π·Π°Π΄ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ ΡΠ΅Π±Π΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΡΡ, ΡΡΠΎ ΡΡΠ΅ΠΊ Π²Π΅Π±-ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π΄Π΅ΡΠΊΡΠΎΠΏΠ½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠΎ Π½Π°ΡΡΡΠΏΠΈΠ» 2017 Π³ΠΎΠ΄, ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠΌΠ½ΡΡ Π»ΡΠ΄Π΅ΠΉ ΠΏΠΎΠ»Π°Π³Π°ΡΡ, ΡΡΠΎ Electron β ΠΎΡΠ»ΠΈΡΠ½Π°Ρ ΠΈΠ΄Π΅Ρ!
ΠΠ΄Π΅ΡΡ Π½Π΅ ΡΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΠΏΡΠ΅Π²ΠΎΡΡ ΠΎΠ΄ΡΡΠ²Π° Π²Π΅Π±-ΡΡΠ΅ΠΊΠ° Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ (ΠΎΠ½ Π΄Π°Π»ΡΠΊ ΠΎΡ ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΏΡΠ΅Π²ΠΎΡΡ ΠΎΠ΄ΡΡΠ²Π°, ΠΈ Π²ΡΡΠ΄ Π»ΠΈ ΠΊΡΠΎ-ΡΠΎ Π±ΡΠ΄Π΅Ρ ΡΠΏΠΎΡΠΈΡΡ, ΡΡΠΎ Π²Π΅Π± β ΡΡΠΎ Π±Π°ΡΠ΄Π°ΠΊ), ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΎΠ²Π°Π» ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΡ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠ² Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ UI Π½Π° Π΄Π΅ΡΠΊΡΠΎΠΏΠ°Ρ . ΠΡΠ»ΠΈ Π»ΡΠ΄ΠΈ ΠΏΡΠ΅Π΄ΠΏΠΎΡΠΈΡΠ°ΡΡ ΠΎΡΠ³ΡΡΠΆΠ°ΡΡ ΡΠΎ ΡΠ²ΠΎΠΈΠΌΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°ΠΌΠΈ ΡΠ΅Π»ΡΠΉ Π²Π΅Π±-Π±ΡΠ°ΡΠ·Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΡΠ»ΠΈΡΠ½ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ Π²ΡΠΎΠ΄Π΅ JavaScript (ΡΠ°ΡΠΊΠ°Π·ΠΌ) Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ, ΡΡΠΎ-ΡΠΎ ΠΏΠΎΡΠ»ΠΎ ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ Π½Π΅ ΡΠ°ΠΊ.
Π’Π°ΠΊ ΡΡΠΎ ΡΡΠΎ Π·Π° ΡΠΆΠ°ΡΠ½ΡΠ΅ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΎΠΈΠ³ΡΠ°Π»ΠΈ ΠΊΠΎΠ½ΠΊΡΡΠ΅Π½ΡΠ½ΡΡ Π±ΠΎΡΡΠ±Ρ Π²Π΅Π±-ΡΡΠ΅ΠΊΡ?
Π― ΡΠ΅ΡΠΈΠ» Π²Π·Π³Π»ΡΠ½ΡΡΡ ΠΈ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ΅Π°Π»ΡΠ½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΡΡΠΈΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ.
ΠΠ»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Ρ Electron
ΠΠ»ΠΈ Π²Ρ Π½Π΅ Π²ΠΎΠ·ΡΠ°ΠΆΠ°Π΅ΡΠ΅, ΡΡΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π³ΡΡΠΏΠΏ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π±ΡΠ΄ΡΡ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΠ°Π·Π½ΡΠ΅ Π²Π΅ΡΡΠΈΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΏΠΎΠ΄ ΡΠ°Π·Π½ΡΠ΅ ΠΠ‘, ΡΠΎ Π²Π°ΡΠΈΠ°Π½ΡΡ Π²ΡΠ³Π»ΡΠ΄ΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΠ°ΠΊ: AppKit Π΄Π»Ρ MacOS, WPF Π΄Π»Ρ Windows (Ρ Π½Π΅ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΡΡ ΠΏΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ ΠΏΠΎΠ΄ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠ΅ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ, ΡΠ°ΠΊ ΡΡΠΎ Π΄Π°ΠΉΡΠ΅ Π·Π½Π°ΡΡ, ΠΏΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, ΠΊΠ°ΠΊΠΈΠ΅ Π²Π°ΡΠΈΠ°Π½ΡΡ Π² Π½Π°ΡΠΈ Π΄Π½ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠΏΡΠ»ΡΡΠ½Ρ).
ΠΠ΄Π½Π°ΠΊΠΎ ΡΠ΅Π°Π»ΡΠ½ΡΠ΅ ΠΊΠΎΠ½ΠΊΡΡΠ΅Π½ΡΡ Electron β ΡΡΠΎ ΠΌΡΠ»ΡΡΠΈΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΡΠ΅ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΈ. ΠΡΠΌΠ°Ρ, ΡΡΠ΅Π΄ΠΈ Π½ΠΈΡ ΡΠ°ΠΌΡΠΌΠΈ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΠΌΠΈ ΡΠ΅Π³ΠΎΠ΄Π½Ρ ΡΠ²Π»ΡΡΡΡΡ GTK+, Qt ΠΈ JavaFX.
GTK+ Π½Π°ΠΏΠΈΡΠ°Π½ Π½Π° C, Π½ΠΎ ΡΠ²ΡΠ·Π°Π½ ΡΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠΌΠΈ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΡΠ·ΡΠΊΠ°ΠΌΠΈ. ΠΡΠΎΡ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΡΡ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ½ΠΎΠΉ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ GNOME-3.
Qt ΠΊΠ°ΠΆΠ΅ΡΡΡ ΡΠ°ΠΌΠΎΠΉ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΎΠΉ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²ΠΎΠΉ Electron Π² Π΄ΠΈΡΠΊΡΡΡΠΈΡΡ , ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠΏΠ°Π΄Π°Π»ΠΈΡΡ ΠΌΠ½Π΅ Π½Π° Π³Π»Π°Π·Π°β¦ ΠΡΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° C++, Π½ΠΎ ΡΠΎΠΆΠ΅ ΡΠ²ΡΠ·Π°Π½Π½Π°Ρ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΡΠ·ΡΠΊΠ°ΠΌΠΈ (Ρ ΠΎΡΡ ΠΊΠ°ΠΆΠ΅ΡΡΡ, ΡΡΠΎ Π½ΠΈΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠ· Π½ΠΈΡ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ Π½Π° ΠΊΠΎΠΌΠΌΠ΅ΡΡΠ΅ΡΠΊΠΎΠΉ ΠΎΡΠ½ΠΎΠ²Π΅, ΠΈ ΡΠ»ΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ, Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΎΠ½ΠΈ Π΄ΠΎΡΠ°Π±ΠΎΡΠ°Π½Ρ). Qt Π²ΡΠΎΠ΄Π΅ Π±Ρ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΠΉ Π²ΡΠ±ΠΎΡ Π΄Π»Ρ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌ.
JavaFX
ΠΠ΄Π½Π°ΠΊΠΎ Π² ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ Ρ ΡΠΊΠΎΠ½ΡΠ΅Π½ΡΡΠΈΡΡΡΡΡ Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ Π΄Π΅ΡΠΊΡΠΎΠΏΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° JavaFX, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Ρ ΡΡΠΈΡΠ°Ρ, ΡΡΠΎ JavaFX ΠΈ JVM ΠΎΡΠ»ΠΈΡΠ½ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡ Π΄Π»Ρ Π΄Π΅ΡΠΊΡΠΎΠΏΠ½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ.
Π§ΡΠΎ Π±Ρ Π²Ρ Π½ΠΈ Π΄ΡΠΌΠ°Π»ΠΈ ΠΎ JVM, Π½Π΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ Π΄ΡΡΠ³ΠΎΠΉ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ (ΠΊΡΠΎΠΌΠ΅, ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ, ΡΠ°ΠΌΠΎΠ³ΠΎ Electron!), Π½Π°ΡΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΎΡΡΠΎΠΉ Π΄Π»Ρ ΠΊΡΠΎΡΡ-ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ. ΠΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ Π²Ρ ΡΠΎΠ·Π΄Π°Π»ΠΈ ΡΠ²ΠΎΠΉ jar, Π½Π° Π»ΡΠ±ΠΎΠΉ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΡΡ Π΅Π³ΠΎ ΡΡΠ΅Π΄ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ Π²ΡΠ΅Ρ ΠΠ‘ β ΠΈ ΠΎΠ½ ΠΏΡΠΎΡΡΠΎ Π±ΡΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ.
ΠΡΠΈ Π±ΠΎΠ»ΡΡΠΎΠΌ ΡΠ°Π·Π½ΠΎΠΎΠ±ΡΠ°Π·ΠΈΠΈ ΡΠ·ΡΠΊΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ΅ΠΉΡΠ°Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ Π² JVM, Π²ΡΠ±ΠΎΡ ΡΠ·ΡΠΊΠ° ΡΠΎΠΆΠ΅ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΡΠ°ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΠΉ: ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΠΎ Π½Π°ΠΉΠ΄ΡΡΡΡ ΡΠ°ΠΊΠΎΠΉ, ΠΊΠ°ΠΊΠΎΠΉ Π²Π°ΠΌ ΠΏΠΎΠ½ΡΠ°Π²ΠΈΡΡΡ (Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ JavaScript, Π΅ΡΠ»ΠΈ Π²Ρ Π½Π΅ ΡΠΏΠΎΡΠΎΠ±Π½Ρ ΠΎΡ Π½Π΅Π³ΠΎ ΠΎΡΠΊΠ°Π·Π°ΡΡΡΡ), ΠΈ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ JavaFX Ρ Π»ΡΠ±ΡΠΌ ΡΠ·ΡΠΊΠΎΠΌ JVM Π±Π΅Π· ΠΎΡΠΎΠ±ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ. Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅, ΠΊΡΠΎΠΌΠ΅ Java, Ρ ΠΏΠΎΠΊΠ°ΠΆΡ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π½Π° Kotlin.
Π‘Π°ΠΌ UI ΡΠΎΠ·Π΄Π°ΡΡΡΡ ΠΏΡΠΎΡΡΠΎ ΠΊΠΎΠ΄ΠΎΠΌ (Π΅ΡΠ»ΠΈ Ρ Π²Π°Ρ Π΅ΡΡΡ Π·Π°ΠΌΠ΅ΡΠ°ΡΠ΅Π»ΡΠ½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° IDE ΠΎΡ IntelliJ, Eclipse ΠΈΠ»ΠΈ NetBeans: ΡΡΠΎ Π²ΡΡ ΠΎΡΠ»ΠΈΡΠ½ΡΠ΅ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΡΠ΅ IDE, ΠΊΠΎΡΠΎΡΡΠ΅, Π½Π°Π²Π΅ΡΠ½ΠΎΠ΅, ΠΏΡΠ΅Π²ΠΎΡΡ ΠΎΠ΄ΡΡ Π»ΡΠ±ΡΡ ΠΊΠΎΠ½ΠΊΡΡΠ΅Π½ΡΠΎΠ² ΠΈ, ΠΊΡΡΠ°ΡΠΈ, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΡΠΎΠ±ΠΎΠΉ ΡΠ°ΠΌΡΠ΅ Π»ΡΡΡΠΈΠ΅ ΠΎΠ±ΡΠ°Π·ΡΡ Π΄Π΅ΡΠΊΡΠΎΠΏΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° Java) ΠΈΠ»ΠΈ Π² Π²ΠΈΠ·ΡΠ°Π»ΡΠ½ΠΎΠΌ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ΅ UI: SceneBuilder (ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΌΠ΅Π΅Ρ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°ΡΡΡΡ Π² IntelliJ) ΠΈΠ»ΠΈ NetBeans Visual Debugger.
JavaFX β Π½Π΅ Π½ΠΎΠ²Π°Ρ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ. ΠΠ½Π° ΠΏΠΎΡΠ²ΠΈΠ»Π°ΡΡ Π² Π΄Π΅ΠΊΠ°Π±ΡΠ΅ 2008 Π³ΠΎΠ΄Π° ΠΈ ΡΠΈΠ»ΡΠ½ΠΎ ΠΎΡΠ»ΠΈΡΠ°Π»Π°ΡΡ ΠΎΡ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΌΡ Π²ΠΈΠ΄ΠΈΠΌ ΡΠ΅Π³ΠΎΠ΄Π½Ρ. ΠΠ΄Π΅Ρ Π·Π°ΠΊΠ»ΡΡΠ°Π»Π°ΡΡ Π² ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ° UI Π΄Π»Ρ Π·Π°ΠΌΠ΅Π½Ρ ΡΡΡΠ°ΡΠ΅Π²ΡΠ΅Π³ΠΎ Swing Framework, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ²Π»ΡΠ»ΡΡ ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΡΠΌ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠΌ JVM Ρ ΠΊΠΎΠ½ΡΠ° 90-Ρ .
Oracle ΡΡΡΡ Π½Π΅ ΠΈΡΠΏΠΎΡΡΠΈΠ»Π° Π²ΡΡ Ρ ΡΠ°ΠΌΠΎΠ³ΠΎ Π½Π°ΡΠ°Π»Π°, ΠΏΡΠΈΡΡΡΠΏΠΈΠ² ΠΊ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΎΡΠΎΠ±ΠΎΠ³ΠΎ, Π΄Π΅ΠΊΠ»Π°ΡΠ°ΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ°, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π»ΠΎΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ UI ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠΡΠΎ Π½Π΅ ΠΎΡΠ΅Π½Ρ Ρ ΠΎΡΠΎΡΠΎ Π²ΠΎΡΠΏΡΠΈΠ½ΡΠ»ΠΈ Java-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ, ΠΈ ΡΠ° ΠΈΠ½ΠΈΡΠΈΠ°ΡΠΈΠ²Π° ΡΡΡΡ Π½Π΅ ΠΏΠΎΠ³ΡΠ±ΠΈΠ»Π° JavaFX.
ΠΠ°ΠΌΠ΅ΡΠΈΠ² ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, Oracle ΡΠ΅ΡΠΈΠ»Π° Π²ΡΠΏΡΡΡΠΈΡΡ JavaFX 2 Π² 2011 Π³ΠΎΠ΄Ρ Π±Π΅Π· ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΠΎΡΠΎΠ±ΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ°, Π° Π²ΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠ² FXML Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΎΠΏΡΠΈΠΈ Π΄Π»Ρ ΡΠΈΡΡΠΎΠ³ΠΎ Java-ΠΊΠΎΠ΄Π° (ΠΊΠ°ΠΊ ΠΌΡ ΡΠ²ΠΈΠ΄ΠΈΠΌ ΠΏΠΎΠ·ΠΆΠ΅).
ΠΠΊΠΎΠ»ΠΎ 2012 Π³ΠΎΠ΄Π° JavaFX ΠΎΠ±ΡΡΠ» Π½Π΅ΠΊΡΡ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΎΡΡΡ, Π° Oracle ΠΏΡΠΈΠ»ΠΎΠΆΠΈΠ»Π° Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΡΠΈΠ»ΠΈΡ Π΄Π»Ρ ΡΠ»ΡΡΡΠ΅Π½ΠΈΡ ΠΈ ΠΏΠΎΠΏΡΠ»ΡΡΠΈΠ·Π°ΡΠΈΠΈ ΡΡΠΎΠΉ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ. Π‘ Π²Π΅ΡΡΠΈΠΈ 2.2 ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ JavaFX ΡΡΠ°Π» Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΠ΅Π»ΡΠ½ΡΠΌ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠΌ, Π½ΠΎ Π΅Π³ΠΎ ΠΏΠΎ-ΠΏΡΠ΅ΠΆΠ΅ΠΌΡ Π½Π΅ Π²ΠΊΠ»ΡΡΠ°Π»ΠΈ Π² ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ ΡΡΠ΅Π΄Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Java (Ρ ΠΎΡΡ ΠΎΠ½ Π²ΡΠ΅Π³Π΄Π° ΠΏΠΎΡΡΠ°Π²Π»ΡΠ»ΡΡ Π²ΠΌΠ΅ΡΡΠ΅ Ρ JDK).
Π’ΠΎΠ»ΡΠΊΠΎ Ρ Π²Π΅ΡΡΠΈΠΈ JavaFX 8 (ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π²Π΅ΡΡΠΈΠΈ ΡΠ΄Π΅Π»Π°Π½ΠΎ Π΄Π»Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΡ Java 8) ΠΎΠ½ ΡΡΠ°Π» ΡΠ°ΡΡΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠ³ΠΎ ΡΠ°Π½ΡΠ°ΠΉΠΌΠ° Java.
Π‘Π΅Π³ΠΎΠ΄Π½Ρ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ JavaFX ΠΌΠΎΠΆΠ΅Ρ ΠΈ Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΊΡΡΠΏΠ½ΡΠΌ ΠΈΠ³ΡΠΎΠΊΠΎΠΌ Π² ΠΌΠΈΡΠ΅ UI, Π½ΠΎ Π½Π° Π½ΡΠΌ ΡΠ΄Π΅Π»Π°Π½ΠΎ Π½Π΅ΠΌΠ°Π»ΠΎ ΡΠ΅Π°Π»ΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Ρ Π½Π΅Π³ΠΎ Π΅ΡΡΡ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ²ΡΠ·Π°Π½Π½ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ ΠΈ Π΅Π³ΠΎ ΠΏΠΎΡΡΠΈΡΠΎΠ²Π°Π»ΠΈ Π½Π° ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ.
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ JavaFX
Π ΡΠ²ΠΎΡΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Π΄Π»Ρ ΠΏΡΠΎΡΠΌΠΎΡΡΠ° Π»ΠΎΠ³ΠΎΠ² LogFX, Ρ ΡΠ΅ΡΠΈΠ» ΠΏΡΠΎΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Java (ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΡΠ°ΠΌ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ Π½ΠΈΠ·ΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΠΉ ΠΊΠΎΠ΄, Π° Ρ Ρ ΠΎΡΠ΅Π» ΡΠΊΠΎΠ½ΡΠ΅Π½ΡΡΠΈΡΠΎΠ²Π°ΡΡΡΡ Π½Π° ΡΠΊΠΎΡΠΎΡΡΠΈ ΠΈ ΠΌΠ°Π»ΠΎΠΌ ΡΠ°Π·ΠΌΠ΅ΡΠ΅ ΠΏΠ°ΠΊΠ΅ΡΠ°) ΠΈ IntelliJ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ IDE. Π― ΠΏΠΎΡΡΠΈ ΡΠ΅ΡΠΈΠ»ΡΡ ΠΏΠΈΡΠ°ΡΡ Π½Π° Kotlin, Π½ΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Java Π² IntelliJ ΠΎΠΊΠ°Π·Π°Π»Π°ΡΡ Π½Π°ΡΡΠΎΠ»ΡΠΊΠΎ Ρ ΠΎΡΠΎΡΠ΅ΠΉ, ΡΠ°ΠΊ ΡΡΠΎ ΠΏΠΈΡΠ°ΡΡ Π½Π° Java (ΡΠΎΡΠ½Π΅Π΅, ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡΡ IntelliJ Π΄Π΅Π»Π°ΡΡ ΡΡΠΎ Π·Π° ΠΌΠ΅Π½Ρ β ΡΡΠΎ Π±Π»ΠΈΠΆΠ΅ ΠΊ ΠΈΡΡΠΈΠ½Π΅) ΡΡΠ°Π»ΠΎ Π½Π΅ ΡΠ°ΠΊΠΎΠΉ Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΠΉ, ΡΡΠΎΠ±Ρ ΠΎΠΏΡΠ°Π²Π΄Π°ΡΡ Π»ΠΈΡΠ½ΠΈΠ΅ 0,9 ΠΠ Π² Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²Π΅.
Π― ΡΠ΅ΡΠΈΠ» Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ FXML (ΡΠ·ΡΠΊ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ GUI Π΄Π»Ρ JavaFX Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ XML) ΠΈΠ»ΠΈ Π²ΠΈΠ·ΡΠ°Π»ΡΠ½ΡΠΉ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ UI, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΎΡΠ΅Π½Ρ ΠΏΡΠΎΡΡΠΎΠΉ.
ΠΡΠ°ΠΊ, ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ Π½Π° ΠΊΠ°ΠΊΠΎΠΉ-Π½ΠΈΠ±ΡΠ΄Ρ ΠΊΠΎΠ΄!
Java Hello World
ΠΠΎΡ ΠΊΠ°ΠΊ ΠΏΠΈΡΠ΅ΡΡΡ Hello World Π½Π° JavaFX:
ΠΠ° Β«ΠΌΠ°ΠΊΠ΅Β» ΡΡΠΎΡ ΠΊΠΎΠ΄ ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΠ°ΠΊΠΎΠ΅:
FXML+Java Hello World
ΠΡΠ»ΠΈ Π²Π°ΠΌ ΡΡΡΠ΄Π½ΠΎ ΠΏΠΈΡΠ°ΡΡ ΠΊΠΎΠ΄ Π΄Π»Ρ UI ΠΈ Π²Ρ ΠΏΡΠ΅Π΄ΠΏΠΎΡΠΈΡΠ°Π΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ·ΡΠΊ ΡΠ°Π·ΠΌΠ΅ΡΠΊΠΈ, Π²ΠΎΡ ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½Ρ ΡΠΎΠ³ΠΎ ΠΆΠ΅ ΠΊΠΎΠ΄Π° Ρ FXML:
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ IntelliJ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ FXML ΠΈ ΡΠ²ΡΠΆΠ΅Ρ Π΅Π³ΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΌ ΠΊΠΎΠ΄ΠΎΠΌ Java ΠΈ Π½Π°ΠΎΠ±ΠΎΡΠΎΡ, ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΈΡ ΠΎΡΠΈΠ±ΠΊΠΈ, ΡΠ΄Π΅Π»Π°Π΅Ρ Π°Π²ΡΠΎΠ΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅, ΡΠΏΡΠ°Π²ΠΈΡΡΡ Ρ ΠΈΠΌΠΏΠΎΡΡΠΎΠΌ, ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΠΈ ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅, ΡΡΠΎ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΊΡΡΡΠΎβ¦ Π½ΠΎ ΠΊΠ°ΠΊ Ρ ΡΠ°Π½ΡΡΠ΅ ΡΠΊΠ°Π·Π°Π», ΡΠ΅ΡΠ΅Π½ΠΎ Π±ΡΠ»ΠΎ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ FXML, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π·Π°Π΄ΡΠΌΠ°Π½Π½ΡΠΉ UI Π±ΡΠ» ΠΎΡΠ΅Π½Ρ ΠΏΡΠΎΡΡΡΠΌ ΠΈ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ½ΡΠΌβ¦ ΡΠ°ΠΊ ΡΡΠΎ Ρ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ ΠΏΠΎΠΊΠ°ΠΆΡ ΠΊΠΎΠ΄Π° FXML. ΠΡΠ»ΠΈ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ, ΠΈΠ·ΡΡΠΈΡΠ΅ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΠΎ FXML.
Hello World Π½Π° Kotlin+TornadoFX
ΠΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ Π΄Π²ΠΈΠ³Π°ΡΡΡΡ Π΄Π°Π»ΡΡΠ΅, Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ, ΠΊΠ°ΠΊ ΡΠ°ΠΊΠΎΠΉ ΠΊΠΎΠ΄ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ Π½Π° ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΌ ΡΠ·ΡΠΊΠ΅ Π²ΡΠΎΠ΄Π΅ Kotlin Ρ Π΅Π³ΠΎ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΎΠΉ Π΄Π»Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ JavaFX, ΠΊΠΎΡΠΎΡΠ°Ρ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ TornadoFX:
ΠΠ½ΠΎΠ³ΠΈΠΌ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΊΠ°Π·Π°ΡΡΡΡ ΠΏΡΠΈΠ²Π»Π΅ΠΊΠ°ΡΠ΅Π»ΡΠ½ΡΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Kotlin ΠΈ JavaFX, ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π΅ΡΠ»ΠΈ Π²Ρ ΠΏΡΠ΅Π΄ΠΏΠΎΡΠΈΡΠ°Π΅ΡΠ΅ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ ΡΠΈΠΏΠΎΠ² (Π² TornadoFX Π΅ΡΡΡ ΠΏΡΠΈΡΡΠ½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ Β«ΡΠΈΠΏΠΎΠ±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΠ΅ ΡΠ°Π±Π»ΠΈΡΡ ΡΡΠΈΠ»Π΅ΠΉΒ») ΠΈ Π΅ΡΠ»ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π»ΠΈΡΠ½ΠΈΠ΅ 5 ΠΠ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π΄Π»Ρ Π²Π°Ρ Π½Π΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°.
ΠΠ°ΠΆΠ΅ Π΅ΡΠ»ΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠ΅ Π½Π°ΠΊΠ»Π°Π΄Π½ΡΠ΅ ΡΠ°ΡΡ ΠΎΠ΄Ρ ΠΊΠ°ΠΆΡΡΡΡ ΡΡΠ΅Π·ΠΌΠ΅ΡΠ½ΡΠΌΠΈ ΠΈ Π²Ρ Π½Π΅ Ρ ΠΎΡΠΈΡΠ΅ Π²ΠΊΠ»ΡΡΠ°ΡΡ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ (ΠΈ ΡΠ°Π·Π±ΠΈΡΠ°ΡΡΡΡ ΡΠΎ Π²ΡΠ΅ΠΌΠΈ Π΅Π³ΠΎ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΡΠΌΠΈ ΠΈ ΠΏΡΠΈΡΡΠ΄Π°ΠΌΠΈ), ΡΠΎ Kotlin Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΈ Ρ ΡΠΈΡΡΡΠΌ JavaFX.
Π‘ΡΠΈΠ»ΠΈ ΠΈ ΡΠ΅ΠΌΡ Π΄Π»Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° JavaFX
Π’Π΅ΠΏΠ΅ΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ ΡΠ°Π·ΠΎΠ±ΡΠ°Π»ΠΈΡΡ Ρ ΠΎΡΠ½ΠΎΠ²Π°ΠΌΠΈ JavaFX, ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ, ΠΊΠ°ΠΊ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ ΡΡΠΈΠ»ΠΈ Π΄Π»Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ JavaFX.
Π’Π°ΠΊΠΆΠ΅ ΠΊΠ°ΠΊ ΡΡΡΠ΅ΡΡΠ²ΡΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Ρ ΠΊ ΠΌΠ°ΠΊΠ΅ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΡΡΡΠ΅ΡΡΠ²ΡΡΡ ΠΈ ΡΠ°Π·Π½ΡΠ΅ Π²Π°ΡΠΈΠ°Π½ΡΡ ΡΡΠΈΠ»Π΅ΠΉ Π΄Π»Ρ JavaFX.
ΠΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ΡΡΠΎ ΠΌΡ Ρ ΠΎΡΠΈΠΌ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΌΠ½ΡΠΉ ΡΠΎΠ½ ΠΈ Π±Π΅Π»ΡΠΉ ΡΠ΅ΠΊΡΡ, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° ΡΠΊΡΠΈΠ½ΡΠΎΡΠ΅:
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠ΅ ΠΈ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠ΅ ΡΡΠΈΠ»ΠΈ
ΠΠ΄ΠΈΠ½ ΠΈΠ· Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ² (ΠΌΡΡΠΈΡΠ΅Π»ΡΠ½ΡΠΉ, Π½ΠΎ Π·Π°ΡΠΎ Ρ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΠΌΠΈ ΡΠΈΠΏΠ°ΠΌΠΈ) β ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ:
ΠΠΎΠ»Π΅Π΅ ΠΏΡΠΎΡΡΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± β ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΡΠΈΠ»ΠΈ Π² CSS:
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ Π·Π΄Π΅ΡΡ IntelliJ ΠΎΠΏΡΡΡ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ Π°Π²ΡΠΎΠ΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π΄Π»Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΡΡΡΠΎΠΊ.
ΠΡΠ»ΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ FXML:
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΡΠ°Π±Π»ΠΈΡ ΡΡΠΈΠ»Π΅ΠΉ
ΠΡΠ»ΠΈ Π²Ρ Π½Π΅ Ρ ΠΎΡΠΈΡΠ΅ ΡΠ΄Π°Π»ΡΡΡΡΡ ΠΎΡ ΠΌΠΈΡΠ° Π²Π΅Π±Π° ΠΈ ΠΏΡΠ΅Π΄ΠΏΠΎΡΠΈΡΠ°Π΅ΡΠ΅ Π·Π°Π΄Π°Π²Π°ΡΡ ΡΡΠΈΠ»ΠΈ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΡΠ°Π±Π»ΠΈΡΠ°Ρ ΡΡΠΈΠ»Π΅ΠΉ, JavaFX ΠΈ ΡΡΠΎ ΡΠΌΠ΅Π΅Ρ! ΠΠΌΠ΅Π½Π½ΠΎ ΡΠ°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ Ρ Π²ΡΠ±ΡΠ°Π», ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΎΠ½ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΡΠΈΠ»ΠΈΠ·ΠΎΠ²Π°ΡΡ Π²ΡΡ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΌΠ΅ΡΡΠ΅ ΠΈ Π΄Π°ΠΆΠ΅ Π΄Π°ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π²ΡΠ±ΠΈΡΠ°ΡΡ ΡΡΠΈΠ»ΠΈ Π½Π° ΡΠ²ΠΎΠΉ Π²ΠΊΡΡ.
ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΡΠ½Π°ΡΠ°Π»Π° ΡΠΎΠ·Π΄Π°ΡΠΌ ΡΠ°Π±Π»ΠΈΡΡ ΡΡΠΈΠ»Π΅ΠΉ:
Π’Π΅ΠΏΠ΅ΡΡ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ Π΅Ρ Π² Scene :
ΠΡΠΎ Π·Π½Π°ΡΠΈΡ, ΡΡΠΎ Π²ΡΠ΅ ΡΠΏΡΠ°Π²Π»ΡΡΡΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΈ Β«ΡΠΎΠ½ΠΎΠ²ΡΠ΅Β» ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΏΡΠΈΠΌΡΡ ΡΠ²Π΅Ρ, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΡΠΉ Π½Π° ΡΡΠΎΠΌ ΡΠ²Π΅ΡΠ΅. ΠΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΈΠ·ΡΡΠ½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ ΡΠ²Π΅ΡΠ° Π½Π° Π±Π°Π·Π΅ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ³ΠΎ ΡΠ²Π΅ΡΠ°. Π’Π°ΠΊ Π²Ρ Π³Π°ΡΠ°Π½ΡΠΈΡΡΠ΅ΡΠ΅, ΡΡΠΎ Π΅ΡΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΡΠ²Π΅Ρ, ΡΠΎ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π²ΡΡ Π±ΡΠ΄Π΅Ρ Ρ ΠΎΡΠΎΡΠΎ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ Π² Π½ΠΎΠ²ΠΎΠΉ ΡΠ°ΡΡΠ²Π΅ΡΠΊΠ΅.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π² Π½Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠΈΠΌ ΡΠ²Π΅ΡΠΎΠΌ ΡΠ΅ΠΊΡΡΠ° ΡΡΠ°Π½Π΅Ρ Π½Π΅ Π±Π΅Π»ΡΠΉ, Π° Β«ΠΏΡΠΎΡΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½ΡΠΉΒ» ΡΠ²Π΅Ρ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ³ΠΎ ΡΠ²Π΅ΡΠ° ΡΠ΅ΠΌΡ, ΡΡΠΎΠ±Ρ ΡΠ΅ΠΊΡΡ Π²ΡΠ΅Π³Π΄Π° ΠΎΡΡΠ°Π²Π°Π»ΡΡ ΡΠΈΡΠ°Π΅ΠΌΡΠΌ:
Π’Π°Π±Π»ΠΈΡΡ ΡΡΠΈΠ»Π΅ΠΉ JavaFX Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΠΌΠ½ΡΠ΅, Π΄Π»Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΡΠΌ. CSS Reference Guide.
ΠΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π³Π΄Π΅ ΠΌΡ ΠΏΠΎΡΡΠ°Π²ΠΈΠ»ΠΈ ΠΊΠ½ΠΎΠΏΠΊΡ Π²ΠΌΠ΅ΡΡΠΎ ΡΠ΅ΠΊΡΡΠ°. Π‘Π»Π΅Π²Π° ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ ΡΡΠΈΠ»ΠΈ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, Π° ΡΠΏΡΠ°Π²Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠ°Π±Π»ΠΈΡΠ° ΡΡΠΈΠ»Π΅ΠΉ, ΠΊΠΎΡΠΎΡΡΡ ΠΌΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ ΡΠΎΠ·Π΄Π°Π»ΠΈ:
Π‘Π»Π΅Π²Π°: ΡΡΠΈΠ»ΠΈ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ JavaFX. Π‘ΠΏΡΠ°Π²Π°: ΠΊΠ°ΡΡΠΎΠΌΠ½ΡΠ΅ ΡΡΠΈΠ»ΠΈ, ΡΠΎΠ·Π΄Π°Π½Π½ΡΠ΅ Π²ΡΡΠ΅
Π ΡΠ²ΠΎΡΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Ρ Ρ ΠΎΡΠ΅Π» ΠΏΠΎΡΡΠ°Π²ΠΈΡΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΡΠΌΠ½ΡΡ ΡΠ΅ΠΌΡ, Π½ΠΎ ΠΏΡΠΈ ΡΡΠΎΠΌ ΠΎΡΡΠ°Π²ΠΈΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π·Π°Π³ΡΡΠΆΠ°ΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΡΡΠΈΠ»ΠΈ, ΡΡΠΎΠ±Ρ ΠΎΠ½ΠΈ ΠΌΠΎΠ³Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π»ΡΠ±ΡΡ ΡΠ΅ΠΌΡ, ΠΊΠ°ΠΊΠ°Ρ ΠΈΠΌ Π½ΡΠ°Π²ΠΈΡΡΡ.
ΠΠΎΡ ΠΊΠ°ΠΊ LogFX Π²ΡΠ³Π»ΡΠ΄ΠΈΡ Π² ΠΈΡΠΎΠ³Π΅ Ρ ΡΠ΅ΠΌΠΎΠΉ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ:
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ Π΄Π»Ρ ΠΊΠ½ΠΎΠΏΠΎΠΊ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π» ΠΈΠΊΠΎΠ½ΠΊΠΈ FontAwesome. ΠΡΠ»ΠΎ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ ΡΡΠΈΠ»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΊΠ½ΠΎΠΏΠΊΠΈ Π² CSS. ΠΡΠΎΡΡΠΎ ΡΠ±Π΅Π΄ΠΈΡΠ΅ΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎΠ±Ρ ΡΡΠΈΡΡ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π»ΡΡ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°Π½ΡΡΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ°ΠΊΠΎΠΉ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ:
Π‘ ΠΊΠ°ΡΡΠΎΠΌΠ½ΡΠΌΠΈ ΡΠ°Π±Π»ΠΈΡΠ°ΠΌΠΈ ΡΡΠΈΠ»Π΅ΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠ°ΡΠ΄ΠΈΠ½Π°Π»ΡΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Π²Π½Π΅ΡΠ½ΠΈΠΉ Π²ΠΈΠ΄ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π²ΠΎΡ ΠΎΡΠ΅Π½Ρ Π·Π΅Π»ΡΠ½Π°Ρ ΡΠ΅ΠΌΠ° Π² Linux Mint:
Π₯ΠΎΡΡ Ρ ΠΎΡΠΎΡΠΈΠΉ Π²ΠΊΡΡ Π°Π²ΡΠΎΡΠ° ΡΡΠΎΠΉ Π·Π΅Π»ΡΠ½ΠΎΠΉ ΡΠ΅ΠΌΡ ΠΏΠΎΠ΄ Π²ΠΎΠΏΡΠΎΡΠΎΠΌ, ΠΎΠ½Π° ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΌΠΎΡΠ½ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΡΡΠΈΠ»ΠΈΠ·Π°ΡΠΈΠΈ Π² JavaFX. ΠΠ΄Π΅ΡΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π²ΡΡ, Π½Π° ΡΡΠΎ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎ Π²Π°ΡΠ΅ Π²ΠΎΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅.
Π Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΠ΅ Ρ ΠΎΡΠ΅Π» Π±Ρ ΡΠΏΠΎΠΌΡΠ½ΡΡΡ ΠΊΠ»Π°ΡΡΠ½ΡΠ΅ ΡΡΡΠ΅ΠΊΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π΅ΡΡΡ Π² JavaFXβ¦ Π― Ρ ΠΎΡΠ΅Π» ΡΠ΄Π΅Π»Π°ΡΡ Π½Π°ΡΠ°Π»ΡΠ½ΡΠΉ ΡΠΊΡΠ°Π½, ΠΊΠΎΡΠΎΡΡΠΉ Π±Ρ Ρ ΠΎΡΠΎΡΠΎ Π²ΡΠ³Π»ΡΠ΄Π΅Π» ΠΏΡΠΎΡΡΠΎ Ρ ΡΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ ΡΠ΅ΠΊΡΡΠΎΠΌ.
Π JavaFX ΡΡΠΎ Π΄Π΅Π»Π°Π΅ΡΡΡ ΠΏΡΠΎΡΡΠΎ. ΠΠΎΡ ΡΡΠΎ Ρ ΠΌΠ΅Π½Ρ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΎΡΡ (Ρ ΡΠ΄Π΅Π»Π°Π» ΡΠΊΡΠ°Π½ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΎΠ±ΡΠ°Π·ΡΠ° GroovyFX):
Π Π²ΠΎΡ ΠΊΠ°ΠΊΠ°Ρ ΡΠ°Π±Π»ΠΈΡΠ° ΡΡΠΈΠ»Π΅ΠΉ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΡΡΠΎΠΌΡ ΡΡΠ°ΡΡΠΎΠ²ΠΎΠΌΡ ΡΠΊΡΠ°Π½Ρ:
ΠΠ΄Π΅ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΎΡΠ΅Π½Ρ Π½Π΅ΠΏΠ»ΠΎΡ ΠΈΡ ΡΡΡΠ΅ΠΊΡΠΎΠ². ΠΠ»Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΡΠΌ. ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ.
Π ΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΡΠ°Π·Π΄Π΅Π»Π°Ρ ΠΎΠ±ΡΡΠ΄ΠΈΠΌ, ΠΊΠ°ΠΊ ΠΌΠ΅Π½ΡΡΡ Π²ΠΈΠ΄Ρ (ΡΠΊΡΠ°Π½Ρ), ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠΆΠ°ΡΡ ΠΊΠΎΠ΄ Π½Π° Π»Π΅ΡΡ (hot reload) ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡ ΡΠ°Π±Π»ΠΈΡΡ ΡΡΠΈΠ»Π΅ΠΉ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
ΠΠΈΠ·Π°ΠΉΠ½, ΠΎΡΠ»Π°Π΄ΠΊΠ° ΠΈ ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΊΠ° ΠΊΠΎΠ΄Π°
ΠΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π±Π΅Π· Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎ ΠΏΡΠΎΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ. ΠΠΎΡΡΠΎΠΌΡ Π²Π°ΠΆΠ½ΠΎΠΉ ΡΠ°ΡΡΡΡ Π»ΡΠ±ΠΎΠ³ΠΎ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ° UI ΡΠ²Π»ΡΠ΅ΡΡΡ Β«Π³ΠΎΡΡΡΠ°ΡΒ» ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΊΠ° ΠΊΠΎΠ΄Π° ΠΈΠ»ΠΈ Π½Π΅ΠΊΠ°Ρ ΡΠ°Π·Π½ΠΎΠ²ΠΈΠ΄Π½ΠΎΡΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ° UI.
Π£ JavaFX (ΠΈ Ρ ΡΠ°ΠΌΠΎΠΉ JVM) Π΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ² ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΡΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ.
SceneBuilder
ΠΠ΅ΡΠ²ΠΎΠ΅ ΠΈΠ· Π½ΠΈΡ β ΡΡΠΎ SceneBuilder, Π²ΠΈΠ·ΡΠ°Π»ΡΠ½ΡΠΉ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ UI, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ FXML, ΠΏΡΠΎΡΡΠΎ ΠΏΠ΅ΡΠ΅ΡΠ°ΡΠΊΠΈΠ²Π°Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ UI.
ΠΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°ΡΡ Π² Π»ΡΠ±ΡΠ΅ Java IDE, ΡΡΠΎ ΡΠΏΡΠΎΡΠ°Π΅Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½ΠΎΠ²ΡΡ Π²ΠΈΠ΄ΠΎΠ² (ΡΠΊΡΠ°Π½ΠΎΠ²).
ΠΠ½Π΅ ΡΠ°Π½ΡΡΠ΅ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΠ»ΠΎΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ SceneBuilder Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠΎΡΠΌ ΠΈ ΡΠΎΠΌΡ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΡ ΡΠ»ΠΎΠΆΠ½ΡΡ Π²ΠΈΠ΄ΠΎΠ², Π½ΠΎ Ρ ΠΎΠ±ΡΡΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ Π½Π°Π±ΡΠ°ΡΡΠ²Π°Π» ΡΠ°ΠΌ ΡΡΠΎ-ΡΠΎ ΠΏΠΎ-Π±ΡΡΡΡΠΎΠΌΡ, Π° Π·Π°ΡΠ΅ΠΌ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π» ΠΊΠΎΠ΄ Π²ΡΡΡΠ½ΡΡ Π΄Π»Ρ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ΠΈΡ Π΅Π³ΠΎ ΠΊ ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠΌΡ Π²ΠΈΠ΄Ρ.
ΠΡΠ»ΠΈ Π²Ρ ΡΠ°ΠΊ ΡΠ΄Π΅Π»Π°Π΅ΡΠ΅, Π° ΠΏΠΎΡΠΎΠΌ ΠΎΡΠΊΡΠΎΠ΅ΡΠ΅ Π²ΠΈΠ΄ Π² SceneBuilder, ΠΎΠ½ ΠΏΠΎ-ΠΏΡΠ΅ΠΆΠ½Π΅ΠΌΡ Π±ΡΠ΄Π΅Ρ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ, ΡΠ°ΠΊ ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΎΡΠ΅ΡΡΠ΄Π½ΠΎ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠΎΠ΄ Π²ΡΡΡΠ½ΡΡ ΠΈΠ»ΠΈ Π² SceneBuilder β ΠΈ ΠΏΡΠΎΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ.
ScenicView
ΠΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ Ρ Π²Π°Ρ Π³ΠΎΡΠΎΠ² Π±Π°Π·ΠΎΠ²ΡΠΉ Π΄ΠΈΠ·Π°ΠΉΠ½, ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡΡΡΠΈΡΡ ScenicView Π΄Π»Ρ ΠΏΡΠΎΡΠΌΠΎΡΡΠ° ΠΈ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π³ΡΠ°ΡΠ° ΡΡΠ΅Π½Ρ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡΠ΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ.
ΠΡΠ΅Π΄ΡΡΠ°Π²ΡΡΠ΅ ΡΡΠΎ ΠΊΠ°ΠΊ ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½Ρ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅.
ScenicView ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΠΈ ΡΠ΄Π°Π»ΡΡΡ ΡΠ·Π»Ρ, ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΡΡ ΡΠΎΠ±ΡΡΠΈΡ ΠΈ ΡΠΈΡΠ°ΡΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ Javadocs Π΄Π»Ρ Π²ΡΠ±ΡΠ°Π½Π½ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ².
ΠΠΎΡΡΡΠ°Ρ ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΊΠ° ΠΊΠΎΠ΄Π° JVM
ΠΡΠ»ΠΈ Ρ ΠΎΡΠΈΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΊΠΎΠ΄ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π°ΠΏΡΡΠΌΡΡ Π½Π΅ ΡΠ²ΡΠ·Π°Π½ Ρ UI, ΡΠΎ Π΄Π»ΠΎΡ ΡΡΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ ΠΎΡΠ»Π°Π΄ΡΠΈΠΊ Java Ρ Π³ΠΎΡΡΡΠ΅ΠΉ Π·Π°ΠΌΠ΅Π½ΠΎΠΉ ΠΊΠΎΠ΄Π° Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠ°Π·ΠΎΠ²Π°Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΊΠΎΠ΄Π° ΠΈΠΌΠ΅Π΅ΡΡΡ Π² Oracle JVM ΠΈ HotSpot. ΠΡΠΌΠ°Ρ, ΡΡΠΎ ΠΎΠ½Π° Π΅ΡΡΡ ΠΈ Π² OpenJDK JVM.
ΠΠ΄Π½Π°ΠΊΠΎ Π±Π°Π·ΠΎΠ²Π°Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΎΡΠ΅Π½Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π°: Π²Π°ΠΌ ΠΏΠΎΠ·Π²ΠΎΠ»Π΅Π½ΠΎ ΠΌΠ΅Π½ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠΆΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ².
ΠΠ°ΡΠΎ Π΅ΡΡΡ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ HotSpot VM ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ DCEVM (Dynamic Code Evolution VM) Ρ Π³ΠΎΡΠ°Π·Π΄ΠΎ Π±ΠΎΠ»ΡΡΠ΅ΠΉ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡΡ: Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅/ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΠΈ ΠΏΠΎΠ»Π΅ΠΉ, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅/ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΊΠ»Π°ΡΡΠΎΠ², ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΈΡΠΎΠ³ΠΎΠ²ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΈ ΠΏΡΠΎΡΠ΅Π΅. Π Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠ°ΡΡΠ΅ Ρ ΡΠΆΠ΅ ΠΏΠΈΡΠ°Π» ΠΎ Π½ΡΠΌ ΠΈ ΠΎ Π΄ΡΡΠ³ΠΈΡ ΡΠΏΠΎΡΠΎΠ±Π°Ρ ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΊΠΎΠ΄Π° Π² ΡΠ°Π±ΠΎΡΠ°ΡΡΠ΅ΠΉ JVM.
Π― ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π» ΡΡΠΎ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ LogFX β ΠΈ ΠΎΠ½ΠΎ ΠΎΡΠ»ΠΈΡΠ½ΠΎ ΡΠ΅Π±Ρ ΠΏΡΠΎΡΠ²ΠΈΠ»ΠΎ. ΠΡΠ»ΠΈ Π½Π΅ Π·Π°ΠΊΡΡΡΡ ΠΈ Π·Π°Π½ΠΎΠ²ΠΎ Π½Π΅ ΠΎΡΠΊΡΡΡΡ ΠΎΠΊΠ½ΠΎ, ΡΠΎ Π²ΠΈΠ΄ Π½Π΅ ΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΡΠΈ ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΊΠ΅ ΠΊΠΎΠ΄Π°, Π½ΠΎ ΡΡΠΎ Π½Π΅ ΡΠ°ΠΊΠ°Ρ Π±ΠΎΠ»ΡΡΠ°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°, Π΅ΡΠ»ΠΈ ΠΌΠ΅Π½ΡΡΡ ΡΡΠΎ-ΡΠΎ Π² Stageβ¦ ΠΊ ΡΠΎΠΌΡ ΠΆΠ΅, Π΅ΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ UI, ΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ScenicView ΠΈΠ»ΠΈ ΠΏΡΠΎΡΡΠΎ Π²Π΅ΡΠ½ΡΡΡΡΡ Π² ScenicBuilder ΠΈ ΠΊΠ°ΠΊ ΡΠ³ΠΎΠ΄Π½ΠΎ ΠΏΠΎΠΌΠ΅Π½ΡΡΡ Π΄ΠΈΠ·Π°ΠΉΠ½.
ΠΠ»Ρ Π·Π°ΠΏΡΡΠΊΠ° DCEVM Π½ΡΠΆΠ½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π΅Π³ΠΎ ΠΈ ΡΠ²Π΅ΡΠΈΡΡ Π½ΠΎΠΌΠ΅ΡΠ° Π²Π΅ΡΡΠΈΠΉ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ ΠΈ JVM. ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ Ρ ΠΎΡΠ»Π°Π΄ΡΠΈΠΊΠΎΠΌ β ΠΈ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π· ΠΏΠΎΡΠ»Π΅ ΠΏΠ΅ΡΠ΅ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ Π² IDE Π½ΠΎΠ²ΡΠΉ ΠΊΠΎΠ΄ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠΎΠ΄Π³ΡΡΠ·ΠΈΡΡΡ Π² ΡΠ°Π±ΠΎΡΠ°ΡΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
Π IntelliJ ΠΏΠΎΡΠ»Π΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΊΠ»Π°ΡΡΠ° ΠΈ ΠΏΠ΅ΡΠ΅ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ Π²Ρ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ Π½Π΅ΡΡΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅ (Cmd+F9 Π½Π° Β«ΠΌΠ°ΠΊΠ΅Β»):
ΠΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΡΠ°Π±Π»ΠΈΡ ΡΡΠΈΠ»Π΅ΠΉ
JavaFX Π½Π΅ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠ°Π±Π»ΠΈΡΡ ΡΡΠΈΠ»Π΅ΠΉ. ΠΠΎ Π΄Π»Ρ LogFX Ρ Ρ ΠΎΡΠ΅Π» ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ°ΠΊΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ, ΡΡΠΎΠ±Ρ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΡΡΠΈΠ»ΠΈ β ΠΈ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ Π½Π°Π±Π»ΡΠ΄Π°ΡΡ ΡΡΡΠ΅ΠΊΡ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ.
ΠΠΎ ΠΎΠ½ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ Π΅ΡΠ»ΠΈ ΡΡΠΈΠ»ΠΈ ΠΏΠΎΡΡΠ°Π²Π»ΡΡΡΡΡ ΠΈΠ· ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°, Π° Π½Π΅ ΠΈΠ· ΡΠ°ΠΌΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ (ΠΈΠ· jar).
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ Ρ ΡΠΆΠ΅ ΡΠ°Π·ΡΠ΅ΡΠΈΠ» ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΡΠΉ ΡΠ°ΠΉΠ» Ρ ΡΠ°Π±Π»ΠΈΡΠ°ΠΌΠΈ ΡΡΠΈΠ»Π΅ΠΉ, ΡΠΎ ΡΡΠΎ Π½Π΅ ΡΡΠ°Π»ΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΠΉ.
Π― ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π» ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ, ΠΈ ΠΎΠ½Π° ΠΎΡΠ΅Π½Ρ Π²ΠΏΠ΅ΡΠ°ΡΠ»ΡΠ΅Ρ. ΠΡΠ»ΠΈ Π²Π°ΠΌ Π½ΡΠΆΠ½Π° ΡΠ°ΠΊΠ°Ρ ΠΆΠ΅ ΡΠΈΡΠ°, ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ Π΄ΠΈΡΠΏΠ΅ΡΡΠ΅Ρ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΈΠ»ΠΈ ΡΠΊΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ ΠΌΠΎΠΉ (Π² ΠΊΠΎΠ½ΡΠ΅ ΠΊΠΎΠ½ΡΠΎΠ², ΠΎΠ½ Ρ ΠΎΡΠΊΡΡΡΡΠΌΠΈ ΠΈΡΡ ΠΎΠ΄Π½ΠΈΠΊΠ°ΠΌΠΈ).
ΠΠ»Ρ Π²ΡΠ±ΠΎΡΠ° ΡΠ°Π±Π»ΠΈΡΡ ΡΡΠΈΠ»Π΅ΠΉ ΠΊΠ°ΠΊ ΡΠ°ΠΉΠ»Π° (Π² ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΡΠ΅ΡΡΡΡΠ° jar), ΠΊ ΡΠΎΠΆΠ°Π»Π΅Π½ΠΈΡ, ΠΏΡΠΈΠ΄ΡΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ°Π·Π½ΡΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΠΏΠΎΠ΄ Unix/Mac ΠΈ Windows. ΠΠΎΡ ΡΠ°ΠΊΠΎΠΉ ΠΌΠ΅ΡΠΎΠ΄ Ρ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠ», ΡΡΠΎΠ±Ρ ΡΠ΅ΡΠΈΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ:
ΠΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π½Π° Mac, Windows ΠΈ Linux Mint. ΠΠΎ ΡΡΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠ΅ΡΠ²Π°Ρ ΠΈΠ· Π΄Π²ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡ Π½Π° ΡΠ°Π·Π½ΡΡ ΠΠ‘ (Π²ΡΠΎΡΠ°Ρ β ΡΠΎ, ΡΡΠΎ Π½Π΅ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ ΠΈΠΊΠΎΠ½ΠΊΠ° Π² ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠΌ ΡΡΠ΅Π΅ Π½Π° Mac, Ρ ΠΎΡΡ Π΅ΡΡΡ ΡΡΠΎΠ΄Π»ΠΈΠ²ΠΎΠ΅ ΠΎΠ±Ρ ΠΎΠ΄Π½ΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΡΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ). Π ΠΎΡΡΠ°Π»ΡΠ½ΠΎΠΌ JavaFX Π²ΡΡ Π°Π±ΡΡΡΠ°Π³ΠΈΡΡΠ΅Ρ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ Ρ ΠΎΡΠΎΡΠΎ ΠΏΠΎ Π±ΠΎΠ»ΡΡΠ΅ΠΉ ΡΠ°ΡΡΠΈ.
ΠΠ°ΠΊΠΎΠ½Π΅Ρ, ΠΊΠΎΠ³Π΄Π° Π΄ΠΈΡΠΏΠ΅ΡΡΠ΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΠ» ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π² ΡΠ°ΠΉΠ»Π΅ Ρ ΡΠ°Π±Π»ΠΈΡΠ°ΠΌΠΈ ΡΡΠΈΠ»Π΅ΠΉ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ ΡΡΠΈΠ»Ρ, ΠΏΡΠΎΡΡΠΎ ΡΠ΄Π°Π»ΠΈΠ² Π΅Π³ΠΎ ΠΈ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΠ² ΠΎΠ±ΡΠ°ΡΠ½ΠΎ:
Π’Π°ΠΊΠΎΠΉ ΠΌΠ΅ΡΠΎΠ΄ Π½Π΅ΠΏΠ»ΠΎΡ ΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ. ΠΠΎ Π΅ΡΠ»ΠΈ Π²Ρ Π½Π΅ Ρ ΠΎΡΠΈΡΠ΅ ΡΠ°ΠΌΠΈ Π΅Π³ΠΎ ΠΏΠΈΡΠ°ΡΡ, ΡΠΎ ScenicView ΡΠΎΠΆΠ΅ ΡΠΌΠ΅Π΅Ρ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΡΡ ΡΠ°Π±Π»ΠΈΡΡ ΡΡΠΈΠ»Π΅ΠΉ Π²ΠΎ Π²Π½Π΅ΡΠ½ΠΈΡ ΡΠ°ΠΉΠ»Π°Ρ (Π½ΠΎ Π½Π΅ Π²Π½ΡΡΡΠΈ jar), ΠΈ TornadoFX ΡΠΎΠΆΠ΅ ΡΡΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ, ΡΠ°ΠΊ ΡΡΠΎ Π·Π΄Π΅ΡΡ Π΅ΡΡΡ Π²Π°ΡΠΈΠ°Π½ΡΡ.
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π° JavaFX ΡΡΠ°Π»ΠΎ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΏΡΠΈΡΡΠ½ΡΠΌ ΠΎΠΏΡΡΠΎΠΌ. Π£ ΠΌΠ΅Π½Ρ ΠΈΠΌΠ΅Π»Π°ΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠ°ΠΊΡΠΈΠΊΠ° Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ JavaFX-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π»Π΅Ρ Π½Π°Π·Π°Π΄ (ΠΊΠΎΠ³Π΄Π° JavaFX Π½Π°Ρ ΠΎΠ΄ΠΈΠ»ΡΡ Π½Π° ΡΠ°Π½Π½Π΅ΠΉ ΡΡΠ°Π΄ΠΈΠΈ ΡΠ°Π·Π²ΠΈΡΠΈΡ, ΡΡΠΎ ΡΠ΅ΠΏΠ΅ΡΡ ΡΠΆΠ΅ ΠΎΡΡΠ°Π»ΠΎΡΡ Π² ΠΏΡΠΎΡΠ»ΠΎΠΌ), ΡΠ°ΠΊ ΡΡΠΎ Ρ ΠΌΠ΅Π½Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΠΎ Π±ΡΠ»Π° Π½Π΅ΠΊΠ°Ρ ΡΠΎΡΠ°β¦ Π½ΠΎ Ρ ΡΠ°ΠΊΠΆΠ΅ ΡΠ°Π±ΠΎΡΠ°Π» ΠΊΠ°ΠΊ Π²Π΅Π±-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΈ ΡΠ΅ΠΏΠ΅ΡΡ Π½Π΅ ΠΌΠΎΠ³Ρ ΠΏΠΎΠ²Π΅ΡΠΈΡΡ, ΡΡΠΎ ΠΊΡΠΎ-ΡΠΎ ΠΏΡΠ΅Π΄ΠΏΠΎΡΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²Π΅Π±-ΡΡΠ΅ΠΊ Π²ΠΌΠ΅ΡΡΠΎ ΡΠ°ΠΊΠΎΠΉ Π²ΠΌΠ΅Π½ΡΠ΅ΠΌΠΎΠΉ ΡΡΠ΅Π΄Ρ ΠΊΠ°ΠΊ JVM.
Π‘ΠΎΠ·Π΄Π°Π½Π½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ LogFX, Π½Π° ΠΌΠΎΠΉ Π²Π·Π³Π»ΡΠ΄, ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΎΡΠ΅Π½Ρ Ρ ΠΎΡΠΎΡΠΎ, ΠΈ ΠΎΠ½ΠΎ Π΄ΠΎΡΡΠΈΠ³Π»ΠΎ ΠΏΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΡΡ ΡΠ΅Π»Π΅ΠΉ ΠΏΠΎ ΡΠΊΠΎΡΠΎΡΡΠΈ ΡΠ°Π±ΠΎΡΡ ΠΈ Π±ΡΡΡΡΠΎΠΌΡ ΠΎΡΠΊΠ»ΠΈΠΊΡ, ΠΈ Π² ΡΠΎ ΠΆΠ΅ Π²ΡΠ΅ΠΌΡ ΠΎΠ½ΠΎ Ρ ΠΎΡΠΎΡΠΎ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ Π½Π° Π²ΡΠ΅Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ Π±Π΅Π· Π²Π½Π΅ΡΠ΅Π½ΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. ΠΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, ΠΏΠΎΡΠΌΠΎΡΡΠΈΡΠ΅ ΡΠ°ΠΌΠΈ ΠΈ Π²ΡΡΠΊΠ°ΠΆΠΈΡΠ΅ ΡΠ²ΠΎΠΉ ΠΌΠ½Π΅Π½ΠΈΠ΅:
Π₯ΠΎΡΡ ΡΡΠΎ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΡΠ°ΠΉΠ» jar Π²Π΅ΡΠΈΡ Π²ΡΠ΅Π³ΠΎ 303 ΠΊΠΈΠ»ΠΎΠ±Π°ΠΉΡΠ°. ΠΡΠΎ 0,3 ΠΠ, Π²ΠΊΠ»ΡΡΠ°Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΊΠ°ΡΡΠΈΠ½ΠΎΠΊ ΠΈ ΡΠ°ΠΉΠ» ΡΡΠΈΡΡΠ° TTF, ΠΈ Π΅ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°ΠΉΠ»ΠΎΠ² HTML ΠΈ CSS, ΠΏΠΎΠΌΠΈΠΌΠΎ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΊΠ»Π°ΡΡΠΎΠ² Java!
ΠΠΎΠ½Π΅ΡΠ½ΠΎ, ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ ΡΠ°ΠΌΡ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ ΠΌΠ°ΡΠΈΠ½Ρ JVM, Π½ΠΎ JVM Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°ΡΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈ ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄Π»Ρ ΠΌΠ½ΠΎΠ³ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ! Π Java 9 Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΠΎΠΎΠ±ΡΠ΅ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π½Π°ΡΠΈΠ²Π½ΡΠ΅ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠ΅ ΡΠ°ΠΉΠ»Ρ, Π²ΠΊΠ»ΡΡΠ°Ρ Π² Π½ΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ ΡΠ°ΡΡΠΈ JVM, ΡΠ°ΠΊ ΡΡΠΎ Π΅ΡΠ»ΠΈ Π²Π°ΡΠΈΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ Π½Π΅ Π½ΡΠ°Π²ΠΈΡΡΡ ΠΏΡΠΎΡΡΠΎΠΉ jar, ΡΠΎ ΡΠΏΠ°ΠΊΡΠΉΡΠ΅ Π΅Π³ΠΎ ΠΊΠ°ΠΊ Π½Π°ΡΠΈΠ²Π½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠ°ΠΊ Ρ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π» Π² ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΉ ΡΡΠ°ΡΡΠ΅ (Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠ΅ Π½Π°ΡΠΈΠ²Π½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ JVM Π·Π°ΠΉΠΌΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ 35 ΠΠ ΠΈΠ»ΠΈ 21 ΠΠ ΠΏΠΎΡΠ»Π΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ).
ΠΠ»Ρ ΡΠ°Π±ΠΎΡΡ LogFX ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΎΠΊΠΎΠ»ΠΎ 50 ΠΠ RAM (Π½Π΅ Π΄Π»Ρ ΡΠ°ΠΌΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π° Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ Π΄Π»Ρ JavaFX). Π ΡΡΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ±Π΅Π΄ΠΈΡΡΡΡ, Π·Π°ΠΏΡΡΡΠΈΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΡΠ°ΠΊΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ:
ΠΡΠΎ ΠΊΠ°ΡΠ΄ΠΈΠ½Π°Π»ΡΠ½ΠΎ ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ ΠΎΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Electron, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ±ΡΡΠ½ΠΎ ΠΆΡΡΡ 200 ΠΠ ΡΠΆΠ΅ Π² ΠΌΠΎΠΌΠ΅Π½Ρ Π·Π°ΠΏΡΡΠΊΠ°.
JavaFX Π½Π΅ ΠΈΠ΄Π΅Π°Π»ΡΠ½Π° ΠΈ Π΅ΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π»Π°ΡΡΠ΅ΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΡΡ Π΅ΡΡ Π½ΡΠΆΠ΄Π°ΡΡΡΡ Π² ΡΠ»ΡΡΡΠ΅Π½ΠΈΠΈ. ΠΠ΄Π½Π° ΠΈΠ· Π½ΠΈΡ β ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΈΠ΅ ΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ. Π’Π΅ΠΊΡΡΠ΅Π΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅, JNLP ΠΈ Java WebStart, ΠΊΠ°ΠΆΠ΅ΡΡΡ ΡΠ»Π°Π±ΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΠΌ, Ρ ΠΎΡΡ ΠΈΠΌΠ΅ΡΡΡΡ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Ρ ΠΎΡ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²Π°, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Getdown ΠΈ FxLauncher, Π° Π΅ΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΉ Π½Π°ΡΠΈΠ²Π½ΡΠΉ ΠΈΠ½ΡΡΠ°Π»Π»ΡΡΠΎΡ, ΡΠΎ ΠΈΠΌΠ΅Π΅ΡΡΡ ΠΈ ΠΊΠΎΠΌΠΌΠ΅ΡΡΠ΅ΡΠΊΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Install4J (ΠΊΡΡΠ°ΡΠΈ, Ρ Install4J Π΅ΡΡΡ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΡΠ΅ Π»ΠΈΡΠ΅Π½Π·ΠΈΠΈ Π΄Π»Ρ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² open source).
ΠΡΡΠ°Π»ΠΎΡΡ ΠΌΠ½ΠΎΠ³ΠΎ Π²Π΅ΡΠ΅ΠΉ Π½Π°ΡΡΡΡ JavaFX, ΠΊΠΎΡΠΎΡΡΠ΅ Ρ ΠΌΠ΅Π½Ρ Π½Π΅ Π½Π°ΡΠ»ΠΎΡΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΡΠΏΠΎΠΌΡΠ½ΡΡΡ Π² ΡΡΠΎΠΉ ΠΈ ΡΠ°ΠΊ ΡΠΆΠ΅ Π΄Π»ΠΈΠ½Π½ΠΎΠΉ ΡΡΠ°ΡΡΠ΅, Π½ΠΎ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ· Π½ΠΈΡ , Ρ ΡΡΠΈΡΠ°Ρ, Π΄ΠΎΡΡΠΎΠΉΠ½Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΈΠ·ΡΡΠ΅Π½ΠΈΡ, Π΅ΡΠ»ΠΈ Π²Π°ΠΌ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ:
GUI Π½Π° Java
Abstract Window Toolkit
Π₯Π°ΠΊΠ΅Ρ #183. ΠΠ°Π»Π²Π°ΡΡ Π΄Π»Ρ Android
AWT Π±ΡΠ»Π° ΠΏΠ΅ΡΠ²ΠΎΠΉ ΠΏΠΎΠΏΡΡΠΊΠΎΠΉ Sun ΡΠΎΠ·Π΄Π°ΡΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π΄Π»Ρ Java. ΠΠ½ΠΈ ΠΏΠΎΡΠ»ΠΈ Π»Π΅Π³ΠΊΠΈΠΌ ΠΏΡΡΠ΅ΠΌ ΠΈ ΠΏΡΠΎΡΡΠΎ ΡΠ΄Π΅Π»Π°Π»ΠΈ ΠΏΡΠΎΡΠ»ΠΎΠΉΠΊΡ Π½Π° Java, ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΈΠ· Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΡ Π½Π° Π‘. ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΡΠ½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΡΠΎΠ·Π΄Π°ΡΡ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΡΠ΅Π΄Ρ. Π‘ ΠΎΠ΄Π½ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ, ΡΡΠΎ Ρ ΠΎΡΠΎΡΠΎ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π½Π° Java ΠΏΠΎΡ ΠΎΠΆΠ° Π½Π° ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π² ΡΠ°ΠΌΠΊΠ°Ρ Π΄Π°Π½Π½ΠΎΠΉ ΠΠ‘. ΠΠΎ Ρ Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ, Π½Π΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ Π³Π°ΡΠ°Π½ΡΠΈΠΈ, ΡΡΠΎ ΡΠ°Π·Π»ΠΈΡΠΈΡ Π² ΡΠ°Π·ΠΌΠ΅ΡΠ°Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² ΠΈ ΡΡΠΈΡΡΠ°Ρ Π½Π΅ ΠΈΡΠΏΠΎΡΡΡΡ Π²Π½Π΅ΡΠ½ΠΈΠΉ Π²ΠΈΠ΄ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΏΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ Π΅Π΅ Π½Π° Π΄ΡΡΠ³ΠΎΠΉ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ ΠΌΡΠ»ΡΡΠΈΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΠΎΡΡΡ, ΠΏΡΠΈΡΠ»ΠΎΡΡ ΡΠ½ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ Π²ΡΠ·ΠΎΠ²ΠΎΠ² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ², ΠΈΠ·-Π·Π° ΡΠ΅Π³ΠΎ ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ ΠΏΠΎΠ»ΡΡΠΈΠ»Π°ΡΡ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΡΡΠ΅Π·Π°Π½Π½ΠΎΠΉ. ΠΠ° ΠΈ Π½Π°Π±ΠΎΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² ΠΏΠΎΠ»ΡΡΠΈΠ»ΡΡ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠΉ. Π ΠΏΡΠΈΠΌΠ΅ΡΡ, Π² AWT Π½Π΅Ρ ΡΠ°Π±Π»ΠΈΡ, Π° Π² ΠΊΠ½ΠΎΠΏΠΊΠ°Ρ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠΊΠΎΠ½ΠΎΠΊ.
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠ΅ΡΡΡΡΡ AWT ΡΡΠ°ΡΠ°Π΅ΡΡΡ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°ΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ. ΠΡΠΎ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΡΡΠ»ΠΎΠΆΠ½ΡΠ΅Ρ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ ΠΈ Π²Π»ΠΈΡΠ΅Ρ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ. ΠΡΠ²ΠΎΠΈΡΡ AWT Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ, Π½ΠΎ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΡΡΠΎ-ΡΠΎ ΡΠ»ΠΎΠΆΠ½ΠΎΠ΅ Π±ΡΠ΄Π΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π·Π°ΡΡΡΠ΄Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ. Π‘Π΅ΠΉΡΠ°Ρ Π΅Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΡΠ°Π·Π²Π΅ ΡΡΠΎ Π΄Π»Ρ Π°ΠΏΠΏΠ»Π΅ΡΠΎΠ².
ΠΠΎΡΡΠΎΠΈΠ½ΡΡΠ²Π°:
ΠΠ΅Π΄ΠΎΡΡΠ°ΡΠΊΠΈ:
Π·Π°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅:
Π Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ AWT ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΊΡΠ°ΠΉΠ½Π΅ ΡΠ΅Π΄ΠΊΠΎ β Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ Π² ΡΡΠ°ΡΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°Ρ ΠΈ Π°ΠΏΠΏΠ»Π΅ΡΠ°Ρ . Oracle ΠΏΡΠΈΠΏΡΡΡΠ°Π» ΠΎΠ±ΡΡΠ°Π»ΠΊΠΈ ΠΈ Π²ΡΡΡΠ΅ΡΠΊΠΈ ΠΏΠΎΠΎΡΡΡΠ΅Ρ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ Π½Π° Swing. ΠΠ½ΠΎ ΠΈ ΠΏΠΎΠ½ΡΡΠ½ΠΎ, ΠΏΡΡΠΌΠΎΠΉ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌ ΠΎΡΠΈ ΠΌΠΎΠΆΠ΅Ρ ΡΡΠ°ΡΡ ΡΠ΅ΡΡΠ΅Π·Π½ΠΎΠΉ Π΄ΡΡΠΎΠΉ Π² Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ.
Swing

Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ ΠΏΡΠΎΡΡΠΎΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ, Π±ΠΎΠ³Π°ΡΠΎΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΈ Π³ΠΈΠ±ΠΊΠΎΡΡΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² Swing ΡΡΠ°Π», ΠΏΠΎΠΆΠ°Π»ΡΠΉ, ΡΠ°ΠΌΡΠΌ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΠΌ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠΌ Π² Java. ΠΠ° Π΅Π³ΠΎ Π±Π°Π·Π΅ ΠΏΠΎΡΠ²ΠΈΠ»ΠΎΡΡ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠΉ, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ SwingX, JGoodies, ΠΊΠΎΡΠΎΡΡΠ΅ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠΏΡΠΎΡΠ°ΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠ»ΠΎΠΆΠ½ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ². ΠΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π²ΡΠ΅ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΠ΅ ΡΡΠ΅Π΄Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Java Π²ΠΊΠ»ΡΡΠ°ΡΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΡ Π΄Π»Ρ Swing-ΡΠΎΡΠΌ. ΠΠΎΡΡΠΎΠΌΡ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ ΠΈ Π½Π°ΡΠ°ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Swing Π½Π΅ ΡΠΎΡΡΠ°Π²ΠΈΡ ΠΎΡΠΎΠ±ΠΎΠ³ΠΎ ΡΡΡΠ΄Π°.
ΠΠΎΡΡΠΎΠΈΠ½ΡΡΠ²Π°:
ΠΠ΅Π΄ΠΎΡΡΠ°ΡΠΊΠΈ:
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅:
Swing ΠΆΠΈΠ», Swing ΠΆΠΈΠ², Swing Π±ΡΠ΄Π΅Ρ ΠΆΠΈΡΡ. Π₯ΠΎΡΡ Oracle ΠΈ ΡΡΠ°ΡΠ°Π΅ΡΡΡ ΠΏΡΠΎΠ΄Π²ΠΈΠ³Π°ΡΡ JavaFX, Π½Π° ΡΠ΅Π³ΠΎΠ΄Π½ΡΡΠ½ΠΈΠΉ Π΄Π΅Π½Ρ Swing ΠΎΡΡΠ°Π΅ΡΡΡ ΡΠ°ΠΌΡΠΌ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΠΌ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠΌ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ² Π½Π° Java.
Standard Widget Toolkit
SWT Π±ΡΠ» ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½ Π² ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ IBM Π² ΡΠ΅ Π²ΡΠ΅ΠΌΠ΅Π½Π°, ΠΊΠΎΠ³Π΄Π° Swing Π΅ΡΠ΅ Π±ΡΠ» ΠΌΠ΅Π΄Π»Π΅Π½Π½ΡΠΌ, ΠΈ ΡΠ΄Π΅Π»Π°Π½ΠΎ ΡΡΠΎ Π±ΡΠ»ΠΎ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ Π΄Π»Ρ ΠΏΡΠΎΠ΄Π²ΠΈΠΆΠ΅Π½ΠΈΡ ΡΡΠ΅Π΄Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Eclipse. SWT, ΠΊΠ°ΠΊ ΠΈ AWT, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ, Π½ΠΎ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ Ρ Π½Π΅Π³ΠΎ ΡΠΎΠ·Π΄Π°Π½Ρ ΡΠ²ΠΎΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ. Π’Π°ΠΊ ΡΡΠΎ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π½ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠ΅Π±Π΅ ΠΏΡΠΈΠ΄Π΅ΡΡΡ ΠΏΠΎΡΡΠ°Π²Π»ΡΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ JAR-Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ Ρ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠ΅ΠΉ Π²Π΅ΡΡΠΈΠ΅ΠΉ SWT. ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΎ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ»Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΎΡΠΈ. ΠΠ΅Π΄ΠΎΡΡΠ°ΡΡΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Π±ΡΠ»ΠΈ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ 2D, ΠΊΠ°ΠΊ Π² Swing. Π£ SWT Π΅ΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ²Π΅ΡΠΆΠ΅Π½ΡΠ΅Π², Π½ΠΎ, ΠΏΠΎΠ»ΠΎΠΆΠ° ΡΡΠΊΡ Π½Π° ΡΠ΅ΡΠ΄ΡΠ΅, Π½Π΅Π»ΡΠ·Ρ Π½Π΅ ΡΠΎΠ³Π»Π°ΡΠΈΡΡΡΡ, ΡΡΠΎ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΎΡΡ Π½Π΅ ΡΠ°ΠΊ Π²ΡΠ΅ ΠΏΡΠΎΡΡΠΎ, ΠΊΠ°ΠΊ Ρ ΠΎΡΠ΅Π»ΠΎΡΡ Π±Ρ. ΠΠΎΠ²ΠΈΡΠΊΡ ΠΏΡΠΈΠ΄Π΅ΡΡΡ Π·Π°ΡΡΠ°ΡΠΈΡΡ Π½Π° ΠΈΠ·ΡΡΠ΅Π½ΠΈΠ΅ SWT Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ Π±ΠΎΠ»ΡΡΠ΅ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, ΡΠ΅ΠΌ Π½Π° Π·Π½Π°ΠΊΠΎΠΌΡΡΠ²ΠΎ Ρ ΡΠ΅ΠΌ ΠΆΠ΅ Swing. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, SWT Π²ΠΎΠ·Π»Π°Π³Π°Π΅Ρ Π·Π°Π΄Π°ΡΡ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΡΠ΅ΡΡΡΡΠΎΠ² Π½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ°, Π² ΡΠ²ΡΠ·ΠΈ Ρ ΡΠ΅ΠΌ Π΅ΠΌΡ Π½ΡΠΆΠ½ΠΎ Π±ΡΡΡ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π²Π½ΠΈΠΌΠ°ΡΠ΅Π»ΡΠ½ΡΠΌ ΠΏΡΠΈ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈ ΠΊΠΎΠ΄Π°, ΡΡΠΎΠ±Ρ ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π½Π΅ ΠΏΡΠΈΠ²Π΅Π»ΠΎ ΠΊ ΡΡΠ΅ΡΠΊΠ°ΠΌ ΠΏΠ°ΠΌΡΡΠΈ.
ΠΠΎΡΡΠΎΠΈΠ½ΡΡΠ²Π°:
ΠΠ΅Π΄ΠΎΡΡΠ°ΡΠΊΠΈ:
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅:
ΠΠΈΠ΄Π½ΠΎ, ΡΡΠΎ Π² IBM ΡΡΠ°ΡΠ°Π»ΠΈΡΡ. ΠΠΎ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΎΡΡ ΡΠΆ ΠΎΡΠ΅Π½Ρ Π½Π° Π»ΡΠ±ΠΈΡΠ΅Π»Ρβ¦
JavaFX

JavaFX ΠΌΠΎΠΆΠ½ΠΎ Π±Π΅Π· ΠΏΡΠ΅ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΡ Π½Π°Π·Π²Π°ΡΡ ΠΏΡΠΎΡΡΠ²ΠΎΠΌ. ΠΠ»Ρ ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ, ΡΡΠΎ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΡΠΊΠΎΡΡΠ΅Ρ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠ°Π±ΠΎΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² ΠΎΠ±ΡΠΈΡΠ΅Π½, Π΅ΡΡΡ Π΄Π°ΠΆΠ΅ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Π΄Π»Ρ ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ Π³ΡΠ°ΡΠΈΠΊΠΎΠ². Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΌΡΠ»ΡΡΠΈΠΌΠ΅Π΄ΠΈΠΉΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ°, ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° ΡΡΡΠ΅ΠΊΡΠΎΠ² ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ, Π°Π½ΠΈΠΌΠ°ΡΠΈΠΈ ΠΈ Π΄Π°ΠΆΠ΅ ΠΌΡΠ»ΡΡΠΈΡΠ°Ρ. ΠΠ½Π΅ΡΠ½ΠΈΠΉ Π²ΠΈΠ΄ Π²ΡΠ΅Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ CSS-ΡΡΠΈΠ»Π΅ΠΉ. Π ΡΠ°ΠΌΠΎΠ΅ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ½ΠΎΠ΅ β Π² JavaFX Π²Ρ ΠΎΠ΄ΠΈΡ Π½Π°Π±ΠΎΡ ΡΡΠΈΠ»ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ½ΡΡΠ°Π»Π»ΡΡΠΎΡ Π΄Π»Ρ ΡΠ°ΠΌΡΡ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌ: exe ΠΈΠ»ΠΈ msi Π΄Π»Ρ Windows, deb ΠΈΠ»ΠΈ rpm Π΄Π»Ρ Linux, dmg Π΄Π»Ρ Mac. ΠΠ° ΡΠ°ΠΉΡΠ΅ Oracle ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΡΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΠΈ ΠΎΠ³ΡΠΎΠΌΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π³ΠΎΡΠΎΠ²ΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ². ΠΡΠΎ ΠΏΡΠ΅Π²ΡΠ°ΡΠ°Π΅Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Ρ JavaFX Π² Π»Π΅Π³ΠΊΠΎΠ΅ ΠΈ ΠΏΡΠΈΡΡΠ½ΠΎΠ΅ Π·Π°Π½ΡΡΠΈΠ΅.
ΠΠΎΡΡΠΎΠΈΠ½ΡΡΠ²Π°:
ΠΠ΅Π΄ΠΎΡΡΠ°ΡΠΊΠΈ:
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅:
Π₯ΠΎΡΠΎΡΠ°Ρ ΡΠ°Π±ΠΎΡΠ°, Oracle. Π€ΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΠ·ΠΈΡΠΈΠ²Π½ΡΠ΅ Π²ΠΏΠ΅ΡΠ°ΡΠ»Π΅Π½ΠΈΡ. Π Π°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ Π½Π΅ΡΠ»ΠΎΠΆΠ½ΠΎ, ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ Π²ΡΠ³Π»ΡΠ΄ΡΡ Π»ΠΎΠ³ΠΈΡΠ½ΡΠΌΠΈ. Π₯ΠΎΡΠ΅ΡΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΠ½ΠΎΠ²Π° ΠΈ ΡΠ½ΠΎΠ²Π°!
ΠΠΈΠ·ΡΠ°Π»ΡΠ½ΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅
SWT: ΠΏΠΎΠ³ΠΎΠ΄Π½ΡΠΉ Π²ΠΈΠ΄ΠΆΠ΅Ρ
ΠΠ»Ρ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ ΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΠΏΡΠΈΠ½ΡΠΈΠΏΠΎΠ² ΡΠ°Π±ΠΎΡΡ Ρ Π½ΠΈΠΌΠΈ ΡΠ΄Π΅Π»Π°Π΅ΠΌ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π½Π΅Π±ΠΎΠ»ΡΡΠΈΡ Π²ΠΈΠ΄ΠΆΠ΅ΡΠΎΠ² Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΡΠ°Π·Π»ΠΈΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ.
Π Π½Π°ΡΠ½Π΅ΠΌ, ΠΏΠΎΠΆΠ°Π»ΡΠΉ, Ρ ΡΠ°ΠΌΠΎΠ³ΠΎ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΎΠ³ΠΎ Π²ΠΈΠ΄ΠΆΠ΅ΡΠ° β ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΠΏΠΎΠ³ΠΎΠ΄Ρ, Π΄Π»Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π²ΡΠ±Π΅ΡΠ΅ΠΌ SWT.
ΠΡΠ±Π°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π½Π° SWT Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Display. ΠΠ½ ΡΠ»ΡΠΆΠΈΡ ΡΠ²ΠΎΠ΅ΠΎΠ±ΡΠ°Π·Π½ΡΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠΎΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ Π΄Π»Ρ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΡ ΠΊ ΡΠ΅ΡΡΡΡΠ°ΠΌ ΡΠΈΡΡΠ΅ΠΌΡ ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΡΠΈΠΊΠ» ΡΠΎΠ±ΡΡΠΈΠΉ. Π‘Π»Π΅Π΄ΡΡΡΠΈΠΌ ΡΠ°Π³ΠΎΠΌ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ Π²Π°ΠΆΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Shell. Shell ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΠΎΠ±ΡΡΠ½ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ. Π ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ shell ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ Display, ΡΡΠΎΠ±Ρ ΡΠΎΠ·Π΄Π°ΡΡ ΠΎΠΊΠ½ΠΎ Π²Π΅ΡΡ Π½Π΅Π³ΠΎ ΡΡΠΎΠ²Π½Ρ.
Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΌΡ ΡΠΎΠ·Π΄Π°Π΅ΠΌ Π²ΠΈΠ΄ΠΆΠ΅Ρ, Π½Π°ΠΌ Π½Π΅ Π½ΡΠΆΠ½ΠΎ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠ΅ ΠΎΠ±ΡΠ°ΠΌΠ»Π΅Π½ΠΈΠ΅ ΠΎΠΊΠ½Π° ΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ, Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΠΌΡ ΡΠΊΠ°Π·Π°Π»ΠΈ ΡΠ»Π°Π³ NO_TRIM. ΠΠ»Ρ ΡΠΎΠ½Π° ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠ°ΡΡΠΈΠ½ΠΊΡ β ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊ Ρ Π·Π°ΠΊΡΡΠ³Π»Π΅Π½Π½ΡΠΌΠΈ ΡΠ³Π»Π°ΠΌΠΈ. Π ΠΏΡΠΈΠ½ΡΠΈΠΏΠ΅, ΠΎΠΊΠ½ΠΎ SWT ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ Π»ΡΠ±ΡΠ΅ ΡΠΎΡΠΌΡ. Π§ΡΠΎΠ±Ρ Π΄ΠΎΠ±ΠΈΡΡΡΡ ΡΠ°ΠΊΠΎΠ³ΠΎ ΡΡΡΠ΅ΠΊΡΠ°, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΠΊΠ»Π°ΡΡ Region. ΠΡΠ΅, ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ, β Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π² ΡΡΠΎΡ ΠΊΠ»Π°ΡΡ Π²ΡΠ΅ Π²ΠΈΠ΄ΠΈΠΌΡΠ΅ ΡΠΎΡΠΊΠΈ ΠΈΠ· ΠΊΠ°ΡΡΠΈΠ½ΠΊΠΈ ΡΠΎΠ½Π°, ΠΏΡΠΎΠΏΡΡΠΊΠ°Ρ ΠΏΡΠΎΠ·ΡΠ°ΡΠ½ΡΠ΅.
Π ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡΡ ΡΠ°Π·Π½ΡΡ ΡΠΎΡΠΌΠ°ΡΠΎΠ² ΠΏΡΠΎΠ·ΡΠ°ΡΠ½ΠΎΡΡΡ Π·Π°Π΄Π°Π΅ΡΡΡ ΠΏΠΎ-ΡΠ°Π·Π½ΠΎΠΌΡ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΈ ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅ΡΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΠΏΡΠΎΠ·ΡΠ°ΡΠ½ΡΡ ΠΎΠ±Π»Π°ΡΡΡΡ ΡΠΎΠΆΠ΅ Π½Π΅ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ. Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΠΎΠ±Π»Π°ΡΡΡ ΡΠΎΠ½Π° ΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ ΡΡΠ΄Π° Π²ΡΠ΅ Π²ΠΈΠ΄ΠΈΠΌΡΠ΅ ΡΠΎΡΠΊΠΈ:
Π£ΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ ΡΠΎΡΠΌΡ ΠΎΠΊΠ½Π°:
Π’Π΅ΠΏΠ΅ΡΡ Π½ΡΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ»ΡΡΠ°ΡΠ΅Π»Ρ ΡΠΎΠ±ΡΡΠΈΠΉ Π΄Π»Ρ ΠΎΠΊΠ½Π°. ΠΠ°Ρ Π±ΡΠ΄ΡΡ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠΎΠ²Π°ΡΡ ΡΠΎΠ±ΡΡΠΈΡ ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΎΠΊΠ½Π°, ΡΠΎΠ±ΡΡΠΈΡ ΠΌΡΡΠΈ ΠΈ Π½Π°ΠΆΠ°ΡΠΈΡ ΠΊΠ»Π°Π²ΠΈΡ, ΡΡΠΎΠ±Ρ ΠΎΠΊΠ½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π²ΠΈΠ³Π°ΡΡ ΠΏΠΎ ΡΠΊΡΠ°Π½Ρ.
ΠΡΠ°ΠΊ, ΠΏΠΎ Π½Π°ΠΆΠ°ΡΠΈΡ Π½Π° ΠΊΠ»Π°Π²ΠΈΡΡ Esc ΠΎΠΊΠ½ΠΎ Π·Π°ΠΊΡΠΎΠ΅ΡΡΡ. ΠΡΠΈ Π½Π°ΠΆΠ°ΡΠΈΠΈ Π»Π΅Π²ΠΎΠΉ ΠΊΠ»Π°Π²ΠΈΡΠΈ ΠΌΡΡΠΈ Π½Π° ΠΎΠ±Π»Π°ΡΡΠΈ ΠΎΠΊΠ½Π° Π·Π°ΠΏΠΎΠΌΠ½ΠΈΠΌ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ Π½Π°ΠΆΠ°ΡΠΈΡ. ΠΡΠΈ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠΈ ΠΌΡΡΠΈ Ρ Π·Π°ΠΆΠ°ΡΠΎΠΉ Π»Π΅Π²ΠΎΠΉ ΠΊΠ»Π°Π²ΠΈΡΠ΅ΠΉ β ΠΏΠ΅ΡΠ΅Π΄Π²ΠΈΠ³Π°Π΅ΠΌ ΠΎΠΊΠ½ΠΎ Π½Π° ΡΠΊΡΠ°Π½Π΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΡ. ΠΡΠΈ ΡΠΎΠ±ΡΡΠΈΠΈ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠΎΠ²ΠΊΠΈ β ΡΠΈΡΡΠ΅ΠΌ ΠΊΠ°ΡΡΠΈΠ½ΠΊΡ ΡΠΎΠ½Π°, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ GC.
ΠΠ°Π·Π½Π°ΡΠΈΠΌ ΡΠ»ΡΡΠ°ΡΠ΅Π»Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΌ ΡΠΎΠ±ΡΡΠΈΡΠΌ ΠΎΠΊΠ½Π°:
Π£ΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ ΡΠ°Π·ΠΌΠ΅Ρ ΠΎΠΊΠ½Π° ΡΠ°Π²Π½ΡΠΌ ΡΠ°Π·ΠΌΠ΅ΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ:
ΠΡΠΊΡΡΠ²Π°Π΅ΠΌ ΠΎΠΊΠ½ΠΎ ΠΈ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌ ΡΠΈΠΊΠ» ΡΠΎΠ±ΡΡΠΈΠΉ:
ΠΠ΅ Π·Π°Π±ΡΠ²Π°Π΅ΠΌ Π² ΠΊΠΎΠ½ΡΠ΅ ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄ΠΈΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠ΅ΡΡΡΡΡ:
ΠΠ°ΠΏΡΡΡΠΈΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π° ΡΡΠΎΠΌ ΡΡΠ°ΠΏΠ΅, ΠΌΡ ΠΏΠΎΠ»ΡΡΠΈΠΌ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΡΠ΅ΠΊ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π΄Π²ΠΈΠ³Π°ΡΡ ΠΌΡΡΠΊΠΎΠΉ ΠΈ Π·Π°ΠΊΡΡΠ²Π°ΡΡ ΠΏΠΎ Esc.
ΠΠ°ΡΡΠ°Π»ΠΎ Π²ΡΠ΅ΠΌΡ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΡ. ΠΡΠ΄Π΅ΠΌ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡ ΡΠ΅ΠΊΡΡΡΡ ΠΏΠΎΠ³ΠΎΠ΄Ρ Π² Π²ΠΈΠ΄Π΅ ΠΈΠΊΠΎΠ½ΠΊΠΈ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ (ΡΠΎΠ»Π½Π΅ΡΠ½ΠΎ, Π΄ΠΎΠΆΠ΄Ρ, ΡΠ½Π΅Π³β¦), ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΈΠΉ ΡΠ΅ΠΌΠΏΠ΅ΡΠ°ΡΡΡΡ ΠΈ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ.
ΠΠ»Ρ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² Π² ΠΎΠΊΠ½Π΅ Π² Π½ΡΠΆΠ½ΠΎΠΌ Π²ΠΈΠ΄Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠΈ. ΠΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠΈ Π·Π°Π½ΠΈΠΌΠ°Π΅ΡΡΡ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ², Π½ΠΎ ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΈΡ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠ² ΠΏΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠ² ΠΎΠΊΠ½Π°. ΠΠ»Ρ Π½Π°ΡΠ΅Π³ΠΎ Π²ΠΈΠ΄ΠΆΠ΅ΡΠ° Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ GridLayout. ΠΡΠΎΡ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ ΡΠ°ΡΠΏΠΎΠ»Π°Π³Π°Π΅Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Π² ΡΡΠ΅ΠΉΠΊΠ°Ρ Π²ΠΎΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΠΌΠΎΠΉ ΡΠ°Π±Π»ΠΈΡΡ. Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ GridBagLayout Π½Π° Π΄Π²Π΅ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΠΎΠΉ ΡΠΈΡΠΈΠ½ΠΎΠΉ ΠΊΠΎΠ»ΠΎΠ½ΠΎΠΊ (ΡΠ»Π°Π³ false Π² ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ΅), ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ Π΅Π³ΠΎ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΠ° ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠΈ ΠΎΠΊΠ½Π°:
ΠΠ»Ρ ΠΊΠ°ΡΡΠΈΠ½ΠΊΠΈ ΡΡΠ°ΡΡΡΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Label. Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠΎΠ΄ΠΈΡΠ΅Π»Ρ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΠΌ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΎΠΊΠ½Π°. ΠΡΠΎΡΡΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΡΠΈΠ»Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°. ΠΠ»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° Π½Π°Π±ΠΎΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ ΡΠ»Π°Π³ΠΎΠ² ΡΡΠΈΠ»Ρ ΡΠ°Π·Π½ΡΠΉ, ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΈΠ»ΠΈ ΠΏΡΡΠΌΠΎ Π² ΠΈΡΡ ΠΎΠ΄Π½ΠΈΠΊΠ°Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°.
Π€Π»Π°Π³ΠΈ Π² ΠΊΠ»Π°ΡΡΠ΅ GridData ΠΎΠ·Π½Π°ΡΠ°ΡΡ, ΡΡΠΎ ΠΌΠ΅ΡΠΊΠ° Π±ΡΠ΄Π΅Ρ ΡΠ°ΡΠΏΠΎΠ»Π°Π³Π°ΡΡΡΡ ΡΠ»Π΅Π²Π° Π²Π²Π΅ΡΡ Ρ, Π±ΡΠ΄Π΅Ρ ΡΠ°ΡΡΡΠ³ΠΈΠ²Π°ΡΡΡΡ Π³ΠΎΡΠΈΠ·ΠΎΠ½ΡΠ°Π»ΡΠ½ΠΎ ΠΈ Π²Π΅ΡΡΠΈΠΊΠ°Π»ΡΠ½ΠΎ (ΡΠ»Π°Π³ΠΈ, ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΠ΅ Π² true) ΠΏΡΠΈ Π½Π°Π»ΠΈΡΠΈΠΈ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΌΠ΅ΡΡΠ° ΠΈ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ ΠΎΠ΄Π½Ρ ΡΡΡΠΎΠΊΡ ΠΈ ΠΎΠ΄ΠΈΠ½ ΡΡΠΎΠ»Π±Π΅Ρ ΡΠ°Π±Π»ΠΈΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠΈ.
Π SWT Π½Π΅Ρ ΠΏΡΠΎΠ·ΡΠ°ΡΠ½ΠΎΠ³ΠΎ ΡΠΎΠ½Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ², ΠΈ ΠΏΠΎΠ·Π°Π΄ΠΈ ΠΊΠ°ΡΡΠΈΠ½ΠΊΠΈ ΡΡΠ°ΡΡΡΠ° Π±ΡΠ΄Π΅Ρ ΠΊΡΠ°ΡΠΎΠ²Π°ΡΡΡΡ Π±Π΅Π»ΡΠΉ ΡΠΎΠ½, ΡΠ΅Π³ΠΎ, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, Π½Π΅ Ρ ΠΎΡΠ΅Π»ΠΎΡΡ Π±Ρ. ΠΠΎΡΡΠΎΠΌΡ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΠΎΠ±ΡΠ΅ΠΊΡ Color Ρ ΡΠ²Π΅ΡΠΎΠΌ ΡΠΎΠ½Π° ΠΎΠΊΠ½Π°:
Π ΠΊΠΎΠ½ΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΡΡΠΎΡ ΠΎΠ±ΡΠ΅ΠΊΡ ΡΠ°ΠΊΠΆΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΡΠΈΡΡΠΈΡΡ, Π²ΡΠ·Π²Π°Π² ΠΌΠ΅ΡΠΎΠ΄ dispose. Π£ΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ ΡΠ²Π΅Ρ ΡΠΎΠ½Π° ΠΈ ΠΊΠ°ΡΡΠΈΠ½ΠΊΡ ΡΡΠ°ΡΡΡΠ°, ΠΊΠΎΡΠΎΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π³ΡΡΠ·ΠΈΡΡ ΠΈΠ· ΡΠ°ΠΉΠ»Π° ΡΠΎΡΠ½ΠΎ ΡΠ°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΌΡ Π·Π°Π³ΡΡΠ·ΠΈΠ»ΠΈ ΠΊΠ°ΡΡΠΈΠ½ΠΊΡ ΡΠΎΠ½Π° Π²Π½Π°ΡΠ°Π»Π΅:
Π’Π΅ΠΏΠ΅ΡΡ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Label Ρ ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΡΠ΅ΠΌΠΏΠ΅ΡΠ°ΡΡΡΠΎΠΉ ΠΈ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ Π΅Π³ΠΎ Π² ΠΏΡΠ°Π²ΠΎΠΉ Π²Π΅ΡΡ Π½Π΅ΠΉ ΡΠ°ΡΡΠΈ ΠΎΠΊΠ½Π°:
Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΠΌ ΠΊΠ°ΠΊΡΡ-Π½ΠΈΠ±ΡΠ΄Ρ ΡΠ΅ΠΌΠΏΠ΅ΡΠ°ΡΡΡΡ:
ΠΠ»Ρ Π·Π°ΠΏΠΈΡΠΈ ΡΠ΅ΠΌΠΏΠ΅ΡΠ°ΡΡΡΡ ΠΏΠΎ Π¦Π΅Π»ΡΡΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠ½ΠΈΠΊΠΎΠ΄Π½ΡΠΉ Π½ΠΎΠΌΠ΅Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π³ΠΎ ΡΠΈΠΌΠ²ΠΎΠ»Π° ΡΠΎ ΡΠ»ΡΠΆΠ΅Π±Π½ΡΠΌΠΈ ΡΠΈΠΌΠ²ΠΎΠ»Π°ΠΌΠΈ \u.
Π¨ΡΠΈΡΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π΄Π»Ρ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΡ ΠΌΠ΅ΡΠΎΠΊ ΡΠ»ΠΈΡΠΊΠΎΠΌ ΠΌΠ°Π»Π΅Π½ΡΠΊΠΈΠΉ. Π’Π°ΠΊ ΡΡΠΎ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Π½ΠΎΠ²ΡΠΉ, ΠΏΠΎΠ±ΠΎΠ»ΡΡΠ΅:
FontData[] fD = temperatureLabel.getFont().getFontData(); fD[0].setHeight(30); fD[0].setStyle(SWT.BOLD); Font newFont = new Font(display, fD[0]); temperatureLabel.setFont(newFont); Π¨ΡΠΈΡΡ, ΠΊΠ°ΠΊ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΡΠ΅ΡΡΡΡΠ½ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ, Π½ΡΠΆΠ½ΠΎ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°ΡΡ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ ΡΠ»ΡΡΠ°ΡΠ΅Π»Π΅ΠΌ ΡΠΎΠ±ΡΡΠΈΡ ΡΠ°Π·ΡΡΡΠ΅Π½ΠΈΡ ΠΌΠ΅ΡΠΊΠΈ:
ΠΠ°ΠΊΠΎΠ½Π΅Ρ, Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΠΌΠ΅ΡΠΊΡ Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ΠΌ ΠΏΠΎΠ³ΠΎΠ΄Π½ΡΡ ΡΡΠ»ΠΎΠ²ΠΈΠΉ:
Π’Π΅ΠΊΡΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ Π΄Π»ΠΈΠ½Π½ΡΠΌ, ΡΠ°ΠΊ ΡΡΠΎ ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΌΠ΅ΡΠΊΠΈ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌ ΡΠ»Π°Π³ WRAP, ΡΡΠΎΠ±Ρ ΡΠ΅ΠΊΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠ°Π·Π±ΠΈΠ²Π°Π»ΡΡ Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΡΠΎΠΊ ΠΏΡΠΈ Π½Π΅Ρ Π²Π°ΡΠΊΠ΅ ΠΌΠ΅ΡΡΠ°. Π Π°ΡΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΠΏΠΎ ΡΠ΅Π½ΡΡΡ ΠΈ ΡΠ°Π·ΡΠ΅ΡΠΈΠΌ Π΅ΠΌΡ Π·Π°ΠΏΠΎΠ»Π½ΠΈΡΡ Π²ΡΠ΅ Π³ΠΎΡΠΈΠ·ΠΎΠ½ΡΠ°Π»ΡΠ½ΠΎΠ΅ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ. Π’Π°ΠΊΠΆΠ΅ ΡΠΊΠ°ΠΆΠ΅ΠΌ, ΡΡΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ Π΄Π²Π° ΡΡΠΎΠ»Π±ΡΠ° ΡΠ°Π±Π»ΠΈΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠΈ. ΠΠ°ΠΏΡΡΠΊΠ°Π΅ΠΌ ΠΈ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ ΠΎΠΊΠΎΡΠΊΠΎ Ρ ΠΊΠ°ΡΡΠΈΠ½ΠΊΠΈ Β«ΠΠΈΠ΄ΠΆΠ΅Ρ ΠΏΠΎΠ³ΠΎΠ΄ΡΒ».
Π’Π΅ΠΏΠ΅ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΠΊΡΡΡΠΈΡΡ ΠΊΠ°ΠΊΠΎΠΉ-Π½ΠΈΠ±ΡΠ΄Ρ ΡΠ΅ΡΠ²ΠΈΡ ΠΏΠΎΠ³ΠΎΠ΄Ρ, ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ°ΠΉΠΌΠ΅Ρ Π΄Π»Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ β ΠΈ Π²ΠΈΠ΄ΠΆΠ΅Ρ Π³ΠΎΡΠΎΠ².
Swing: Π²ΡΠ΅Π³Π΄Π° ΡΠ²Π΅ΠΆΠΈΠ΅ Π½ΠΎΠ²ΠΎΡΡΠΈ
ΠΠ° Swing ΠΌΡ Π½Π°ΠΏΠΈΡΠ΅ΠΌ Π²ΠΈΠ΄ΠΆΠ΅Ρ Π΄Π»Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ RSS-Π½ΠΎΠ²ΠΎΡΡΠ΅ΠΉ. ΠΠ°ΡΠΈΠ½Π°Π΅ΠΌ, ΠΊΠ°ΠΊ ΠΈ Π² ΠΏΡΠΎΡΠ»ΡΠΉ ΡΠ°Π·, Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΎΠΊΠ½Π°. ΠΠ»Π°ΡΡ, ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡΠΈΠΉ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π» ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° Π² Swing, Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ JFrame. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π·Π°ΠΊΡΡΡΠΈΠ΅ ΠΎΠΊΠ½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π² Swing Π½Π΅ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΡΠ°ΠΊ ΡΡΠΎ Π»ΡΡΡΠ΅ ΠΏΡΠΎΠΏΠΈΡΠ°ΡΡ, ΠΊΠ°ΠΊ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΠ΅Π±Ρ Π²Π΅ΡΡΠΈ ΠΎΠΊΠ½ΠΎ ΠΏΡΠΈ Π·Π°ΠΊΡΡΡΠΈΠΈ:
ΠΠ»Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ Π½ΠΎΠ²ΠΎΡΡΠ΅ΠΉ Π»ΡΡΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ ΡΠ°Π±Π»ΠΈΡΠ°. Swing ΠΏΠΎΡΡΡΠΎΠ΅Π½ Π½Π° ΠΏΠ°ΡΡΠ΅ΡΠ½Π΅ Β«ΠΠΎΠ΄Π΅Π»Ρ βΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ β ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΒ» (MVC). Π Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ΅ MVC ΠΌΠΎΠ΄Π΅Π»Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π΄Π°Π½Π½ΡΠ΅, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ Π·Π° ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ΅ΠΊΡΡ, ΠΏΠΎΠ»Ρ Π²Π²ΠΎΠ΄Π°), Π° ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ ΠΌΠΎΠ΄Π΅Π»ΡΡ ΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ. Π’Π°Π±Π»ΠΈΡΠ° Ρ ΠΎΡΠΎΡΠΎ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΡΠ΅Ρ ΡΡΠΎΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄. ΠΠ»Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΊΠ»Π°ΡΡ, ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ TableModel.
ΠΠ»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ Π΄ΠΎΡΡΡΠΏΠ½ΡΡ Π½ΠΎΠ²ΠΎΡΡΡΡ Π·Π°Π²Π΅Π΄Π΅ΠΌ ΠΊΠ»Π°ΡΡ FeedMessage c ΠΏΠΎΠ»ΡΠΌΠΈ Π΄Π»Ρ Π½Π°Π·Π²Π°Π½ΠΈΡ ΡΡΠ°ΡΡΠΈ ΠΈ Π΄Π°ΡΡ Π²ΡΡ ΠΎΠ΄Π°:
Π§ΡΠΎΠ±Ρ ΡΠΏΡΠΎΡΡΠΈΡΡ ΠΈ ΡΡΠΊΠΎΡΠΈΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΡ, Π½Π°ΡΠ»Π΅Π΄ΡΠ΅ΠΌ Π½Π°ΡΡ ΠΌΠΎΠ΄Π΅Π»Ρ Π΄Π°Π½Π½ΡΡ ΠΎΡ ΠΊΠ»Π°ΡΡΠ° AbstractTableModel, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ Π³ΠΎΡΠΎΠ²ΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΏΠΎΡΡΠΈ Π²ΡΠ΅Ρ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° TableModel.
ΠΠ΅ΡΠΎΠ΄ fireTableDataChanged ΡΠΎΠΎΠ±ΡΠ°Π΅Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ, ΡΡΠΎ ΠΌΠΎΠ΄Π΅Π»Ρ Π΄Π°Π½Π½ΡΡ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»Π°ΡΡ ΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠ° ΠΏΠ΅ΡΠ΅ΡΠΈΡΠΎΠ²ΠΊΠ°.
Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΡΠ°Π±Π»ΠΈΡΡ ΠΈ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌ Π΅Π΅ Π²ΠΈΠ΄, ΡΡΠΎΠ±Ρ ΠΎΠ½Π° Π±ΡΠ»Π° Π±ΠΎΠ»ΡΡΠ΅ ΠΏΠΎΡ ΠΎΠΆΠ° Π½Π° Π²ΠΈΠ΄ΠΆΠ΅Ρ. Π£Π±ΠΈΡΠ°Π΅ΠΌ Π»ΠΈΠ½ΠΈΠΈ ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΡΠΎΠΊΠ°ΠΌΠΈ ΠΈ ΡΡΠΎΠ»Π±ΡΠ°ΠΌΠΈ, ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Π΅ΠΌ Π²ΡΡΠΎΡΡ ΡΡΡΠΎΠΊΠΈ ΠΈ ΡΠ±ΠΈΡΠ°Π΅ΠΌ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ ΡΠ°Π±Π»ΠΈΡΡ Ρ Π½Π°Π·Π²Π°Π½ΠΈΡΠΌΠΈ ΠΊΠΎΠ»ΠΎΠ½ΠΎΠΊ:
Π’Π΅ΠΏΠ΅ΡΡ Π·Π°ΠΉΠΌΠ΅ΠΌΡΡ Π²Π½Π΅ΡΠ½ΠΈΠΌ Π²ΠΈΠ΄ΠΎΠΌ ΡΡΠ΅Π΅ΠΊ. Swing ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π½Π°Π·Π½Π°ΡΠ°ΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ ΠΊΠ»Π°ΡΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ Π΄Π»Ρ ΡΠ°Π·Π½ΡΡ ΡΠΈΠΏΠΎΠ² Π΄Π°Π½Π½ΡΡ . ΠΠ° ΠΎΡΡΠΈΡΠΎΠ²ΠΊΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΡΡΠ΅Π΅ΠΊ ΡΠ°Π±Π»ΠΈΡΡ ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ ΠΊΠ»Π°ΡΡ, Π½Π°ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ TableCellRenderer. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ DefaultTableCellRenderer, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΡ ΠΌΠ΅ΡΠΊΡ.
ΠΠ°Π·Π½Π°ΡΠΈΠΌ ΡΠ²ΠΎΠΉ ΠΎΡΡΠΈΡΠΎΠ²ΡΠΈΠΊ ΡΡΠ΅ΠΉΠΊΠΈ Π΄Π»Ρ Π΄Π°Π½Π½ΡΡ ΡΠΈΠΏΠ° String. ΠΠ·ΠΌΠ΅Π½ΠΈΠΌ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ ΡΠ²Π΅Ρ ΡΡΠΈΡΡΠ° ΠΈ ΡΠ΄Π΅Π»Π°Π΅ΠΌ ΡΠ΅ΡΠ΅Π΄ΡΡΡΠΈΠΉΡΡ ΡΠ²Π΅Ρ ΡΠΎΠ½Π°, ΡΡΠΎΠ±Ρ ΡΠ»ΡΡΡΠΈΡΡ ΡΠΈΡΠ°Π΅ΠΌΠΎΡΡΡ.
Π§ΡΠΎΠ±Ρ ΡΠ°Π±Π»ΠΈΡΠ° Π½Π°ΡΠ°Π»Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π½Π°Ρ ΠΎΡΡΠΈΡΠΎΠ²ΡΠΈΠΊ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΌΠ΅ΡΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠΈΠΏ Π΄Π°Π½Π½ΡΡ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΡΠ΅ΠΉΠΊΠΈ, Π² ΠΌΠΎΠ΄Π΅Π»Ρ Π΄Π°Π½Π½ΡΡ :
ΠΠΎΠ²ΠΎΡΡΠ΅ΠΉ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΏΠΎΠΌΠ΅ΡΡΠΈΠΌ ΡΠ°Π±Π»ΠΈΡΡ Π½Π° ΠΏΠ°Π½Π΅Π»Ρ ΠΏΡΠΎΠΊΡΡΡΠΊΠΈ ΠΈ ΡΠ΄Π΅Π»Π°Π΅ΠΌ ΠΏΠΎΠ»Π·ΡΠ½ΠΎΠΊ ΠΏΡΠΎΠΊΡΡΡΠΊΠΈ Π½Π΅Π²ΠΈΠ΄ΠΈΠΌΡΠΌ, ΡΡΠΎΠ±Ρ ΠΎΠ½ Π½Π΅ ΠΏΠΎΡΡΠΈΠ» Π½Π°ΠΌ Π΄ΠΈΠ·Π°ΠΉΠ½ Π²ΠΈΠ΄ΠΆΠ΅ΡΠ°:
ΠΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΠΏΡΠΎΠΊΡΡΡΠΊΠΈ Π½Π° Π³Π»Π°Π²Π½ΡΡ ΠΏΠ°Π½Π΅Π»Ρ ΠΎΠΊΠ½Π°. ΠΡΠΎΡΡΠΌ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π³Π»Π°Π²Π½Π°Ρ ΠΏΠ°Π½Π΅Π»Ρ ΠΎΠΊΠ½Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠΈ BorderLayout, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ°ΡΠΏΠΎΠ»Π°Π³Π°Π΅Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΠΏΠΎ ΡΡΠΎΡΠΎΠ½Π°ΠΌ ΡΠ²Π΅ΡΠ°. ΠΠΎΠΌΠ΅ΡΡΠΈΠΌ ΡΠ°Π±Π»ΠΈΡΡ Ρ ΠΏΡΠΎΠΊΡΡΡΠΊΠΎΠΉ Π² ΡΠ΅Π½ΡΡΠ΅.
ΠΠ°ΠΊ ΠΈ Π² ΠΏΡΠΎΡΠ»ΡΠΉ ΡΠ°Π·, ΡΠ±Π΅ΡΠ΅ΠΌ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠ΅ ΠΎΠ±ΡΠ°ΠΌΠ»Π΅Π½ΠΈΠ΅ ΠΎΠΊΠ½Π°. Π Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° ΠΎΠΊΠ½Π° Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΈΠ»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΡ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΡ ΠΌΠ΅ΡΠΊΡ, ΠΊΠΎΡΠΎΡΡΡ ΡΠ°Π·ΠΌΠ΅ΡΡΠΈΠΌ Π²Π²Π΅ΡΡ Ρ ΠΎΠΊΠ½Π°.
Π ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ SWT, ΠΎΠ±ΡΠ΅ΠΊΡΡ Β«ΡΠ²Π΅ΡΒ» ΠΈ Β«ΡΡΠΈΡΡΒ» ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°ΡΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ, ΡΠ°ΠΊ ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ ΠΏΠ΅ΡΠ΅ΠΆΠΈΠ²Π°ΡΡ Π·Π° ΡΡΠ΅ΡΠΊΠΈ ΠΏΠ°ΠΌΡΡΠΈ.
ΠΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°ΡΠ΅Π»ΠΈ ΠΌΡΡΠΈ, ΡΡΠΎΠ±Ρ ΠΎΠΊΠ½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π΄Π²ΠΈΠ³Π°ΡΡ ΠΏΠΎ ΡΠΊΡΠ°Π½Ρ.
Π’Π΅ΠΏΠ΅ΡΡ ΠΏΠΎΠΌΠ΅Π½ΡΠ΅ΠΌ ΡΠΎΡΠΌΡ ΠΎΠΊΠ½Π° Π½Π° ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊ Ρ Π·Π°ΠΊΡΡΠ³Π»Π΅Π½Π½ΡΠΌΠΈ ΡΠ³Π»Π°ΠΌΠΈ. ΠΡΡΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΡΡΠΎ Π΄Π΅Π»Π°ΡΡ Π² ΡΠ»ΡΡΠ°ΡΠ΅Π»Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°, ΡΠ°ΠΊ ΠΊΠ°ΠΊ, Π΅ΡΠ»ΠΈ ΡΠ°Π·ΠΌΠ΅Ρ ΠΎΠΊΠ½Π° ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡΡ, ΡΠΎΡΠΌΠ° ΠΎΠΊΠ½Π° Π±ΡΠ΄Π΅Ρ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΡΡΠΈΡΠ°Π½Π°:
Π£ΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ ΡΠ°Π·ΠΌΠ΅Ρ ΠΎΠΊΠ½Π°, ΡΠ±ΠΈΡΠ°Π΅ΠΌ ΠΎΠ±ΡΠ°ΠΌΠ»Π΅Π½ΠΈΠ΅ ΠΈ Π΄Π΅Π»Π°Π΅ΠΌ ΠΎΠΊΠ½ΠΎ ΠΏΠΎΠ»ΡΠΏΡΠΎΠ·ΡΠ°ΡΠ½ΡΠΌ.
ΠΠ°ΠΊΠΎΠ½Π΅Ρ, ΠΎΡΠΊΡΡΠ²Π°Π΅ΠΌ ΠΎΠΊΠ½ΠΎ Π² Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΌ ΠΏΠΎΡΠΎΠΊΠ΅. SwingUtilities.invokeLater(new Runnable() < public void run() < frame.setVisible(true); >>);
ΠΡΡΠ°Π»ΠΎΡΡ Π΄ΠΎΠΏΠΈΡΠ°ΡΡ Π·Π°Π³ΡΡΠ·ΠΊΡ Π΄Π°Π½Π½ΡΡ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΌ ΠΏΠΎΡΠΎΠΊΠ΅, ΠΈ ΠΏΠΎΠ»ΡΡΠΈΠΌ ΡΠ°ΠΊΠΎΠΉ Π²ΠΎΡ Π²ΠΈΠ΄ΠΆΠ΅Ρ Ρ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΌΠΈ Π½ΠΎΠ²ΠΎΡΡΡΠΌΠΈ ΡΠ²ΠΎΠ΅Π³ΠΎ Π»ΡΠ±ΠΈΠΌΠΎΠ³ΠΎ ΠΆΡΡΠ½Π°Π»Π° :).
JavaFX: ΠΏΠΎΡΠ»ΡΡΠ°Π΅ΠΌ ΠΌΡΠ·ΡΡΠΊΡ
Π Π½Π°ΠΊΠΎΠ½Π΅Ρ, Π³Π²ΠΎΠ·Π΄Ρ ΡΠ΅Π·ΠΎΠ½Π° β JavaFX. ΠΠΎΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ Π΅Π³ΠΎ ΠΌΡΠ»ΡΡΠΈΠΌΠ΅Π΄ΠΈΠΉΠ½ΡΠΌΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠΌΠΈ ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠΌ Π΄Π»Ρ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ Π³ΡΠ°ΡΠΈΠΊΠΎΠ² ΠΈ ΡΠ΄Π΅Π»Π°Π΅ΠΌ ΠΏΡΠΎΡΡΠ΅Π½ΡΠΊΠΈΠΉ ΡΠΊΠ²Π°Π»Π°ΠΉΠ·Π΅Ρ.
ΠΠ»Ρ Π½Π°ΡΠ°Π»Π° Π½Π°ΡΠ»Π΅Π΄ΡΠ΅ΠΌ ΠΊΠ»Π°ΡΡ Π²ΠΈΠ΄ΠΆΠ΅ΡΠ° ΠΎΡ Application. ΠΡΠΎ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΊΠ»Π°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π² JavaFX. Application ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠΈΠΊΠ»Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΡΠΎΡΠΌΡ ΡΠΎΠ·Π΄Π°ΡΡΡΡ Π² ΠΌΠ΅ΡΠΎΠ΄Π΅ start, Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠΌ ΠΊΠΎΡΠΎΡΠΎΠΌΡ ΡΠ»ΡΠΆΠΈΡ ΠΊΠ»Π°ΡΡ Stage. Stage ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΠΎΠΊΠ½ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. ΠΠ·ΠΌΠ΅Π½ΠΈΠΌ ΡΡΠΈΠ»Ρ ΠΎΠΊΠ½Π° Π½Π° TRANSPARENT, ΡΡΠΎΠ±Ρ ΡΠ±ΡΠ°ΡΡ ΠΎΠ±ΡΠ°ΠΌΠ»Π΅Π½ΠΈΠ΅ ΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΈ. Π Stage ΠΏΠΎΠΌΠ΅ΡΠ°Π΅ΡΡΡ ΠΊΠ»Π°ΡΡ Scene, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π·Π°Π΄Π°ΡΡΡΡ ΡΠ°Π·ΠΌΠ΅ΡΡ ΠΎΠΊΠ½Π° ΠΈ ΡΠ²Π΅Ρ ΡΠΎΠ½Π°. Π Scene, Π² ΡΠ²ΠΎΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ, ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΠΌ ΠΊΠ»Π°ΡΡ Group, Π² ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅ΠΌ ΠΏΠΎΠΌΠ΅ΡΠ°ΡΡ Π΄ΠΎΡΠ΅ΡΠ½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ:
ΠΠ»Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΡΠΊΠ²Π°Π»Π°ΠΉΠ·Π΅ΡΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΡΡΠΎΠ»Π±ΠΈΠΊΠΎΠ²ΡΡ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΡ, ΠΏΠΎ ΠΎΡΡΠΌ ΠΊΠΎΡΠΎΡΠΎΠΉ Π±ΡΠ΄Π΅ΠΌ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡ ΡΠ°ΡΡΠΎΡΡ ΠΈ ΠΌΠΎΡΠ½ΠΎΡΡΡ Π·Π²ΡΠΊΠ°:
ΠΠ°ΠΏΠΎΠ»Π½ΡΠ΅ΠΌ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΡ Π½Π°ΡΠ°Π»ΡΠ½ΡΠΌΠΈ Π΄Π°Π½Π½ΡΠΌΠΈ:
Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊ Ρ Π·Π°ΠΊΡΡΠ³Π»Π΅Π½Π½ΡΠΌΠΈ ΡΠ³Π»Π°ΠΌΠΈ, ΡΡΠΎΠ±Ρ ΠΏΡΠΈΠ΄Π°ΡΡ Π²ΠΈΠ΄ΠΆΠ΅ΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΡΡ ΡΠΎΡΠΌΡ:
ΠΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ ΠΎΠ±Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° ΠΊ Π³ΡΡΠΏΠΏΠ΅:
ΠΠ°Π·Π½Π°ΡΠ°Π΅ΠΌ ΡΠ»ΡΡΠ°ΡΠ΅Π»Π΅ΠΉ ΠΌΡΡΠΈ ΠΊ Π³ΡΡΠΏΠΏΠ΅, ΡΡΠΎΠ±Ρ Π΄Π²ΠΈΠ³Π°ΡΡ ΠΎΠΊΠ½ΠΎ ΠΏΠΎ ΡΠΊΡΠ°Π½Ρ:
ΠΠ°Π³ΡΡΠΆΠ°Π΅ΠΌ ΠΏΠ΅ΡΠ½Ρ Π² ΠΏΠ»Π΅Π΅Ρ:
ΠΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°ΡΠ΅Π»Ρ, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡ ΡΡΠΎΠ»Π±ΠΈΠΊΠΎΠ²ΡΡ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΡ:
ΠΠ΅Π»Π°Π΅ΠΌ ΡΡΠ΅Π½Ρ Π²ΠΈΠ΄ΠΈΠΌΠΎΠΉ ΠΈ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌ ΠΏΠ΅ΡΠ½Ρ:
Π Π½Π°ΡΠ»Π°ΠΆΠ΄Π°Π΅ΠΌΡΡ ΡΠ°ΠΊΠΎΠΉ Π²ΠΎΡ ΠΊΡΠ°ΡΠΎΡΠΎΠΉ.

ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
ΠΠ°ΠΊ Π²ΠΈΠ΄ΠΈΡΡ, ΠΎΡΡΠ°Π΅ΡΡΡ Π²ΡΠ΅ ΠΌΠ΅Π½ΡΡΠ΅ ΡΠΎΠ³ΠΎ, ΡΡΠΎ Π½Π΅ ΠΏΠΎΠ΄ ΡΠΈΠ»Ρ Java. ΠΡΠΎΠΌΠ΅ ΠΎΠΏΠΈΡΠ°Π½Π½ΡΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ, Π΅ΡΡΡ Π΅ΡΠ΅ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π΄ΡΡΠ³ΠΈΡ , Π½Π΅ ΡΠ°ΠΊΠΈΡ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΡ , Π½ΠΎ Π½Π΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ Ρ ΡΠ΄ΡΠΈΡ ΠΏΠΎ ΠΊΠ°ΡΠ΅ΡΡΠ²Ρ. Π£ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· Π½ΠΈΡ Π΅ΡΡΡ ΡΠ²ΠΎΠΈ ΡΠΈΠ»ΡΠ½ΡΠ΅ ΠΈ ΡΠ»Π°Π±ΡΠ΅ ΡΡΠΎΡΠΎΠ½Ρ. Java ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΏΡΠ°Π²ΠΎ Π²ΡΠ±ΠΎΡΠ° ΡΠ΅Π±Π΅ :).





