Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅

ПознаСм основы Java ΠΈ создаСм крСстики-Π½ΠΎΠ»ΠΈΠΊΠΈ β€” Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° vc.ru

22Β 448 просмотров

НСмного о Java

Java β€” это Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ язык, это цСлая экосистСма, Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰Π°Ρ Π² сСбя срСдства Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡƒ для запуска Π³ΠΎΡ‚ΠΎΠ²Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΎΠ³Ρ€ΠΎΠΌΠ½Ρ‹ΠΉ свод Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ ΠΈ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ΅ сообщСство. Одним ΠΈΠ· прСимущСств Java Π½Π° Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΌ этапС Π±Ρ‹Π»Π° кросс-ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Π½Π½ΠΎΡΡ‚ΡŒ (ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ β€” «написано ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π· β€” запускаСтся Π²Π΅Π·Π΄Π΅Β»).

Π”Π΅Π»ΠΎ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π½Π° Java исполняСтся Π½Π΅ Π½Π° ΠΏΡ€ΡΠΌΡƒΡŽ процСссором ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°, Π° Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ машиной Java (JVM). Π­Ρ‚ΠΎ позволяСт Π°Π±ΡΡ‚Ρ€Π°Π³ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ ΠΌΠ½ΠΎΠ³ΠΈΡ… нюансов ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡƒΡŽ Π½Π° Java, ΠΌΠΎΠΆΠ½ΠΎ Π±Π΅Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΊΠΎΠ΄Π° Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ Π½Π° Windows, Linux, MacOS ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСмах (Ссли, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ спСцифичныС для ОБ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ).

ΠšΡ‚ΠΎ застал Π½Π°Ρ‡Π°Π»ΠΎ 2000Ρ…, Π½Π°Π²Π΅Ρ€Π½ΠΎΠ΅ ΠΏΠΎΠΌΠ½ΠΈΡ‚ ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΎΠ΅ количСство ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½ΠΎΠ² (Ρ‚ΠΎΠ³Π΄Π° Π΅Ρ‰Π΅ ΠΎΠ½ΠΈ Π½Π΅ Π±Ρ‹Π»ΠΈ смартфонами), Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π΅ Π±Ρ‹Π»Π° ΠΏΠΎ сути своя малСнькая ОБ, Π½ΠΎ ΠΏΡ€ΠΈ этом ΠΏΠΎΡ‡Ρ‚ΠΈ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Java ΠΈΠ³Ρ€Ρƒ ΠΈΠ»ΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.

На сСгодняшний дСнь Java ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ Π²Ρ…ΠΎΠ΄ΠΈΡ‚ Π² Ρ‚ΠΎΠΏ языков для изучСния, Π° Java ΠΊΠ°ΠΊ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° β€” Π² Ρ‚ΠΎΠΏ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ Π² ΠΌΠΈΡ€Π΅ IT ΠΈ смСТных областях.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, ΠΏΠ΅Ρ€Π²Ρ‹Π΅ шаги

БСгодня ΠΌΡ‹ Π½Π°Ρ‡Π½Π΅ΠΌ ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ Java, ΠΏΡ€ΠΈΡ‡Π΅ΠΌ сразу с ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° ΠΈΠ³Ρ€Ρ‹ Β«ΠšΡ€Π΅ΡΡ‚ΠΈΠΊΠΈ-Π½ΠΎΠ»ΠΈΠΊΠΈΒ».

Π˜Ρ‚Π°ΠΊ, ΠΏΠΎΠ΅Ρ…Π°Π»ΠΈ. НадСюсь ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ java SDK Ρ‚Ρ‹ ΡƒΠΆΠ΅ разобрался. ΠœΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π² IDE IntelliJ IDEA, Π½ΠΎ Ссли Ρƒ вас какая-Ρ‚ΠΎ другая, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Eclipse, Ρ‚ΠΎ Ρ€Π°Π·Π½ΠΈΡ†Ρ‹ большой Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚.

Π˜Ρ‚Π°ΠΊ, создаСм Π½ΠΎΠ²Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚: Π½Π°ΠΆΠΈΠΌΠ°Π΅ΠΌ Β«create new projectΒ», Π²Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ java ΠΈ Ρ‰Π΅Π»ΠΊΠ°Π΅ΠΌ Β«nextΒ» Π΄ΠΎ ΠΎΠΊΠ½Π°, Π³Π΄Π΅ трСбуСтся ввСсти имя ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, Π²Π²ΠΎΠ΄ΠΈΠΌ TicTacToe (крСстики-Π½ΠΎΠ»ΠΈΠΊΠΈ). Π’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… случаях Π½Π° этапС создания потрСбуСтся Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ шаблон ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, Ρ‚ΠΎΠ³Π΄Π° смСло Π²Ρ‹Π±ΠΈΡ€Π°ΠΉ Ρ‡Ρ‚ΠΎ-Π»ΠΈΠ±ΠΎ ΠΏΠΎΡ…ΠΎΠΆΠ΅Π΅ Π½Π° JavaConsoleApplication.

ПослС этого Π½Π°ΠΆΠΈΠΌΠ°Π΅ΠΌ Β«FinishΒ». Idea Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄ΡƒΠΌΠ°Π΅Ρ‚ ΠΈ сгСнСрируСт Π½Π°ΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ с классом Main, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π° функция main().

Π”Π°Π²Π°ΠΉΡ‚Π΅ разбСрСмся, Ρ‡Ρ‚ΠΎ здСсь Ρ‡Ρ‚ΠΎ. Π‘Π»Π΅Π²Π° ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎ ΠΎΠΊΠ½ΠΎ структуры ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Β«ProjectΒ», ΠΊΠ°ΠΊ ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ Π² ΠΏΠ°ΠΏΠΊΠ΅ src Π² ΠΏΠ°ΠΊΠ΅Ρ‚Π΅ com. company находится СдинствСнный java-Ρ„Π°ΠΉΠ» нашСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ с ΠΈΠΌΠ΅Π½Π΅ΠΌ Main. Π‘ΠΏΡ€Π°Π²Π° ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π΅Π³ΠΎ содСрТимоС. Π’ΡƒΡ‚ Π½Π°Π΄ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ нСбольшоС отступлСниС, Π΄Π΅Π»ΠΎ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π² Java ΠΏΠΎΡ‡Ρ‚ΠΈ всС прСдставлСно классами. Π’ Ρ‚ΠΎΠΌ числС ΠΈ Ρ„Π°ΠΉΠ»Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ классы, ΠΏΡ€ΠΈΡ‡Π΅ΠΌ имя Ρ„Π°ΠΉΠ»Π° Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΠΎΠ²ΠΏΠ°Π΄Π°Ρ‚ΡŒ с классом, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ описываСтся Π² этом Ρ„Π°ΠΉΠ»Π΅ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρƒ нас Ρ„Π°ΠΉΠ» Main.java описываСт класс Main). ΠŸΡƒΡΡ‚ΡŒ слово «класс» Π½Π΅ смущаСт Π½Π° ΠΏΠ΅Ρ€Π²ΠΎΠΌ этапС. Пока лишь ΠΎΡ‚ΠΌΠ΅Ρ‡Ρƒ, Ρ‡Ρ‚ΠΎ для Π³Π»ΡƒΠ±ΠΎΠΊΠΎΠ³ΠΎ изучСния Java Ρ‚Π°ΠΊ ΠΈΠ»ΠΈ ΠΈΠ½Π°Ρ‡Π΅ придСтся ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΎΠΌ. Π’ Π΄Π²ΡƒΡ… словах, класс ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΊΠ°ΠΊ шаблон, идСю, Π° экзСмпляры класса β€” ΠΊΠ°ΠΊ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ этой ΠΈΠ΄Π΅ΠΈ. ЭкзСмпляры класса Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π΅Π³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ. НапримСр, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ идСю стола (Π½Π΅Ρ‡Ρ‚ΠΎ, Π½Π° Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠ»Π°ΡΡ‚ΡŒ ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Ρ‹), ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… экзСмпляров Ρ‚Π°ΠΊΠΎΠ³ΠΎ стола ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΎΠ΅ мноТСство (Π½Π° ΠΎΠ΄Π½ΠΎΠΉ Π½ΠΎΠΆΠΊΠ΅, Π½Π° Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅Ρ…, ΠΊΡ€ΡƒΠ³Π»Ρ‹Π΅, ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Π΅, ΠΈΠ· Ρ€Π°Π·Π½Ρ‹Ρ… ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»ΠΎΠ²). ΠŸΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ‚Π°ΠΊ соотносятся классы ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ.

Π’Π½ΡƒΡ‚Ρ€ΠΈ нашСго класса Main описана функция main(), Π² Java с этой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ начинаСтся исполнСниС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, это Ρ‚ΠΎΡ‡ΠΊΠ° Π²Ρ…ΠΎΠ΄Π° Π² нашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. БСйчас Ρ‚Π°ΠΌ написан Ρ‚ΠΎΠ»ΡŒΠΊΠΎ автоматичСский ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ (ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ Π² Java Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ΡΡ с Π΄Π²ΡƒΡ… символов //). ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ ΠΊΠΎΠ΅-Ρ‡Ρ‚ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² наш ΠΊΠΎΠ΄ ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚ΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ прилоТСния. Π’Π½ΡƒΡ‚Ρ€ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ main() допишСм Π΄Π²Π΅ строки:

ВстроСнная функция println() просто Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Π½Π° экран Ρ‚Π΅ΠΊΡΡ‚ΠΎΠ²ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ. Запустим нашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ (Π½Π°ΠΆΠΈΠΌΠ°Π΅ΠΌ shift-F10 ΠΈΠ»ΠΈ Π·Π΅Π»Π΅Π½Ρ‹ΠΉ Ρ‚Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ). Π’Π½ΠΈΠ·Ρƒ, Π²ΠΎ Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ run появится Π²Ρ‹Π²ΠΎΠ΄ нашСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹:

Ѐункция main() ΠΎΡ‚Ρ€Π°Π±ΠΎΡ‚Π°Π»Π° ΠΈ Π·Π°ΠΊΠΎΠ½Ρ‡ΠΈΠ»Π°ΡΡŒ, вмСстС с Π½Π΅ΠΉ Π·Π°ΠΊΠΎΠ½Ρ‡ΠΈΠ»Π°ΡΡŒ наша ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°.

Π’ ΠΈΠ³Ρ€Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ захочСтся Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ с ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ Π±ΠΎΠ»Π΅Π΅ ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚Ρ‹ΠΌ способом, поэтому Π½Π°ΠΌ понадобится ΠΎΠΊΠ½ΠΎ. НабираСм Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ main() ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ строки:

Бмысл Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° строк понятСн ΠΈΠ· ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π² ΠΊ Π½ΠΈΠΌ, ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ ΠΎΡ‚ΠΌΠ΅Ρ‡Ρƒ строку window.setLayout() β€” здСсь устанавливаСтся ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ располоТСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ примСняСтся ΠΊ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌ, добавляСмым Π² нашС ΠΎΠΊΠ½ΠΎ. ΠœΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ BorderLayout ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ сторон свСта (North(Π²Π΅Ρ€Ρ…), West(слСва), East(справа), South(Π½ΠΈΠ·)), Center (Ρ†Π΅Π½Ρ‚Ρ€)). По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΎΠ½ располагаСт ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΏΠΎ Ρ†Π΅Π½Ρ‚Ρ€Ρƒ. ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ с ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Π°ΠΌΠΈ располоТСния ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, Ссли Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π½Π°ΡˆΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, ΠΌΡ‹ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ ΠΎΠΊΠ½ΠΎ:

Пока Π² этом ΠΎΠΊΠ½Π΅ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅Ρ‚. Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ свой ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚Ρ€ΠΈΡΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ Π³Ρ€Π°Ρ„ΠΈΠΊΡƒ ΠΈΠ³Ρ€Ρ‹.

Π‘Π²ΠΎΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ для рисования

ΠžΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ Π² консоли Ρƒ нас Π½Π΅ получится, Π½ΡƒΠΆΠ΅Π½ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ для Π±ΠΎΠ»Π΅Π΅ ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚ΠΎΠ³ΠΎ взаимодСйствия с ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ. Для этой Ρ†Π΅Π»ΠΈ создадим Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ класс, Π½Π°Π·ΠΎΠ²Π΅ΠΌ Π΅Π³ΠΎ TicTacToe. Π©Π΅Π»ΠΊΠ°Π΅ΠΌ ΠΏΡ€Π°Π²ΠΎΠΉ клавишСй ΠΌΡ‹ΡˆΠΈ Π½Π° ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚Π° прилоТСния (Π² Π΄Π°Π½Π½ΠΎΠΌ случаС это com.company)

И Π² появившСмся мСню Π²Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ ΠΏΡƒΠ½ΠΊΡ‚ Β«NewΒ» β†’ Β«Java ClassΒ». Π’ ΠΎΠΊΠ½Π΅ создания класса Π½Π°Π±ΠΈΡ€Π°Π΅ΠΌ Π΅Π³ΠΎ имя Β«TicTacToeΒ» ΠΈ Π½Π°ΠΆΠΈΠΌΠ°Π΅ΠΌ Β«EnterΒ».

Π£ нас Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ появился Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ класс. Π’ Π³Π»Π°Π²Π½ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ класса JComponent, ΠΊΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π½Π°ΠΌ Π½ΡƒΠΆΠ½Π° ΠΎΠ±Π»Π°ΡΡ‚ΡŒ для рисования. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ наслСдуСм наш класс TicTacToe ΠΎΡ‚ JComponent. Ой сколько нСпонятных слов! БСйчас ΠΏΠΎΡΡ‚Π°Ρ€Π°ΡŽΡΡŒ ΠΏΠΎΡΡΠ½ΠΈΡ‚ΡŒ.

НаслСдованиС классов β€” это ΠΊΠ°ΠΊ созданиС ΡƒΡ‚ΠΎΡ‡Π½Π΅Π½Π½ΠΎΠ³ΠΎ шаблона Π½Π° Π±Π°Π·Π΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ. НапримСр, Π΅ΡΡ‚ΡŒ класс Π‘Ρ‚ΠΎΠ», ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰ΠΈΠΉ идСю стола Π²ΠΎΠΎΠ±Ρ‰Π΅. Но Π½Π°ΠΌ ΠΎΡ‡Π΅Π½ΡŒ часто приходится ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ столы Π½Π° Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅Ρ… Π½ΠΎΠ³Π°Ρ… с дСрСвянной ΡΡ‚ΠΎΠ»Π΅ΡˆΠ½ΠΈΡ†Π΅ΠΉ, поэтому для удобства ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡƒΡ‚ΠΎΡ‡Π½ΠΈΡ‚ΡŒ идСю класса Π‘Ρ‚ΠΎΠ» ΠΈ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ шаблон ДСрСвянныйБтол β€” ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ всС Ρ‚Π΅ ΠΆΠ΅ основныС свойства, Ρ‡Ρ‚ΠΎ ΠΈ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠ°Ρ идСя, Π½ΠΎ Π·Π°Ρ‚ΠΎ Ρ‡Π°ΡΡ‚ΡŒ свойств Ρƒ Π½Π΅Π³ΠΎ ΡƒΠΆΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹ ΠΈ понятны β€” это число Π½ΠΎΠ³, Ρ€Π°Π²Π½ΠΎΠ΅ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ΠΌ ΠΈ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π» ΡΡ‚ΠΎΠ»Π΅ΡˆΠ½ΠΈΡ†Ρ‹ β€” Π΄Π΅Ρ€Π΅Π²ΠΎ.

Π‘ JComponent Ρ‚ΠΎ ΠΆΠ΅ самоС β€” Π΄Π°Π½Π½Ρ‹ΠΉ класс Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ идСю Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ графичСского ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса. Π’Π°ΠΊΠΎΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² ΠΎΠΊΠ½ΠΎ ΠΈ ΠΎΠ½ ΡƒΠΌΠ΅Π΅Ρ‚ ΠΊΠ°ΠΊ-Ρ‚ΠΎ сСбя ΠΎΡ‚Ρ€ΠΈΡΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ. НапримСр, класс JButton β€” наслСдник класса JComponent, это ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ выглядит, ΠΊΠ°ΠΊ ΠΊΠ½ΠΎΠΏΠΊΠ° ΠΈ ΡƒΠΌΠ΅Π΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΡŽ ΠΊΠ»ΠΈΠΊΠ° ΠΌΡ‹ΡˆΠΊΠΎΠΉ.

Π—Π΄Π΅ΡΡŒ ΠΆΠ΅, наслСдуя класс JComponent, ΠΌΡ‹ создадим свой ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ смоТСм Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ.

Π˜Ρ‚Π°ΠΊ дописываСм extends JComponent Π² строку описания класса:

Π‘Π»ΠΎΠ²ΠΎ extends Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ наш класс TicTacToe Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅Ρ‚ (наслСдуСт) класс JComponent.

Π£ всСх ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² Π΅ΡΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ paintComponent(), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° ΠΈΡ… отрисовку. Π’ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ этого ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΡ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Graphics, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΌΡ‹ ΠΈ Π±ΡƒΠ΄Π΅ΠΌ Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ. Π”Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ paintComponent Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ рисовал ΠΎΠΊΡ€ΡƒΠΆΠ½ΠΎΡΡ‚ΡŒ (это Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Π½ΠΎ для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ, Ρ‡Ρ‚ΠΎ Ρƒ нас всС Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΊΠ°ΠΊ Π½Π°Π΄ΠΎ, Π±ΡƒΠ΄Π΅Ρ‚ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΌ Ρ‚ΠΎΠ½ΠΎΠΌ это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ).

ΠŸΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ paintComponent() Π² классС TicTacToe ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

ΠΌΠ΅Ρ‚ΠΎΠ΄ setColor() ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° graphics, ΠΊΠ°ΠΊ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ ΠΈΠ· названия, устанавливаСт Ρ†Π²Π΅Ρ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ, Π° ΠΌΠ΅Ρ‚ΠΎΠ΄ drawOval(x, y, w, h) β€” Π² ΠΎΠ±Ρ‰Π΅ΠΌ случаС рисуСт ΠΎΠ²Π°Π» с ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π°ΠΌΠΈ Ρ†Π΅Π½Ρ‚Ρ€Π° x, y, ΡˆΠΈΡ€ΠΈΠ½ΠΎΠΉ β€” w ΠΈ высотой h. Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС рисуСтся ΠΎΠΊΡ€ΡƒΠΆΠ½ΠΎΡΡ‚ΡŒ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΡˆΠΈΡ€ΠΈΠ½Π° ΠΈ высота Π·Π°Π΄Π°Π½Ρ‹ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Π΅ β€” 100. Π—Π°ΠΌΠ΅Ρ‡Ρƒ, Ρ‡Ρ‚ΠΎ экранныС ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ ΠΎΡ‚ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΎΡ‚ Π»Π΅Π²ΠΎΠ³ΠΎ Π²Π΅Ρ€Ρ…Π½Π΅Π³ΠΎ ΡƒΠ³Π»Π°. Π’ΠΎ Π΅ΡΡ‚ΡŒ 0 ΠΏΠΎ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΠΈ находится Π²Π²Π΅Ρ€Ρ…Ρƒ.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊ выглядит наш ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ класса TicTacToe Π½Π°Π΄ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π΅Π³ΠΎ экзСмпляр ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² Π³Π»Π°Π²Π½ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ Π² качСствС Π΄ΠΎΡ‡Π΅Ρ€Π½Π΅Π³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½ΠΎΠ²Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π² Java осущСствляСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова new.

НапримСр, Ссли Ρƒ нас Π΅ΡΡ‚ΡŒ класс Π‘Ρ‚ΠΎΠ» ΠΈ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ этого класса (настоящий ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ стол), Ρ‚ΠΎ ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅: стол = new Π‘Ρ‚ΠΎΠ»(). Π—Π΄Π΅ΡΡŒ «стол» имя, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ Π½Π°ΡˆΠ΅ΠΌΡƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ (Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ с Π½ΠΈΠΌ), Π° Π‘Ρ‚ΠΎΠ» β€” имя класса, ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΌΡ‹ создаСм.

Π—Π°ΠΌΠ΅Ρ‡Ρƒ сразу, Ρ‡Ρ‚ΠΎ вмСсто «стол» ΠΌΡ‹ ΠΌΠΎΠ³Π»ΠΈ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ любоС имя, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Β«fdgdgdgfdΒ», Π½ΠΎ программисты ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΡΡ‚Π°Ρ€Π°ΡŽΡ‚ΡΡ Π΄Π°Π²Π°Ρ‚ΡŒ «говорящиС» ΠΈΠΌΠ΅Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΊΠΎΠ΄ Π±Ρ‹Π»ΠΎ Π»Π΅Π³Ρ‡Π΅ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ. Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ экзСмпляр класса TicTacToe ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Ρ‚Π°ΠΊΠΆΠ΅ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ game = new TicTacToe(), Π° ΠΏΠΎΡ‚ΠΎΠΌ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π² ΠΎΠΊΠ½ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ add().

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΊΠΎΠ΄ класса Main выглядит Π²ΠΎΡ‚ Ρ‚Π°ΠΊ:

Если Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π½Π°ΡˆΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, Ρ‚ΠΎ ΠΌΡ‹ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ ΠΎΠΊΠ½ΠΎ с ΠΎΠΊΡ€ΡƒΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ:

Ну Ρ‡Ρ‚ΠΎ ΠΆ. Π ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ Π² Π±Π°Π·Π΅ ΠΌΡ‹ Π½Π°ΡƒΡ‡ΠΈΠ»ΠΈΡΡŒ. ВрСмя ΠΏΡ€ΠΈΡΡ‚ΡƒΠΏΠ°Ρ‚ΡŒ ΠΊ созданию ΠΈΠ³Ρ€Ρ‹.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ³ΠΎ поля

ВСрнСмся ΠΊ классу TicTacToe. Для Π½Π°Ρ‡Π°Π»Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ΅ ΠΏΠΎΠ»Π΅, состоящСС ΠΈΠ· дСвяти ΠΊΠ»Π΅Ρ‚ΠΎΡ‡Π΅ΠΊ. Для этого Π΄Π°Π²Π°ΠΉΡ‚Π΅ нарисуСм Π΄Π²Π΅ Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΈ Π΄Π²Π΅ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ Π»ΠΈΠ½ΠΈΠΈ Π½Π° нашСм ΠΏΠΎΠ»Π΅. Π§Ρ‚ΠΎΠ±Ρ‹ это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ drawLine(x1,y1,x2,y2) ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Graphics, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΡ‚ ΠΊ Π½Π°ΠΌ Π² ΠΌΠ΅Ρ‚ΠΎΠ΄ paintComponent() Π² качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°. ΠœΠ΅Ρ‚ΠΎΠ΄ drawLine() рисуСт линию ΠΎΡ‚ Ρ‚ΠΎΡ‡ΠΊΠΈ с ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π°ΠΌΠΈ x1,y1 Π΄ΠΎ Ρ‚ΠΎΡ‡ΠΊΠΈ x2,y2. Π”Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΠΎΠ΄ΡƒΠΌΠ°Π΅ΠΌ ΠΊΠ°ΠΊ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ΅ ΠΏΠΎΠ»Π΅.

Если ΠΌΡ‹ Ρ€Π°Π·ΠΎΠ±ΡŒΠ΅ΠΌ высоту поля Π½Π° Ρ‚Ρ€ΠΈ (Ρƒ нас ΠΆΠ΅ Ρ‚Ρ€ΠΈ ΠΊΠ»Π΅Ρ‚ΠΊΠΈ Π² ряду), Ρ‚ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ высоту ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠ»Π΅Ρ‚ΠΊΠΈ (Π½Π°Π·ΠΎΠ²Π΅ΠΌ Π΅Π΅ dh). Π£Π·Π½Π°Ρ‚ΡŒ высоту всСго ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ getHeight(). Π—Π½Π°Ρ‡ΠΈΡ‚, ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π²ΡƒΡŽ Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½ΡƒΡŽ линию ΠΎΡ‚ Ρ‚ΠΎΡ‡ΠΊΠΈ 0,dh Π΄ΠΎ Ρ‚ΠΎΡ‡ΠΊΠΈ w, dh, Π³Π΄Π΅ w β€” ΡˆΠΈΡ€ΠΈΠ½Π° поля. Но это Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½Π° Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½Π°Ρ линия, Π²Ρ‚ΠΎΡ€ΡƒΡŽ рисуСм Ρ‚Π°ΠΊΠΆΠ΅, Π½ΠΎ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ Π±ΡƒΠ΄ΡƒΡ‚ ΡƒΠΆΠ΅: Π½Π°Ρ‡Π°Π»ΠΎ β€” 0, 2*dh, ΠΊΠΎΠ½Π΅Ρ† w, 2*dh. По Π°Π½Π°Π»ΠΎΠ³ΠΈΠΈ, Ссли высота поля Ρ€Π°Π²Π½Π° h, Π° ΡˆΠΈΡ€ΠΈΠ½Π° ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠ»Π΅Ρ‚ΠΊΠΈ Ρ€Π°Π²Π½Π° dw, Ρ‚ΠΎ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ Π»ΠΈΠ½ΠΈΠΈ Ρ€ΠΈΡΡƒΡŽΡ‚ΡΡ Π² ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π°Ρ… d, 0 β€” d, h ΠΈ dw*2, 0 β€” dw*2, h.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π΄Π°Π²Π°ΠΉΡ‚Π΅ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…. Если ΠΏΠΎΠΌΠ½ΠΈΡ‚Π΅ β€” Π² Π°Π»Π³Π΅Π±Ρ€Π΅ Π·Π° Π±ΡƒΠΊΠ²ΠΎΠΉ ΠΌΠΎΠ³Π»ΠΎ ΡΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΊΠΎΠ΅-Ρ‚ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ x = 2*a, ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Π»ΠΎ, Ρ‡Ρ‚ΠΎ Π½Π° мСсто Π±ΡƒΠΊΠ²Ρ‹ Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ любоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ x.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ‚ΠΎ ΠΆΠ΅ самоС происходит с ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Имя ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ (ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€) сопоставлСн с Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΈ Β«Ρ…Ρ€Π°Π½ΠΈΡ‚Β» Π΅Π³ΠΎ Β«Π² сСбС» (Π½Π° самом Π΄Π΅Π»Π΅, с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ классов всС нСсколько слоТнСС, Ρ‚Π°ΠΌ ΠΌΡ‹ ΠΈΠΌΠ΅Π΅ΠΌ Π΄Π΅Π»ΠΎ со ссылками, Π½ΠΎ это ΠΏΠΎΠΊΠ° Π·Π° Ρ€Π°ΠΌΠΊΠ°ΠΌΠΈ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Π°).

Помимо этого, Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ… Π΅ΡΡ‚ΡŒ Ρ€Π°Π·Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ…. НавСрноС, Π²Ρ‹ ΡΠΎΠ³Π»Π°ΡΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ строку ΠΈ Ρ†Π΅Π»ΠΎΠ΅ число Π½Π°Π΄ΠΎ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π² памяти ΠΊΠ°ΠΊ-Ρ‚ΠΎ ΠΏΠΎ-Ρ€Π°Π·Π½ΠΎΠΌΡƒ? Π”Π°ΠΆΠ΅ Ρ†Π΅Π»Ρ‹Π΅ ΠΈ Π΄Ρ€ΠΎΠ±Π½Ρ‹Π΅ числа Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ Ρ€Π°Π·Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π°, поэтому Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ… Π΄Π°Π½Π½Ρ‹Π΅ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ Ρ‚ΠΈΠΏΠ°ΠΌ. Π’ нашСм ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π½Π°ΠΌ ΡƒΠΆΠ΅ понадобились значСния ΡˆΠΈΡ€ΠΈΠ½Ρ‹ ΠΈ высоты ячСйки ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ³ΠΎ поля dw ΠΈ dh. Π§Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ ΠΈ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΈΡ… значСния Π² памяти, Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌΠΈ выраТСниями:

Π—Π΄Π΅ΡΡŒ int β€” ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… Β«Ρ†Π΅Π»ΠΎΠ΅ число». Π’Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ int a = 10 ΠΎΠ±ΡŠΡΠ²Π»ΡΠ΅Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ с ΠΈΠΌΠ΅Π½Π΅ΠΌ a ΠΈ Π·Π°Π΄Π°Π΅Ρ‚ Π΅ΠΉ сразу Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 10. Π’ нашСм ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, значСния w ΠΈ h ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‚ΡΡ ΠΈΠ· ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² самого ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° TicTacToe, Π° dw ΠΈ dh Π²Ρ‹Ρ‡ΠΈΡΠ»ΡΡŽΡ‚ΡΡ. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ Π΄Π΅Π»Π΅Π½ΠΈΠΈ w / 3 получаСтся Ρ†Π΅Π»Ρ‹ΠΉ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ…. Π’ Java, ΠΊΠ°ΠΊ ΠΈ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… Π΄Ρ€ΡƒΠ³ΠΈΡ… языках, Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Ρ†Π΅Π»ΠΎΠ³ΠΎ Π½Π° Ρ†Π΅Π»ΠΎΠ΅ Π΄Π°Π΅Ρ‚ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Ρ†Π΅Π»ΠΎΠ΅. ΠŸΡ€ΠΈ этом дробная Ρ‡Π°ΡΡ‚ΡŒ просто отбрасываСтся (округлСния Π½Π΅Ρ‚). Π—Π°ΠΌΠ΅Ρ‚ΡŒΡ‚Π΅, Ρ‡Ρ‚ΠΎ здСсь Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ слово Β«newΒ», Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ Π½Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ простых (скалярных) Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ…, Π² Π΄Π°Π½Π½ΠΎΠΌ случаС Ρ‚ΠΈΠΏΠ° int.

ΠœΡ‹ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹ ΡƒΠΆΠ΅ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄ для рисования всСх Π»ΠΈΠ½ΠΈΠΉ, Π½ΠΎ ΠΌΡ‹ ΠΆΠ΅ программисты, Π° программисты Π»ΡŽΠ±ΡΡ‚ всС ΡƒΠΏΡ€ΠΎΡ‰Π°Ρ‚ΡŒ, ΠΏΡ€Π°Π²Π΄Π° для этого ΠΎΠ½ΠΈ ΠΏΠΈΡˆΡƒΡ‚ ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°. ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΠΌ, Ρ‡Ρ‚ΠΎ Ρƒ нас Π±Ρ‹Π»ΠΎ Π±Ρ‹ ΠΏΠΎΠ»Π΅ Π½Π΅ 3 Π½Π° 3 ΠΊΠ»Π΅Ρ‚ΠΊΠΈ Π°, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, 15Ρ…15. Как Π±Ρ‹ ΠΌΡ‹ Π΅Π³ΠΎ Ρ€Π°Π·Π»ΠΈΠ½ΠΎΠ²Π°Π»ΠΈ? Π’Ρ€ΡƒΡ‡Π½ΡƒΡŽ Π½Π°Π±ΠΈΡ€Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ для рисования 28 Π»ΠΈΠ½ΠΈΠΉ это ΡƒΠΆ слишком.

К ΡΡ‡Π°ΡΡ‚ΡŒΡŽ, Π²ΠΎ всСх языках программирования (ΠΏΡ€ΠΈΠ²Π΅Ρ‚ ассСмблСр) Π΅ΡΡ‚ΡŒ конструкции, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠ΅ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΠΈΡ‚ΡŒ Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ число Ρ€Π°Π· Ρ‚ΠΎΡ‚ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠΉ участок ΠΊΠΎΠ΄Π° β€” Ρ†ΠΈΠΊΠ»Ρ‹.

Π Π°Π·Π±Π΅Ρ€Π΅ΠΌ, ΠΊΠ°ΠΊ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ рисованиС Π»ΠΈΠ½ΠΈΠΉ, Π·Π°ΠΌΠ΅Ρ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎ всС Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½Ρ‹Π΅ Π»ΠΈΠ½ΠΈΠΈ содСрТат ΠΎΠ΄Π½ΠΈ ΠΈ Ρ‚Π΅ ΠΆΠ΅ значСния ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ ΠΏΠΎ Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΠΈ (ΠΎΡ‚ Π½Π°Ρ‡Π°Π»Π° Π΄ΠΎ ΠΊΠΎΠ½Ρ†Π° ΡˆΠΈΡ€ΠΈΠ½Ρ‹ ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ³ΠΎ поля), ΠΏΡ€ΠΈ этом ΠΈΡ… ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ ΠΏΠΎ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ Π½Π° dh. Π£ ΠΏΠ΅Ρ€Π²ΠΎΠΉ Π»ΠΈΠ½ΠΈΠΈ высота dh, Ρƒ Π²Ρ‚ΠΎΡ€ΠΎΠΉ 2*dh, ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅.

Для Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… Π»ΠΈΠ½ΠΈΠΉ рассуТдСния Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² рассуТдСнии ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²Ρ‹ΡˆΠ΅ Π½Π°Π΄ΠΎ ΠΏΠΎΠΌΠ΅Π½ΡΡ‚ΡŒ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΈ Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ мСстами.

ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ Π»ΠΈΠ½ΠΈΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ†ΠΈΠΊΠ»Π°, Π² классС TicTacToe создадим свой ΠΌΠ΅Ρ‚ΠΎΠ΄ с Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ drawGrid(), ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ Ρƒ нас ΠΎΡ‚Π²Π΅Ρ‡Π°Ρ‚ΡŒ Π·Π° рисованиС Π»ΠΈΠ½ΠΈΠΉ сСтки ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ³ΠΎ поля:

Π•Ρ‰Π΅ Ρ€Π°Π· пробСТимся ΠΏΠΎ ΠΊΠΎΠ΄Ρƒ. ΠŸΠ΅Ρ€Π²Ρ‹Π΅ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ строки ΠΌΠ΅Ρ‚ΠΎΠ΄Π° β€” Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ Π½Π°ΠΌ значСния ΡˆΠΈΡ€ΠΈΠ½Ρ‹, высоты ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ³ΠΎ поля ΠΈ ΡˆΠΈΡ€ΠΈΠ½Ρ‹, высоты ΠΎΠ΄Π½ΠΎΠΉ ячСйки. Π¦ΠΈΠΊΠ» начинаСтся с ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова for, Π² скобках послС Π½Π΅Π³ΠΎ указываСтся пСрСмСнная, которая Π±ΡƒΠ΄Π΅Ρ‚ счСтчиком (Ρƒ нас ΠΎΠ½Π° Π΅Ρ‰Π΅ ΠΈ ΠΎΠ±ΡŠΡΠ²Π»ΡΠ΅Ρ‚ΡΡ сразу int i = 1), условиС ΠΏΡ€ΠΈ лоТности ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ» прСрвСтся ΠΈ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΡΡŽΡ‰Π΅Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ-счСтчик (i++ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ i ΠΊΠ°ΠΆΠ΄ΡƒΡŽ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΡŽ Ρ†ΠΈΠΊΠ»Π° Π½Π° Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ).

Π’Π½ΡƒΡ‚Ρ€ΠΈ Ρ†ΠΈΠΊΠ»Π° ΠΊΠ°ΠΆΠ΄ΡƒΡŽ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΡŽ Ρ€ΠΈΡΡƒΡŽΡ‚ΡΡ ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½Ρ‹Π΅ Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½Π°Ρ ΠΈ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½Π°Ρ Π»ΠΈΠ½ΠΈΠΈ поля.

Π”ΠΎΠ±Π°Π²ΠΈΠΌ Π²Ρ‹Π·ΠΎΠ² нашСго ΠΌΠ΅Ρ‚ΠΎΠ΄Π° drawGrid() Π² ΠΌΠ΅Ρ‚ΠΎΠ΄ отрисовки всСго ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° paintComponent():

ЗапускаСм ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΈ Π²ΠΈΠ΄ΠΈΠΌ разрисованноС ΠΏΠΎΠ»Π΅:

Π‘ΠΊΠ°ΠΆΠΈ ΠΌΠ½Π΅, ΠΊΡƒΠ΄Π° Ρ‚Ρ‹ ΠΊΠ»ΠΈΠΊΠ½ΡƒΠ»?

Π˜Ρ‚Π°ΠΊ, нашС ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ΅ ΠΏΠΎΠ»Π΅ выглядит Π³ΠΎΡ‚ΠΎΠ²Ρ‹ΠΌ ΠΊ ΠΈΠ³Ρ€Π΅, Π½ΠΎ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π½Π°ΠΌ Π½Π°Π΄ΠΎ ΡƒΠ·Π½Π°Ρ‚ΡŒ Π² ΠΊΠ°ΠΊΠΎΠΉ ΠΈΠ· ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚ΠΎΠ² ΠΊΠ»ΠΈΠΊΠ½ΡƒΠ» ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ. Для этого Π΄Π°Π²Π°ΠΉΡ‚Π΅ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ настроим наш ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ TicTacToe, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ смог ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ события ΠΎΡ‚ ΠΌΡ‹ΡˆΠΈ. Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ Ρ‚Π°ΠΊΠΈΡ… событий. ДСлаСтся это с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° enableEvents(), Π½ΠΎ Π³Π΄Π΅ Π΅Π³ΠΎ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ?

ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π±Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π²Ρ‹Π·ΠΎΠ² Π² наш ΠΌΠ΅Ρ‚ΠΎΠ΄ drawGrid() ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ Π² paintComponent(), Π½ΠΎ эти ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΏΠΎ Π»ΠΎΠ³ΠΈΠΊΠ΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΈΠ³Ρ€Ρ‹ Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ Π·Π°Ρ…ΠΎΡ‚ΠΈΠΌ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ. А Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ события Π½Π°Π΄ΠΎ лишь ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·. Π“Π΄Π΅ Π±Ρ‹ Π½Π°ΠΉΡ‚ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ вызываСтся Ρƒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Π΅Π΄ΠΈΠ½ΠΎΠΆΠ΄Ρ‹, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΡ€ΠΈ Π΅Π³ΠΎ создании?

На самом Π΄Π΅Π»Π΅ Ρ‚Π°ΠΊΠΎΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π΅ΡΡ‚ΡŒ Ρƒ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ класса ΠΈ называСтся ΠΎΠ½ конструктором. ИмСнно конструктор вызываСтся ΠΏΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ создания Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€ΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ нСсколько, ΠΎΠ½ Ρ‚Π°ΠΊ ΠΆΠ΅ ΠΊΠ°ΠΊ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹, Π½ΠΎ Π²ΠΎΡ‚ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ³ΠΎ значСния Ρƒ Π½Π΅Π³ΠΎ Π½Π΅Ρ‚. ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€ класса ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚ΠΎ ΠΆΠ΅ имя, Ρ‡Ρ‚ΠΎ ΠΈ класс. Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ конструктор Π² классС TicTacToe:

Как Π²ΠΈΠ΄ΠΈΠΌ β€” Π½ΠΈΡ‡Π΅Π³ΠΎ слоТного, просто Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ ΠΌΠ΅Ρ‚ΠΎΠ΄. А ΠΊΠ°ΠΊ ΠΆΠ΅ наш ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ создавался Π΄ΠΎ этого? Π’Π΅Π΄ΡŒ Π² классС Main ΠΌΡ‹ Π΅Π³ΠΎ ΡƒΠΆΠ΅ создавали. ΠŸΠΎΠΌΠ½ΠΈΡ‚Π΅, game = new TicTacToe()? Π’ΡƒΡ‚ Ρ‚ΠΎΠΆΠ΅ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ ΠΌΠ°Π³ΠΈΠΈ β€” Ссли конструктор Π½Π΅ Π·Π°Π΄Π°Π½ явно, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ конструктор ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ.

ИмСнно здСсь ΠΌΡ‹ Π²ΠΊΠ»ΡŽΡ‡ΠΈΠΌ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ событий ΠΎΡ‚ ΠΌΡ‹ΡˆΠΈ:

Π₯ΠΎΡ€ΠΎΡˆΠΎ! ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ событий ΠΌΡ‹ Π²ΠΊΠ»ΡŽΡ‡ΠΈΠ»ΠΈ, Π° Π³Π΄Π΅ ΠΆΠ΅ ΠΌΡ‹ ΠΈΡ… Π±ΡƒΠ΄Π΅ΠΌ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ? Π’ ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ processMouseEvent() ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ ΡΡ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ ΠΌΡ‹ΡˆΠΈ ΠΊΠ°ΠΊΠΈΠΌ-Π»ΠΈΠ±ΠΎ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ взаимодСйствуСт с нашим ΠΈΠ³Ρ€ΠΎΠ²Ρ‹ΠΌ ΠΏΠΎΠ»Π΅ΠΌ.

ΠŸΡ€ΠΈΠ²Π΅Π΄Ρƒ Π½Π° всякий случай ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ класса TicTacToe Π½Π° Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚:

Мозг ΠΈΠ³Ρ€Ρ‹

Ну Π½Π΅ Ρ‚ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΆ ΠΌΠΎΠ·Π³, Π½ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π½Π°Ρ‡ΠΈΠ½ΠΊΡƒ Π½Π°ΠΌ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ придСтся. Π˜Ρ‚Π°ΠΊ, Π΄Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΠΎΠ΄ΡƒΠΌΠ°Π΅ΠΌ, ΠΊΠ°ΠΊ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ состояниС ΠΈΠ³Ρ€Ρ‹? НСплохо Π±Ρ‹ Π±Ρ‹Π»ΠΎ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ состояниС ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΊΠ»Π΅Ρ‚ΠΊΠΈ ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ³ΠΎ поля, для этой Ρ†Π΅Π»ΠΈ Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΠΏΠΎΠ΄ΠΎΠΉΠ΄Π΅Ρ‚ Π΄Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив Ρ†Π΅Π»Ρ‹Ρ… чисСл Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ 3Ρ…3. БоздаСтся ΠΎΠ½ просто int[][] field = new int[3][3].

Массив это ΡƒΠΆΠ΅ Ρ†Π΅Π»Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ выдСляСтся ΠΏΠ°ΠΌΡΡ‚ΡŒ Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ области (ΠΊΡƒΡ‡Π΅), поэтому Ρ‚ΡƒΡ‚ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ слово new. Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Π² классС TicTacToe Π½ΠΎΠ²Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ initGame(), ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚Π²Π΅Ρ‡Π°Ρ‚ΡŒ Ρƒ нас Π·Π° сброс ΠΈΠ³Ρ€Ρ‹ ΠΊ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΌΡƒ ΡΠΎΡΡ‚ΠΎΡΠ½ΠΈΡŽ, ΠΈΠΌΠ΅Π½Π½ΠΎ здСсь ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Β«ΠΎΡ‡ΠΈΡ‰Π°Ρ‚ΡŒΒ» ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ΅ ΠΏΠΎΠ»Π΅.

Для хранСния состояния ячСйки поля создадим Ρ‚Ρ€ΠΈ константы со значСниями 0, 10 ΠΈ 200. Ноль Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ пустой ячСйкС, 10 β€” крСстику, Π° 200 β€” Π½ΠΎΠ»ΠΈΠΊΡƒ. ΠŸΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ Π·Π°ΠΏΠΎΠ»Π½ΠΈΠΌ массив нулями.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π² ΠΌΠ΅Ρ‚ΠΎΠ΄ processMouseEvent(), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° ΠΊΠ»ΠΈΠΊΠΈ ΠΌΡ‹ΡˆΡŒΡŽ Π½Π° ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠΌ ΠΏΠΎΠ»Π΅. Π’Π°ΠΊΠΆΠ΅ Π·Π°Π²Π΅Π΄Π΅ΠΌ Π»ΠΎΠ³ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ isXturn, которая Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Ρ‡Π΅ΠΉ сСйчас Ρ…ΠΎΠ΄.

ΠŸΡ€ΠΎΠ±Π΅ΠΆΠΈΠΌΡΡ ΠΏΠΎ ΠΊΠΎΠ΄Ρƒ. ΠŸΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ ΠΎΡ‚ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ ΠΊ индСксам довольно прост: ΠΌΡ‹ Π΄Π΅Π»ΠΈΠΌ Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρƒ Π½Π° Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΎΠ΄Π½ΠΎΠΉ ячСйки ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ сколько Ρ†Π΅Π»Ρ‹Ρ… ячССк укладываСтся Π΄ΠΎ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ (Ссли совсСм нСпонятно, Ρ‚ΠΎ поясню: Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ Π½Π° w/3 это Ρ‚ΠΎ ΠΆΠ΅ самоС, Ρ‡Ρ‚ΠΎ ΡƒΠΌΠ½ΠΎΠΆΠΈΡ‚ΡŒ Π½Π° 3/w).

Π’ 42ΠΉ строкС ΠΊΠΎΠ΄Π° стоит условный ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ (Ρ‚Π°ΠΊΠΆΠ΅ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ Π²Π΅Ρ‚Π²Π»Π΅Π½ΠΈΠ΅ΠΌ), ΠΏΠΎΡ€Π° с Π½ΠΈΠΌ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ. Если условиС Π² скобках истинно (Π² нашСм случаС Ссли ΠΏΠΎΠ»Π΅ пустоС), Ρ‚ΠΎ ΠΌΡ‹ Π·Π°Ρ…ΠΎΠ΄ΠΈΠΌ Β«Π²Π½ΡƒΡ‚Ρ€ΡŒΒ» условного ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° (строки 43-46), Ссли ΠΆΠ΅ условиС Π»ΠΎΠΆΠ½ΠΎ (ячСйка ΡƒΠΆΠ΅ занята), Ρ‚ΠΎ ΠΌΡ‹ ΠΏΡ€ΠΎΠΉΠ΄Π΅ΠΌ дальшС. Π§Ρ‚ΠΎ ΠΆΠ΅ происходит Ссли кликнутая ячСйка пуста?

Π’ 44ΠΉ строкС послС Β«=Β» стоит Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ интСрСсный ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ β€” Ρ‚Π΅Ρ€Π½Π°Ρ€Π½Ρ‹ΠΉ, ΠΎΠ½ Π΄Π°Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π² строку Π²Π΅Ρ‚Π²Π»Π΅Π½ΠΈΠ΅, Ссли Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Π½Π΅Π³ΠΎ присваиваСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. Π—Π°ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ Π΅Π³ΠΎ Ρ‚Π°ΠΊ: isXturn? β€” это ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ°, Ρ‡Π΅ΠΉ сСйчас Ρ…ΠΎΠ΄ (Ρ…ΠΎΠ΄ΠΈΡ‚ крСстик, Ссли Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ «истина»), Π΄Π°Π»Π΅Π΅ слСдуСт опрСдСлСнная Π½Π°ΠΌΠΈ константа FIELD_X, ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΎΠ½Π° Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ выраТСния, Ссли isXturn β€” true.

ПослС FIELD_X стоит Π΄Π²ΠΎΠ΅Ρ‚ΠΎΡ‡ΠΈΠΈ ΠΈ константа FIELD_O β€” Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ станСт Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ выраТСния, Ссли Ρ…ΠΎΠ΄ Β«Π½ΠΎΠ»ΠΈΠΊΠ°Β». ПослС измСнСния значСния Π² ячСйкС массива, мСняСм ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΡΡ‚ΡŒ Ρ…ΠΎΠ΄Π°: isXturn =! isXturn ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π½Π° ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½ΠΎΠ΅. Π’ ΠΊΠΎΠ½Ρ†Π΅ всСх дСйствий β€” Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌ пСрСрисовку ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π½ΡƒΠΆΠ½ΠΎ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ крСстик ΠΈΠ»ΠΈ Π½ΠΎΠ»ΠΈΠΊ, Ρ‚Π°ΠΌ Π³Π΄Π΅ Π΅Π³ΠΎ Π½Π΅ Π±Ρ‹Π»ΠΎ Ρ€Π°Π½ΡŒΡˆΠ΅.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΎΡΡ‚Π°Π»ΠΎΡΡŒ Π½Π°ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ крСстики ΠΈΠ»ΠΈ Π½ΠΎΠ»ΠΈΠΊΠΈ. Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Π΄Π²Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π°: drawX() ΠΈ draw0(). На Π΄Π°Π½Π½ΠΎΠΌ этапС ΠΌΡ‹ ΡƒΠΆΠ΅ ΡƒΠΌΠ΅Π΅ΠΌ Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ Π»ΠΈΠ½ΠΈΠΈ ΠΈ ΠΊΡ€ΡƒΠ³ΠΈ, поэтому ΠΎΠ±ΠΎΠΉΠ΄ΡƒΡΡŒ коммСнтариями Π² ΠΊΠΎΠ΄Π΅:

ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ Π² ΠΊΠΎΠ΄Π΅ достаточно ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Ρ‹. ΠšΠΎΡ€ΠΎΡ‚ΠΊΠΎ поясню, Ρ‡Ρ‚ΠΎ крСстик ΠΌΡ‹ рисуСм ΠΊΠ°ΠΊ пСрСсСчСниС Π΄Π²ΡƒΡ… Π»ΠΈΠ½ΠΈΠΉ ΠΈΠ· ΡƒΠ³Π»Π° Π² ΡƒΠ³ΠΎΠ» ячСйки, Π° Π½ΠΎΠ»ΠΈΠΊ β€” ΠΊΠ°ΠΊ ΠΎΠ²Π°Π» Ρ‡ΡƒΡ‚ΡŒ вытянутый ΠΏΠΎ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΠΈ. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Ρƒ нас Π΅ΡΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, Ρ€ΠΈΡΡƒΡŽΡ‰ΠΈΠ΅ крСстик ΠΈ Π½ΠΎΠ»ΠΈΠΊ ΠΏΠΎ Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌ индСксам ячСйки поля. Как ΠΆΠ΅ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ процСсс ΠΈΠ³Ρ€Ρ‹? ΠŸΡ€ΠΎΠ±Π΅ΠΆΠΈΠΌΡΡ Π΅Ρ‰Π΅ Ρ€Π°Π· ΠΏΠΎ ΠΊΠΎΠ΄Ρƒ. Π˜Π³Ρ€ΠΎΠΊΠΈ ΠΊΠ»ΠΈΠΊΠ°ΡŽΡ‚ ΠΌΡ‹ΡˆΠΊΠΎΠΉ Π½Π° наш ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚, ΠΏΡ€ΠΈ этом срабатываСт ΠΌΠ΅Ρ‚ΠΎΠ΄ processMouseEvent(), Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΌΡ‹ опрСдСляСм, ΠΊΠ°ΠΊΠΎΠ΅ событиС ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΎ, пуста Π»ΠΈ ячСйка, Π² ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΊΠ»ΠΈΠΊΠ½ΡƒΠ»ΠΈ ΠΈ Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌ пСрСрисовку ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° (repaint()). На ΠΌΠΎΠΌΠ΅Π½Ρ‚ пСрСрисовки Π² массивС field содСрТатся Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΎ поставлСнных крСстиках ΠΈ Π½ΠΎΠ»ΠΈΠΊΠ°Ρ…, остаСтся ΠΏΡ€ΠΎΠ±Π΅ΠΆΠ°Ρ‚ΡŒΡΡ Ρ†ΠΈΠΊΠ»Π°ΠΌΠΈ ΠΏΠΎ всСму массиву ΠΈ Ссли встрСчаСтся Π½ΠΎΠ»ΠΈΠΊ β€” Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ Π½ΠΎΠ»ΠΈΠΊ, Π° Ссли крСстик β€” Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ крСстик. ΠŸΠΎΠ΅Ρ…Π°Π»ΠΈ, создаСм ΠΌΠ΅Ρ‚ΠΎΠ΄ drawXO(). ИмСнно Π² Π½Π΅ΠΌ Π±ΡƒΠ΄Π΅ΠΌ Β«ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒΒ» массив:

ΠžΡΡ‚Π°Π»ΠΎΡΡŒ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π² ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ painComponent():

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, Ссли Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π½Π°ΡˆΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ½Π°ΡΠ»Π°ΠΆΠ΄Π°Ρ‚ΡŒΡΡ постановкой крСстиков ΠΈ Π½ΠΎΠ»ΠΈΠΊΠΎΠ²:

ΠžΠΏΡ€Π΅Π΄Π΅Π»ΡΠ΅ΠΌ побСдитСля

ВсС Π±Ρ‹ Ρ…ΠΎΡ€ΠΎΡˆΠΎ, Π½ΠΎ сСйчас ΠΈΠ³Ρ€Π° Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ отслСТиваСт своС состояниС, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ крСстики ΠΈ Π½ΠΎΠ»ΠΈΠΊΠΈ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ ставятся, Π½ΠΎ Π²Ρ‹ΠΈΠ³Ρ€Ρ‹Ρˆ Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ опрСдСляСтся. ΠŸΡ€ΠΈΠ΄Π΅Ρ‚ΡΡ Π΅Ρ‰Π΅ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΡ‚Ρ€ΡƒΠ΄ΠΈΡ‚ΡŒΡΡ! Как ΠΆΠ΅ Π½Π°ΠΌ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΈΠ³Ρ€Π° Π·Π°ΠΊΠΎΠ½Ρ‡ΠΈΠ»Π°ΡΡŒ? Π”Π°Π²Π°ΠΉΡ‚Π΅ присмотримся ΠΊ массиву field. Если Π² ряду Π±ΡƒΠ΄ΡƒΡ‚ ΡΡ‚ΠΎΡΡ‚ΡŒ ΠΎΠ΄Π½ΠΈ крСстики, Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‚Π°ΠΌ значСния 10, 10, 10.

Если Π½ΠΎΠ»ΠΈΠΊΠΈ β€” 200, 200, 200. Π­Π²Ρ€ΠΈΠΊΠ°! Π”Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ сумму всСх ячССк Π² ряду ΠΏΠΎ Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΠΈ ΠΈ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΠΈ, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎ Π΄Π²ΡƒΠΌ диагоналям. Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ ΠΌΠ΅Ρ‚ΠΎΠ΄ checkState(), ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ…ΠΎΠ΄ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ ΡΠ»ΠΎΠΆΠΈΠ²ΡˆΡƒΡŽΡΡ Π½Π° ΠΏΠΎΠ»Π΅ ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡŽ ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ -1, Ссли Ρ…ΠΎΠ΄ΠΎΠ² Π½Π΅ ΠΎΡΡ‚Π°Π»ΠΎΡΡŒ, 3*FIELD_X Ссли Π²Ρ‹ΠΈΠ³Ρ€Π°Π»ΠΈ крСстики ΠΈ 3*FIELD_O, Ссли Π²Ρ‹ΠΈΠ³Ρ€Π°Π»ΠΈ Π½ΠΎΠ»ΠΈΠΊΠΈ, Π² случаС продолТСния ΠΈΠ³Ρ€Ρ‹ β€” ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΏΡƒΡΡ‚ΡŒ Π²Π΅Ρ€Π½Π΅Ρ‚ 0.

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ Π΄Π°Π½Ρ‹ Π² ΠΊΠΎΠ΄Π΅. Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹, стоящиС Π½Π° Π³Π»Π°Π²Π½ΠΎΠΉ Π΄ΠΈΠ°Π³ΠΎΠ½Π°Π»ΠΈ Π²Ρ‹Ρ‡ΠΈΡΠ»ΡΡŽΡ‚ΡΡ просто β€” ΠΈΡ… индСксы Ρ€Π°Π²Π½Ρ‹ ([0][0], [1][1] ΠΈ Ρ‚. Π΄.). ΠŸΠΎΠ±ΠΎΡ‡Π½Π°Ρ диагональ содСрТит элСмСнты с индСксами [0][N-1], [1][N-2] ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅ (N β€” Π΄Π»ΠΈΠ½Π° массива).

Π§Π°ΡΡ‚ΡŒ ΠΊΠΎΠ΄Π° с 142ΠΉ ΠΏΠΎ 160ю строку ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° подсчСт суммы Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π² ячСйках ΠΏΠΎ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌ ΠΈ Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΌ рядам: ΠΊΠ°ΠΆΠ΄ΡƒΡŽ Β«Π±ΠΎΠ»ΡŒΡˆΡƒΡŽΒ» ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΡŽ ΠΏΠΎ i фиксируСтся Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ (Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ) ряд с индСксом i ΠΈ запускаСтся ΠΌΠ°Π»Ρ‹ΠΉ Ρ†ΠΈΠΊΠ» с ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€ΠΎΠΌ всСх ячССк Π² Π΄Π°Π½Π½ΠΎΠΌ ряду (Ρ†ΠΈΠΊΠ» ΠΏΠΎ j).

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, провСряСтся Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Π½Π° ΠΏΠΎΠ»Π΅ хотя Π±Ρ‹ ΠΎΠ΄Π½ΠΎΠΉ Π½Π΅ занятой ячСйки (hasEmpty=true), это Π½ΡƒΠΆΠ½ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡŽ, ΠΊΠΎΠ³Π΄Π° всС ячСйки заняты, Π½ΠΎ Π½ΠΈΠΊΡ‚ΠΎ Π½Π΅ Π²Ρ‹ΠΈΠ³Ρ€Π°Π» (Π½ΠΈΡ‡ΡŒΡ). НаконСц, Ссли Π½ΠΈΠ³Π΄Π΅ Ρ€Π°Π½Π΅Π΅ Π½Π΅ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ΅Π» Π²Ρ‹Ρ…ΠΎΠ΄ ΠΈΠ· ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΌΡ‹ провСряСм Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ hasEmpty, Ссли пустыС ячСйки Π΅ΡΡ‚ΡŒ β€” Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌ 0, Π° Ссли Π½Π΅Ρ‚, Ρ‚ΠΎ -1 (Π½ΠΈΡ‡ΡŒΡ).

ΠžΡΡ‚Π°Π»ΠΎΡΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄. НСмного ΠΏΠΎΠ΄ΠΏΡ€Π°Π²ΠΈΠΌ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΉ.

Π—Π΄Π΅ΡΡŒ добавилось ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° ΠΈΠ· ΠΌΠ΅Ρ‚ΠΎΠ΄Π° checkState() ΠΈ Π΅Π³ΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°. ΠœΠ΅Ρ‚ΠΎΠ΄ showMessageDialog() ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ сообщСниС с Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌ тСкстом ΠΈ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠΌ. Π’ Π²Π΅Ρ‚Π²Π»Π΅Π½ΠΈΠΈ провСряСм, ΠΊΠ°ΠΊΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π²Π΅Ρ€Π½ΡƒΠ» ΠΌΠ΅Ρ‚ΠΎΠ΄ checkState() ΠΈ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ сообщСния (ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅ΠΌ ΠΈΠ³Ρ€Ρƒ, Ссли Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ 0).

На этом Π΄Π°Π½Π½Ρ‹ΠΉ Ρ‚ΡƒΡ‚ΠΎΡ€ΠΈΠ°Π» ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΊ ΠΊΠΎΠ½Ρ†Ρƒ. Π—Π° Π½Π΅ ΡΡ‚ΠΎΠ»ΡŒ Π΄ΠΎΠ»Π³ΠΎΠ΅ врСмя Π½Π°ΠΌ ΡƒΠ΄Π°Π»ΠΎΡΡŒ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈΠ³Ρ€Ρƒ с графичСским интСрфСйсом ΠΈ Π·Π°Ρ…Π²Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΌ Π³Π΅ΠΉΠΌΠΏΠ»Π΅Π΅ΠΌ: ).

Π—Π°Π΄Π°Π½ΠΈΠ΅ Π½Π° Π΄ΠΎΠΌ: наша ΠΈΠ³Ρ€Π° всС-Ρ‚Π°ΠΊΠΈ лСнивая, ΠΈ ΠΏΠΎΡ‡Π΅ΠΌΡƒ-Ρ‚ΠΎ Π½Π΅ Π·Π°Ρ‡Π΅Ρ€ΠΊΠΈΠ²Π°Π΅Ρ‚ Π²Ρ‹ΠΈΠ³Ρ€Ρ‹ΡˆΠ½Ρ‹ΠΉ ряд. ΠŸΠΎΠ΄ΡƒΠΌΠ°ΠΉΡ‚Π΅, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π΅Π³ΠΎ Π·Π°Ρ‡Π΅Ρ€ΠΊΠ½ΡƒΡ‚ΡŒ, вСдь Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ Π»ΠΈΠ½ΠΈΠΈ Π²Ρ‹ ΡƒΠΆΠ΅ ΡƒΠΌΠ΅Π΅Ρ‚Π΅ (подсказка, ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΠΌΠ΅Ρ‚ΠΎΠ΄ checkState() β€” Ρ‚Π°ΠΌ ΡƒΠΆΠ΅ сдСлана ΠΏΠΎΡ‡Ρ‚ΠΈ вся Ρ€Π°Π±ΠΎΡ‚Π° ΠΏΠΎ Π½Π°Ρ…ΠΎΠΆΠ΄Π΅Π½ΠΈΡŽ Π²Ρ‹ΠΈΠ³Ρ€Ρ‹ΡˆΠ½ΠΎΠ³ΠΎ ряда).

Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ нашСго ΡˆΠ΅ΡΡ‚ΠΈΠΌΠ΅ΡΡΡ‡Π½ΠΎΠ³ΠΎ курса Β«ΠŸΡ€ΠΎΡ„Π΅ΡΡΠΈΡ: Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΒ» Π²Ρ‹ Π½Π°ΡƒΡ‡ΠΈΡ‚Π΅ΡΡŒ ΠΏΠΈΡΠ°Ρ‚ΡŒ Π² Java Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ это! πŸ‘‰ Π£Π·Π½Π°Ρ‚ΡŒ подробности!

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Java Π² Ѐункциях Azure с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ IntelliJ

Twitter LinkedIn Facebook АдрСс элСктронной ΠΏΠΎΡ‡Ρ‚Ρ‹

  • Π‘Ρ‚Π°Ρ‚ΡŒΡ

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Java ΠΈ IntelliJ для создания Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Azure.

Π’ частности, Π² этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

  • Как ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Java, Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΡƒΠ΅ΠΌΡƒΡŽ ΠΏΠΎ HTTP, Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ IntelliJ IDEA.
  • Π¨Π°Π³ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π² ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ срСдС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ (IDE) Π½Π° вашСм ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅.
  • Π˜Π½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡ для развСртывания ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² Ѐункциях Azure.

ΠŸΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ трСбования

  • УчСтная запись Azure с Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ подпиской. Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ ΡƒΡ‡Π΅Ρ‚Π½ΡƒΡŽ запись бСсплатно.
  • ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹ΠΉ Azure ΠΏΠ°ΠΊΠ΅Ρ‚ срСдств Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Java (JDK), вСрсия 8 ΠΈΠ»ΠΈ 11
  • УстановлСнный IntelliJ IDEA Ultimate Edition ΠΈΠ»ΠΈ Community Edition.
  • MavenΒ 3.5.0+
  • ПослСдняя вСрсия Function Core Tools

Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π½Π°Π±ΠΎΡ€ срСдств Azure для IntelliJ, Π° Π·Π°Ρ‚Π΅ΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π²Ρ…ΠΎΠ΄, сдСлайтС ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

  1. Π’ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠΌ ΠΎΠΊΠ½Π΅ IntelliJ IDEA ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΈ прСдпочтСния (CTRL+ALT+S) Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΡ‹Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ. Π—Π°Ρ‚Π΅ΠΌ Π½Π°ΠΉΠ΄ΠΈΡ‚Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Azure Toolkit for IntelliJ Π² Marketplace ΠΈ Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ Install (Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ). ПослС установки Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ ΠŸΠ΅Ρ€Π΅Π·Π°ΠΏΡƒΡΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΡ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ.

  2. Π§Ρ‚ΠΎΠ±Ρ‹ Π²ΠΎΠΉΡ‚ΠΈ Π² ΡƒΡ‡Π΅Ρ‚Π½ΡƒΡŽ запись Azure, ΠΎΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ Π±ΠΎΠΊΠΎΠ²ΡƒΡŽ панСль Azure Explorer, Π° Π·Π°Ρ‚Π΅ΠΌ Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ Π·Π½Π°Ρ‡ΠΎΠΊ Π’Ρ…ΠΎΠ΄ Π² Azure Π² Π²Π΅Ρ€Ρ…Π½Π΅ΠΉ строкС (ΠΈΠ»ΠΈ Π² мСню IDEA Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Ρ‹/Azure/Π’Ρ…ΠΎΠ΄ Π² Azure> (БрСдства/Azure/>Π’Ρ…ΠΎΠ΄ Π² Azure)).

  3. Π’ ΠΎΠΊΠ½Π΅ Π’Ρ…ΠΎΠ΄ Π² Azure Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ OAuth 2.0 ΠΈ Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ Π’ΠΎΠΉΡ‚ΠΈ. Π”Ρ€ΡƒΠ³ΠΈΠ΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ Π²Ρ…ΠΎΠ΄Π° см. Π² инструкциях ΠΏΠΎ Π²Ρ…ΠΎΠ΄Ρƒ Π² Набор срСдств Azure для IntelliJ.

  4. Π’ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅ Π²ΠΎΠΉΠ΄ΠΈΡ‚Π΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡƒΡ‡Π΅Ρ‚Π½ΠΎΠΉ записи ΠΈ Π²Π΅Ρ€Π½ΠΈΡ‚Π΅ΡΡŒ Π² IntelliJ. Π’ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠΌ ΠΎΠΊΠ½Π΅ Π’Ρ‹Π±ΠΎΡ€ подписок ΡƒΠΊΠ°ΠΆΠΈΡ‚Π΅ Π½ΡƒΠΆΠ½Ρ‹Π΅ подписки ΠΈ Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ Π’Ρ‹Π±Ρ€Π°Ρ‚ΡŒ.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ локального ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°

Π’ этом Ρ€Π°Π·Π΄Π΅Π»Π΅ Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Π½Π°Π±ΠΎΡ€ срСдств Azure для IntelliJ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π€ΡƒΠ½ΠΊΡ†ΠΈΠΉ Azure ΠΏΠΎ шагам:

  1. ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ привСтствия IntelliJ, Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ мастСр создания ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ Azure.

  2. Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Π’Ρ€ΠΈΠ³Π³Π΅Ρ€ Http, Π·Π°Ρ‚Π΅ΠΌ Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ Π”Π°Π»Π΅Π΅ ΠΈ слСдуйтС подсказкам мастСра установки ΠΏΡ€ΠΈ настройкС всСх ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… страниц. ΠŸΠΎΠ΄Ρ‚Π²Π΅Ρ€Π΄ΠΈΡ‚Π΅ располоТСниС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, Π·Π°Ρ‚Π΅ΠΌ Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ Π—Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡŒ. Π—Π°Ρ‚Π΅ΠΌ Intellj IDEA ΠΎΡ‚ΠΊΡ€ΠΎΠ΅Ρ‚ Π½ΠΎΠ²Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚.

Π›ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ запуск ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°

Π§Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ локально, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ дСйствия:

Π’Π°ΠΆΠ½ΠΎ!

НСобходимо ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ срСды JAVA_HOME Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ JDK, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ Π²ΠΎ врСмя компиляции ΠΊΠΎΠ΄Π° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Maven. Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ вСрсия JDK Π½Π΅ Π½ΠΈΠΆΠ΅ Java.version.

  1. ΠŸΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ ΠΊ src/main/java/org/example/functions/HttpTriggerFunction.java, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ созданный ΠΊΠΎΠ΄. Рядом со строкой 24 Π²Ρ‹ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚Π΅ Π·Π΅Π»Π΅Π½ΡƒΡŽ ΠΊΠ½ΠΎΠΏΠΊΡƒ Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ. Π©Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ Π΅Π³ΠΎ ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Запуск «Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ-azur…».. Π’Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅-функция Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ локально с нСсколькими ΠΆΡƒΡ€Π½Π°Π»Π°ΠΌΠΈ.

  2. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, ΠΎΠ±Ρ€Π°Ρ‚ΠΈΠ²ΡˆΠΈΡΡŒ ΠΊ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠ΅ ΠΈΠ· Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ http://localhost:7071/api/HttpExample?name=Azure.

  3. Π–ΡƒΡ€Π½Π°Π» Ρ‚Π°ΠΊΠΆΠ΅ отобраТаСтся Π² вашСй IDEA. ΠžΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚Π΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, Π½Π°ΠΆΠ°Π² ΠΊΠ½ΠΎΠΏΠΊΡƒ ΠžΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ.

Π›ΠΎΠΊΠ°Π»ΡŒΠ½Π°Ρ ΠΎΡ‚Π»Π°Π΄ΠΊΠ° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°

Π§Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ локально, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ дСйствия:

  1. НаТмитС ΠΊΠ½ΠΎΠΏΠΊΡƒ ΠžΡ‚Π»Π°Π΄ΠΊΠ° Π½Π° ΠΏΠ°Π½Π΅Π»ΠΈ инструмСнтов. Если панСль инструмСнтов Π½Π΅ Π²ΠΈΠ΄Π½Π°, Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ Π΅Π΅, Π²Ρ‹Π±Ρ€Π°Π² Π’ΠΈΠ΄>ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΠ΅>ПанСль инструмСнтов.

  2. Π©Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ строку 31 Ρ„Π°ΠΉΠ»Π° src/main/java/org/example/functions/HttpTriggerFunction.java, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Ρ‚ΠΎΡ‡ΠΊΡƒ останова. Π‘Π½ΠΎΠ²Π° ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ доступ ΠΊ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠ΅ http://localhost:7071/api/HttpTrigger-Java?name=Azure, ΠΈ Π²Ρ‹ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ Ρ‚ΠΎΡ‡ΠΊΠ° останова Π±ΡƒΠ΄Π΅Ρ‚ достигнута. Π—Π°Ρ‚Π΅ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ шаг, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Ρ‹Π΅ значСния ΠΈ ΠΎΡ†Π΅Π½ΠΊΠ°. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ сСанс ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ, Π½Π°ΠΆΠΌΠΈΡ‚Π΅ ΠΊΠ½ΠΎΠΏΠΊΡƒ ΠžΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ.

Π Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π² Azure

Π§Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π² Azure, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ дСйствия:

  1. Π©Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π² ΠΎΠ±ΠΎΠ·Ρ€Π΅Π²Π°Ρ‚Π΅Π»Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² IntelliJ ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Azure > Π Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Π² Ѐункциях Azure.

  2. Если Ρƒ вас Π΅Ρ‰Π΅ Π½Π΅Ρ‚ прилоТСния-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ + Π² строкС Ѐункция. Π’Π²Π΅Π΄ΠΈΡ‚Π΅ имя прилоТСния-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡƒ. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΈΠ½ΡΡ‚ΡŒ значСния ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. НаТмитС ΠΊΠ½ΠΎΠΏΠΊΡƒ ОК, ΠΈ вновь созданноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅-функция Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π±Ρ€Π°Π½ΠΎ автоматичСски. Π©Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ Π—Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ прилоТСниями-функциями ΠΈΠ· IDEA

Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ прилоТСниями-функциями с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Azure Explorer Π² IDEA, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ дСйствия:

  1. Π©Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅-функция, ΠΈ Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ всС пСрСчислСнныС прилоТСния-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

  2. Π©Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΎΠ΄Π½ΠΎ ΠΈΠ· своих ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΈ Ρ‰Π΅Π»Ρ‡ΠΊΠΎΠΌ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ свойства, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ страницу свСдСний.

  3. Π©Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ HttpTrigger-Java, Π° Π·Π°Ρ‚Π΅ΠΌ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅. Π’Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ с URL-адрСсом Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€Π°.

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚

Π§Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ большС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ дСйствия:

  1. Π©Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚ org.example.functions ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒΒ > >Классс Π€ΡƒΠ½ΠΊΡ†ΠΈΠΉ Azure.

  2. Π—Π°ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ поля ΠΈΠΌΠ΅Π½ΠΈ класса HttpTest, Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Π’Ρ€ΠΈΠ³Π³Π΅Ρ€ Http Π² мастСрС создания классов Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, Π° Π·Π°Ρ‚Π΅ΠΌ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ ОК, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΏΠΎ своСму ТСланию.

ΠžΡ‡ΠΈΡΡ‚ΠΊΠ° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ

Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΎΠ΄Π½ΠΎ ΠΈΠ· ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Azure Explorer Π² IDEA, Π° Π·Π°Ρ‚Π΅ΠΌ Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Π£Π΄Π°Π»ΠΈΡ‚ΡŒ. Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ этой ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Π½ΡΡ‚ΡŒ нСсколько ΠΌΠΈΠ½ΡƒΡ‚. По Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠΈ состояниС Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΎ Π² Azure Explorer.

Π”Π°Π»ΡŒΠ½Π΅ΠΉΡˆΠΈΠ΅ дСйствия

Π˜Ρ‚Π°ΠΊ, Π²Ρ‹ создали ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Java для Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠΉ ΠΏΠΎ HTTP-запросу, запустили эту Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π½Π° своСм локальном ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅ ΠΈ Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΠ»ΠΈ Π΅Π΅ Π² Azure. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Ρ€Π°ΡΡˆΠΈΡ€ΡŒΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, пСрСйдя ΠΊ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅:

ДобавлСния Π²Ρ‹Ρ…ΠΎΠ΄Π½ΠΎΠΉ привязки ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ слуТбы Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° Azure

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° графичСского интСрфСйса ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Swing Π² срСдС IDE NetBeans

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ ознакомились с интСрфСйсом конструктора графичСского интСрфСйса, ΠΏΠΎΡ€Π° ΠΏΡ€ΠΈΡΡ‚ΡƒΠΏΠΈΡ‚ΡŒ ΠΊ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса нашСго прилоТСния ContactEditor. Π’ этом Ρ€Π°Π·Π΄Π΅Π»Π΅ ΠΌΡ‹ рассмотрим использованиС ΠΏΠ°Π»ΠΈΡ‚Ρ€Ρ‹ IDE для добавлСния Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² графичСского интСрфСйса, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π°ΠΌ Π½ΡƒΠΆΠ½Ρ‹, Π² Π½Π°ΡˆΡƒ Ρ„ΠΎΡ€ΠΌΡƒ.

Благодаря ΠΏΠ°Ρ€Π°Π΄ΠΈΠ³ΠΌΠ΅ Free Design Π² срСдС IDE Π²Π°ΠΌ большС Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π±ΠΎΡ€ΠΎΡ‚ΡŒΡΡ с ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Π°ΠΌΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΈ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² Π² Π²Π°ΡˆΠΈΡ… ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°Ρ…. ВсС, Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, это ΠΏΠ΅Ρ€Π΅Ρ‚Π°Ρ‰ΠΈΡ‚ΡŒ Π½ΡƒΠΆΠ½Ρ‹Π΅ Π²Π°ΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Π² Ρ„ΠΎΡ€ΠΌΡƒ с графичСским интСрфСйсом, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… ΠΈΠ»Π»ΡŽΡΡ‚Ρ€Π°Ρ†ΠΈΡΡ….

Π‘ΠΌ. скринкаст Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² (.swf) для ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ дСмонстрации Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ Π½ΠΈΠΆΠ΅.

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ²: основы

Π₯отя GUI Builder срСды IDE ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ процСсс создания графичСских интСрфСйсов Java, часто Π±Ρ‹Π²Π°Π΅Ρ‚ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π½Π°Π±Ρ€ΠΎΡΠ°Ρ‚ΡŒ Ρ‚ΠΎ, ΠΊΠ°ΠΊ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ваш интСрфСйс выглядСл, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒ Π΅Π³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΡƒ. МногиС Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Ρ‹ интСрфСйсов ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ эту Ρ‚Π΅Ρ…Π½ΠΈΠΊΡƒ Β«Π½Π°ΠΈΠ»ΡƒΡ‡ΡˆΠ΅ΠΉ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΎΠΉΒ», ΠΎΠ΄Π½Π°ΠΊΠΎ для Ρ†Π΅Π»Π΅ΠΉ этого руководства Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ просто ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ, ΠΊΠ°ΠΊ Π΄ΠΎΠ»ΠΆΠ½Π° Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ наша заполнСнная Ρ„ΠΎΡ€ΠΌΠ°, пСрСйдя ΠΊ Ρ€Π°Π·Π΄Π΅Π»Ρƒ Β«ΠŸΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ просмотр вашСго графичСского интСрфСйса».

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΌΡ‹ ΡƒΠΆΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ JFrame Π² качСствС ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° Π²Π΅Ρ€Ρ…Π½Π΅Π³ΠΎ уровня нашСй Ρ„ΠΎΡ€ΠΌΡ‹, ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ шагом Π±ΡƒΠ΄Π΅Ρ‚ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°Ρ€Ρ‹ JPanel, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ позволят Π½Π°ΠΌ ΠΊΠ»Π°ΡΡ‚Π΅Ρ€ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ нашСго ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠ·Π°Π³Π»Π°Π²Π»Π΅Π½Π½Ρ‹Ρ… Π³Ρ€Π°Π½ΠΈΡ†. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ΡΡŒ ΠΊ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΈΠ»Π»ΡŽΡΡ‚Ρ€Π°Ρ†ΠΈΡΠΌ ΠΈ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ IDE «пСрСтаскиваниС» ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ этого.

Π§Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ JPanel:

  1. Π’ ΠΎΠΊΠ½Π΅ «ΠŸΠ°Π»ΠΈΡ‚Ρ€Π°» Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ «ΠŸΠ°Π½Π΅Π»ΡŒ» ΠΈΠ· ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ «ΠšΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹ Swing», Ρ‰Π΅Π»ΠΊΠ½ΡƒΠ² ΠΈ отпустив ΠΊΠ½ΠΎΠΏΠΊΡƒ ΠΌΡ‹ΡˆΠΈ.

  2. ΠŸΠ΅Ρ€Π΅ΠΌΠ΅ΡΡ‚ΠΈΡ‚Π΅ курсор Π² Π»Π΅Π²Ρ‹ΠΉ Π²Π΅Ρ€Ρ…Π½ΠΈΠΉ ΡƒΠ³ΠΎΠ» Ρ„ΠΎΡ€ΠΌΡ‹ Π² GUI Builder. Когда ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ располоТСн рядом с Π²Π΅Ρ€Ρ…Π½ΠΈΠΌ ΠΈ Π»Π΅Π²Ρ‹ΠΌ краями ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°, ΠΏΠΎΡΠ²Π»ΡΡŽΡ‚ΡΡ Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΈ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ Π»ΠΈΠ½ΠΈΠΈ выравнивания, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠ΅ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля. Π©Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ Π² Ρ„ΠΎΡ€ΠΌΠ΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π·ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ JPanel Π² этом мСстС.

ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ JPanel отобраТаСтся Π² Ρ„ΠΎΡ€ΠΌΠ΅ ContactEditorUI с ΠΎΡ€Π°Π½ΠΆΠ΅Π²ΠΎΠΉ подсвСткой, ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‰Π΅ΠΉ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ Π²Ρ‹Π±Ρ€Π°Π½. ПослС отпускания ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΌΡ‹ΡˆΠΈ ΠΏΠΎΡΠ²Π»ΡΡŽΡ‚ΡΡ нСбольшиС ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹, ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠ΅ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ привязки ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°, Π° ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ ΡƒΠ·Π΅Π» JPanel отобраТаСтся Π² ΠΎΠΊΠ½Π΅ Navigator, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ рисункС.

Π”Π°Π»Π΅Π΅ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΏΠ°Π½Π΅Π»ΠΈ JPanel, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄ΠΈΡ‚ΡŒ мСсто для ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ размСстим Π² Π½Π΅ΠΉ Ρ‡ΡƒΡ‚ΡŒ ΠΏΠΎΠ·ΠΆΠ΅, Π½ΠΎ Π΄Π°Π²Π°ΠΉΡ‚Π΅ сначала ΡƒΠΊΠ°ΠΆΠ΅ΠΌ Π½Π° ΠΎΠ΄Π½Ρƒ ΠΈΠ· Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ GUI Builder. Для этого Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π²Ρ‹Π±ΠΎΡ€ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚ΠΎ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ JPanel. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΌΡ‹ Π΅Ρ‰Π΅ Π½Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Ρ€Π°ΠΌΠΊΡƒ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°, панСль исчСзаСт. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΠΎΠ΄Π½Π°ΠΊΠΎ, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΡ‚Π΅ курсором ΠΏΠΎ ΠΏΠ°Π½Π΅Π»ΠΈ JPanel, Π΅Π΅ края становятся свСтло-сСрыми, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΅Π΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π±Ρ‹Π»ΠΎ Ρ‡Π΅Ρ‚ΠΊΠΎ Π²ΠΈΠ΄Π½ΠΎ. Π’Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‰Π΅Π»ΠΊΠ½ΡƒΡ‚ΡŒ Π² любом мСстС Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Π΅Π³ΠΎ ΠΈ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ΅ появлСниС ΠΌΠ°Ρ€ΠΊΠ΅Ρ€ΠΎΠ² измСнСния Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΈ ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ² привязки.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ JPanel:

  1. Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚ΠΎ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½ΡƒΡŽ панСль JPanel. МалСнькиС ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Π΅ ΠΌΠ°Ρ€ΠΊΠ΅Ρ€Ρ‹ измСнСния Ρ€Π°Π·ΠΌΠ΅Ρ€Π° снова ΠΏΠΎΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΏΠΎ ΠΏΠ΅Ρ€ΠΈΠΌΠ΅Ρ‚Ρ€Ρƒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°.

  2. НаТмитС ΠΈ ΡƒΠ΄Π΅Ρ€ΠΆΠΈΠ²Π°ΠΉΡ‚Π΅ ΠΌΠ°Ρ€ΠΊΠ΅Ρ€ измСнСния Ρ€Π°Π·ΠΌΠ΅Ρ€Π° Π½Π° ΠΏΡ€Π°Π²ΠΎΠΌ ΠΊΡ€Π°ΡŽ ΠΏΠ°Π½Π΅Π»ΠΈ JPanel ΠΈ ΠΏΠ΅Ρ€Π΅Ρ‚Π°Ρ‰ΠΈΡ‚Π΅ Π΅Π³ΠΎ, ΠΏΠΎΠΊΠ° рядом с ΠΊΡ€Π°Π΅ΠΌ Ρ„ΠΎΡ€ΠΌΡ‹ Π½Π΅ появится пунктирная Π½Π°ΠΏΡ€Π°Π²Π»ΡΡŽΡ‰Π°Ρ выравнивания.

  3. ΠžΡ‚ΠΏΡƒΡΡ‚ΠΈΡ‚Π΅ Ρ€ΡƒΡ‡ΠΊΡƒ измСнСния Ρ€Π°Π·ΠΌΠ΅Ρ€Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°.

ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ JPanel Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅Ρ‚ΡΡ Π½Π° ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΠΊ ΠΌΠ΅ΠΆΠ΄Ρƒ Π»Π΅Π²Ρ‹ΠΌ ΠΈ ΠΏΡ€Π°Π²Ρ‹ΠΌ краями ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° Π² соотвСтствии с Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌΡ‹ΠΌ смСщСниСм, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ рисункС.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ панСль, ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‰ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎΠ± ΠΈΠΌΠ΅Π½ΠΈ нашСго ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса, Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΠΈΡ‚ΡŒ процСсс, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π΅Ρ‰Π΅ ΠΎΠ΄Π½Ρƒ нСпосрСдствСнно ΠΏΠΎΠ΄ ΠΏΠ΅Ρ€Π²ΠΎΠΉ для ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎΠ± элСктронной ΠΏΠΎΡ‡Ρ‚Π΅. Π‘ΡΡ‹Π»Π°ΡΡΡŒ Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΈΠ»Π»ΡŽΡΡ‚Ρ€Π°Ρ†ΠΈΠΈ, ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΠΈΡ‚Π΅ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠ΅ Π΄Π²Π΅ Π·Π°Π΄Π°Ρ‡ΠΈ, обращая Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅ΠΌΠΎΠ΅ располоТСниС GUI Builder. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌΠΎΠ΅ расстояниС ΠΏΠΎ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ двумя панСлями JPanel Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ ΡƒΠΆΠ΅, Ρ‡Π΅ΠΌ ΠΏΠΎ краям. ПослС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Π²Ρ‚ΠΎΡ€ΡƒΡŽ панСль JPanel, ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚Π΅ Π΅Π΅ Ρ€Π°Π·ΠΌΠ΅Ρ€ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½Π° Π·Π°ΠΏΠΎΠ»Π½ΠΈΠ»Π° ΠΎΡΡ‚Π°Π²ΡˆΠ΅Π΅ΡΡ пространство Ρ„ΠΎΡ€ΠΌΡ‹ ΠΏΠΎ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΠΈ.

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² Π²Π΅Ρ€Ρ…Π½Π΅ΠΉ ΠΈ Π½ΠΈΠΆΠ½Π΅ΠΉ частях нашСго графичСского интСрфСйса, Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π³Ρ€Π°Π½ΠΈΡ†Ρƒ ΠΈ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ JPanel. Π‘Π½Π°Ρ‡Π°Π»Π° ΠΌΡ‹ сдСлаСм это с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΊΠ½Π° «Бвойства», Π° Π·Π°Ρ‚Π΅ΠΌ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π²ΡΠΏΠ»Ρ‹Π²Π°ΡŽΡ‰Π΅Π³ΠΎ мСню.

Π§Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ² ΠΊ панСлям JPanel:

  1. Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Π²Π΅Ρ€Ρ…Π½ΡŽΡŽ панСль JPanel Π² GUI Builder.

  2. Π’ ΠΎΠΊΠ½Π΅ «Бвойства» Π½Π°ΠΆΠΌΠΈΡ‚Π΅ ΠΊΠ½ΠΎΠΏΠΊΡƒ с ΠΌΠ½ΠΎΠ³ΠΎΡ‚ΠΎΡ‡ΠΈΠ΅ΠΌ (…​) рядом со свойством Β«Π“Ρ€Π°Π½ΠΈΡ†Π°Β».

  3. Π’ появившСмся Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ Π³Ρ€Π°Π½ΠΈΡ† JPanel Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΡƒΠ·Π΅Π» TitledBorder Π½Π° ΠΏΠ°Π½Π΅Π»ΠΈ «ДоступныС Π³Ρ€Π°Π½ΠΈΡ†Ρ‹Β».

  4. На ΠΏΠ°Π½Π΅Π»ΠΈ свойств Π½ΠΈΠΆΠ΅ Π²Π²Π΅Π΄ΠΈΡ‚Π΅ Name для свойства Title.

  5. Π©Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ ΠΌΠ½ΠΎΠ³ΠΎΡ‚ΠΎΡ‡ΠΈΠ΅ (…​) рядом со свойством Β«Π¨Ρ€ΠΈΡ„Ρ‚Β», Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Β«Π–ΠΈΡ€Π½Ρ‹ΠΉΒ» для ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° Β«Π‘Ρ‚ΠΈΠ»ΡŒ ΡˆΡ€ΠΈΡ„Ρ‚Π°Β» ΠΈ Π²Π²Π΅Π΄ΠΈΡ‚Π΅ 12 для ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° Β«Π Π°Π·ΠΌΠ΅Ρ€Β». НаТмитС OK, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ΠΉΡ‚ΠΈ ΠΈΠ· Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ².

  6. Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ниТнюю панСль JPanel ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΠΈΡ‚Π΅ шаги со 2 ΠΏΠΎ 5, Π½ΠΎ Π½Π° этот Ρ€Π°Π· Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ панСль JPanel ΠΈ ΠΎΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ ΠΎΠΊΠ½ΠΎ свойств с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π²ΡΠΏΠ»Ρ‹Π²Π°ΡŽΡ‰Π΅Π³ΠΎ мСню. Π’Π²Π΅Π΄ΠΈΡ‚Π΅ ЭлСктронная ΠΏΠΎΡ‡Ρ‚Π° для свойства Title.

Π Π°ΠΌΠΊΠΈ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ² Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ ΠΊ ΠΎΠ±ΠΎΠΈΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌ JPanel .

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² Π² Ρ„ΠΎΡ€ΠΌΡƒ

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π½Π°Ρ‡Π°Ρ‚ΡŒ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ Π² нашСм спискС ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ΠΎΠ². Π’ этой Π·Π°Π΄Π°Ρ‡Π΅ ΠΌΡ‹ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ JTextField, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, ΠΈ JLabels, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΡ… ΠΎΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ. Выполняя это, ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΈ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ Π½Π°ΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ GUI Builder, прСдлагая ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ расстояниС ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ, опрСдСляСмоС внСшним Π²ΠΈΠ΄ΠΎΠΌ вашСй ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы. Π­Ρ‚ΠΎ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ ваш графичСский интСрфСйс автоматичСски отобраТаСтся с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ внСшнСго Π²ΠΈΠ΄Π° Ρ†Π΅Π»Π΅Π²ΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы Π²ΠΎ врСмя выполнСния.

Π§Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ JLabel Π² Ρ„ΠΎΡ€ΠΌΡƒ:

  1. Π’ ΠΎΠΊΠ½Π΅ ΠŸΠ°Π»ΠΈΡ‚Ρ€Π° Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ ΠœΠ΅Ρ‚ΠΊΠ° ΠΈΠ· ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹ управлСния Swing.

  2. НавСдитС курсор Π½Π° Name JPanel, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Ρ€Π°Π½Π΅Π΅. Когда появятся Π½Π°ΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠ΅, Ρ‡Ρ‚ΠΎ JLabel располоТСн Π² Π²Π΅Ρ€Ρ…Π½Π΅ΠΌ Π»Π΅Π²ΠΎΠΌ ΡƒΠ³Π»Ρƒ ΠΏΠ°Π½Π΅Π»ΠΈ JPanel с нСбольшим ΠΏΠΎΠ»Π΅ΠΌ свСрху ΠΈ слСва, Π½Π°ΠΆΠΌΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π·ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΊΡƒ.

JLabel добавляСтся Π² Ρ„ΠΎΡ€ΠΌΡƒ, Π° ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ ΡƒΠ·Π΅Π», ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚, добавляСтся Π² ΠΎΠΊΠ½ΠΎ Inspector.

ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΈΠ΄Ρ‚ΠΈ дальшС, Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΎΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΡ‹ΠΉ тСкст JLabel, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ. Π₯отя Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΡ‹ΠΉ тСкст ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Π² любой ΠΌΠΎΠΌΠ΅Π½Ρ‚, ΠΏΡ€ΠΎΡ‰Π΅ всСго ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ ΠΈΡ… добавлСния.

Для рСдактирования ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΠΎΠ³ΠΎ тСкста JLabel:

  1. Π”Π²Π°ΠΆΠ΄Ρ‹ Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ JLabel, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΡ‹ΠΉ тСкст.

  2. Π’Π²Π΅Π΄ΠΈΡ‚Π΅ Имя: ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Enter.

ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ΡΡ Π½ΠΎΠ²ΠΎΠ΅ имя JLabel, Π° ΡˆΠΈΡ€ΠΈΠ½Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° коррСктируСтся Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ рСдактирования.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ JTextField, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΌΡ‹ ΠΌΠΎΠ³Π»ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ прСдставлСниС ΠΎ Π±Π°Π·ΠΎΠ²ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ выравнивания GUI Builder.

Π§Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ JTextField Π² Ρ„ΠΎΡ€ΠΌΡƒ:

  1. Π’ ΠΎΠΊΠ½Π΅ «ΠŸΠ°Π»ΠΈΡ‚Ρ€Π°» Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ «Π’СкстовоС ΠΏΠΎΠ»Π΅» Π² ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ «Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚ΠΎΠΌ».

  2. НСмСдлСнно пСрСмСститС курсор Π²ΠΏΡ€Π°Π²ΠΎ ΠΎΡ‚ Имя: JLabel, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ. Когда появится Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½Π°Ρ Π½Π°ΠΏΡ€Π°Π²Π»ΡΡŽΡ‰Π°Ρ, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰Π°Ρ, Ρ‡Ρ‚ΠΎ базовая линия JTextField Π²Ρ‹Ρ€ΠΎΠ²Π½Π΅Π½Π° с Π±Π°Π·ΠΎΠ²ΠΎΠΉ Π»ΠΈΠ½ΠΈΠ΅ΠΉ JLabel, Π° ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π» ΠΌΠ΅ΠΆΠ΄Ρƒ двумя ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ прСдлагаСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠΉ Π½Π°ΠΏΡ€Π°Π²Π»ΡΡŽΡ‰Π΅ΠΉ, Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°ΡΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒ JTextField.

JTextField Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² Ρ„ΠΎΡ€ΠΌΠ΅, Π²Ρ‹Ρ€ΠΎΠ²Π½Π΅Π½Π½ΠΎΠΉ с Π±Π°Π·ΠΎΠ²ΠΎΠΉ Π»ΠΈΠ½ΠΈΠ΅ΠΉ JLabel, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ рисункС. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ JLabel Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ смСстился Π²Π½ΠΈΠ·, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹Ρ€ΠΎΠ²Π½ΡΡ‚ΡŒΡΡ с Π±Π°Π·ΠΎΠ²ΠΎΠΉ Π»ΠΈΠ½ΠΈΠ΅ΠΉ Π±ΠΎΠ»Π΅Π΅ высокого тСкстового поля. Как ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ, ΡƒΠ·Π΅Π», ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚, добавляСтся Π² ΠΎΠΊΠ½ΠΎ Navigator.

ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ, Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ JLabel ΠΈ JTextField сразу справа ΠΎΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚ΠΎ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½Ρ‹Ρ…, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ рисункС. На этот Ρ€Π°Π· Π²Π²Π΅Π΄ΠΈΡ‚Π΅ Ѐамилия: Π² качСствС ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΠΎΠ³ΠΎ тСкста JLabel ΠΈ ΠΎΡΡ‚Π°Π²ΡŒΡ‚Π΅ тСкст заполнитСля JTextFields ΠΊΠ°ΠΊ Π΅ΡΡ‚ΡŒ.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ JTextField:

  1. Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΏΠΎΠ»Π΅ JTextField, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΡ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ справа ΠΎΡ‚ Last Name: JLabel.

  2. ΠŸΠ΅Ρ€Π΅Ρ‚Π°Ρ‰ΠΈΡ‚Π΅ ΠΌΠ°Ρ€ΠΊΠ΅Ρ€ измСнСния Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΏΡ€Π°Π²ΠΎΠ³ΠΎ края JTextField ΠΊ ΠΏΡ€Π°Π²ΠΎΠΌΡƒ ΠΊΡ€Π°ΡŽ Π²ΠΌΠ΅Ρ‰Π°ΡŽΡ‰Π΅ΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ JPanel.

  3. Когда появятся Π½Π°ΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ для Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ выравнивания, ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽΡ‰ΠΈΠ΅ Π³Ρ€Π°Π½ΠΈΡ†Ρƒ ΠΌΠ΅ΠΆΠ΄Ρƒ тСкстовым ΠΏΠΎΠ»Π΅ΠΌ ΠΈ ΠΏΡ€Π°Π²Ρ‹ΠΌ ΠΊΡ€Π°Π΅ΠΌ JPanel, отпуститС ΠΊΠ½ΠΎΠΏΠΊΡƒ ΠΌΡ‹ΡˆΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ JTextField.

ΠŸΡ€Π°Π²Ρ‹ΠΉ ΠΊΡ€Π°ΠΉ JTextField выравниваСтся с Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌΡ‹ΠΌ ΠΊΡ€Π°Π΅Π²Ρ‹ΠΌ ΠΏΠΎΠ»Π΅ΠΌ JPanel, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ рисункС.

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² Π² Ρ„ΠΎΡ€ΠΌΡƒ

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ JLabels Title: ΠΈ Nickname: , ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ Π΄Π²Π° JTextField, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ собираСмся Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Ρ‡Π΅Ρ€Π΅Π· ΠΌΠΈΠ½ΡƒΡ‚Ρƒ. ΠœΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΏΠ΅Ρ€Π΅Ρ‚Π°ΡΠΊΠΈΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, удСрТивая Π½Π°ΠΆΠ°Ρ‚ΠΎΠΉ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ Shift, Ρ‡Ρ‚ΠΎΠ±Ρ‹ быстро Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΈΡ… Π² Ρ„ΠΎΡ€ΠΌΡƒ. Выполняя это, снова ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ GUI Builder ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΈ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ Π½Π°ΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅, ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽΡ‰ΠΈΠ΅ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ расстояниС ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ.

Π§Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² Ρ„ΠΎΡ€ΠΌΡƒ нСсколько JLabels:

  1. Π’ ΠΎΠΊΠ½Π΅ Palette Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Label ΠΈΠ· ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ Swing Controls, Ρ‰Π΅Π»ΠΊΠ½ΡƒΠ² ΠΈ отпустив ΠΊΠ½ΠΎΠΏΠΊΡƒ ΠΌΡ‹ΡˆΠΈ.

  2. НавСдитС курсор Π½Π° Ρ„ΠΎΡ€ΠΌΡƒ нСпосрСдствСнно ΠΏΠΎΠ΄ Имя: JLabel, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Ρ€Π°Π½Π΅Π΅. Когда появятся Π½Π°ΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Π»Π΅Π²Ρ‹ΠΉ ΠΊΡ€Π°ΠΉ Π½ΠΎΠ²ΠΎΠ³ΠΎ JLabel Π²Ρ‹Ρ€ΠΎΠ²Π½Π΅Π½ с ΠΊΡ€Π°Π΅ΠΌ JLabel Π²Ρ‹ΡˆΠ΅, ΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ Π΅ΡΡ‚ΡŒ нСбольшоС ΠΏΠΎΠ»Π΅, Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅, удСрТивая ΠΊΠ»Π°Π²ΠΈΡˆΡƒ Shift, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π·ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ JLabel.

  3. УдСрТивая Π½Π°ΠΆΠ°Ρ‚ΠΎΠΉ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ Shift, помСститС Π΅Ρ‰Π΅ ΠΎΠ΄Π½Ρƒ JLabel сразу справа ΠΎΡ‚ ΠΏΠ΅Ρ€Π²ΠΎΠΉ. Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ отпустили ΠΊΠ»Π°Π²ΠΈΡˆΡƒ Shift ΠΏΠ΅Ρ€Π΅Π΄ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π²Ρ‚ΠΎΡ€ΠΎΠΉ JLabel. Если Π²Ρ‹ Π·Π°Π±Ρ‹Π»ΠΈ ΠΎΡ‚ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ Shift ΠΏΠ΅Ρ€Π΅Π΄ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ послСднСй JLabel, просто Π½Π°ΠΆΠΌΠΈΡ‚Π΅ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ Escape.

JLabels Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ΡΡ Π² Ρ„ΠΎΡ€ΠΌΡƒ, создавая Π²Ρ‚ΠΎΡ€ΡƒΡŽ строку, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ рисункС. Π£Π·Π»Ρ‹, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚, Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ΡΡ Π² ΠΎΠΊΠ½ΠΎ Navigator.

ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ Π΄Π²ΠΈΠ³Π°Ρ‚ΡŒΡΡ дальшС, Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΎΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ имя JLabels, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΌΡ‹ ΠΌΠΎΠ³Π»ΠΈ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ эффСкт выравнивания, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΡ‹ установим ΠΏΠΎΠ·ΠΆΠ΅.

Для рСдактирования ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΠΎΠ³ΠΎ тСкста JLabels:

  1. Π”Π²Π°ΠΆΠ΄Ρ‹ Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΌΠ΅Ρ‚ΠΊΡƒ JLabel, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΡ‹ΠΉ тСкст.

  2. Π’Π²Π΅Π΄ΠΈΡ‚Π΅ Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ: ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Enter.

  3. ΠŸΠΎΠ²Ρ‚ΠΎΡ€ΠΈΡ‚Π΅ шаги 1 ΠΈ 2, ввСдя ПсСвдоним: для Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ свойства ΠΈΠΌΠ΅Π½ΠΈ JLabel.

НовыС ΠΈΠΌΠ΅Π½Π° JLabels ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ Π² Ρ„ΠΎΡ€ΠΌΠ΅ ΠΈ ΡΠΌΠ΅Ρ‰Π°ΡŽΡ‚ΡΡ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ измСнСния ΠΈΡ… ΡˆΠΈΡ€ΠΈΠ½Ρ‹, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ рисункС.

Вставка ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ²

Π‘ΠΌ. скринкаст «Вставка ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ²Β» (.swf) для ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ дСмонстрации Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ Π½ΠΈΠΆΠ΅.

Часто Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡƒΠΆΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½Ρ‹ Π² Ρ„ΠΎΡ€ΠΌΠ΅. Всякий Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ добавляСтС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ ΠΌΠ΅ΠΆΠ΄Ρƒ двумя ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ, GUI Builder автоматичСски сдвигаСт ΠΈΡ…, освобоТдая мСсто для Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ это, ΠΌΡ‹ вставим JTextField ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ€Π°Π½Π΅Π΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½Ρ‹ΠΌΠΈ JLabels, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Π΄Π²ΡƒΡ… ΠΈΠ»Π»ΡŽΡΡ‚Ρ€Π°Ρ†ΠΈΡΡ….

Π§Ρ‚ΠΎΠ±Ρ‹ Π²ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ JTextField ΠΌΠ΅ΠΆΠ΄Ρƒ двумя JLabels:

  1. Π’ ΠΎΠΊΠ½Π΅ «ΠŸΠ°Π»ΠΈΡ‚Ρ€Π°» Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ «Π’СкстовоС ΠΏΠΎΠ»Π΅» Π² ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ «Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚ΠΎΠΌ».

  2. НавСдитС курсор Π½Π° Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ: ΠΈ ПсСвдоним: JLabels Π²ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΉ строкС Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ JTextField ΠΏΠ΅Ρ€Π΅ΠΊΡ€Ρ‹Π²Π°Π» ΠΎΠ±Π° ΠΈ выравнивался ΠΏΠΎ ΠΈΡ… Π±Π°Π·ΠΎΠ²Ρ‹ΠΌ линиям. Если Π²Ρ‹ ΡΡ‚ΠΎΠ»ΠΊΠ½ΡƒΠ»ΠΈΡΡŒ с трудностями ΠΏΡ€ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠΈ Π½ΠΎΠ²ΠΎΠ³ΠΎ тСкстового поля, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΈΠ²ΡΠ·Π°Ρ‚ΡŒ Π΅Π³ΠΎ ΠΊ Π»Π΅Π²ΠΎΠΉ Π½Π°ΠΏΡ€Π°Π²Π»ΡΡŽΡ‰Π΅ΠΉ ПсСвдоним 9. 0037 JLabel, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° ΠΏΠ΅Ρ€Π²ΠΎΠΌ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ Π½ΠΈΠΆΠ΅.

  3. Π©Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ JTextField ΠΌΠ΅ΠΆΠ΄Ρƒ Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠΌ: ΠΈ ПсСвдонимом: JLabels.

JTextField Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρƒ двумя JLabels. ΠšΡ€Π°ΠΉΠ½ΠΈΠΉ ΠΏΡ€Π°Π²Ρ‹ΠΉ JLabel смСщаСтся Π²ΠΏΡ€Π°Π²ΠΎ ΠΎΡ‚ JTextField, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΈΡΠΏΠΎΡΠΎΠ±ΠΈΡ‚ΡŒΡΡ ΠΊ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅ΠΌΠΎΠΌΡƒ Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½ΠΎΠΌΡƒ ΡΠΌΠ΅Ρ‰Π΅Π½ΠΈΡŽ.

Нам всС Π΅Ρ‰Π΅ Π½ΡƒΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΎΠ΄Π½ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ JTextField Π² Ρ„ΠΎΡ€ΠΌΡƒ, которая Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ псСвдоним ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π° Π² ΠΏΡ€Π°Π²ΠΎΠΉ части Ρ„ΠΎΡ€ΠΌΡ‹.

Π§Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ JTextField:

  1. Π’ ΠΎΠΊΠ½Π΅ ΠŸΠ°Π»ΠΈΡ‚Ρ€Π° Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ ВСкстовоС ΠΏΠΎΠ»Π΅ ΠΈΠ· ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ Swing.

  2. ΠŸΠ΅Ρ€Π΅ΠΌΠ΅ΡΡ‚ΠΈΡ‚Π΅ курсор Π²ΠΏΡ€Π°Π²ΠΎ ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΊΠΈ ПсСвдоним ΠΈ Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π·ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ тСкстовоС ΠΏΠΎΠ»Π΅.

JTextField становится рядом с JLabel слСва ΠΎΡ‚ Π½Π΅Π³ΠΎ.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ JTextField:

  1. ΠŸΠ΅Ρ€Π΅Ρ‚Π°Ρ‰ΠΈΡ‚Π΅ ΠΌΠ°Ρ€ΠΊΠ΅Ρ€Ρ‹ измСнСния Ρ€Π°Π·ΠΌΠ΅Ρ€Π° JTextField ΠΌΠ΅Ρ‚ΠΊΠΈ ПсСвдоним: , ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ Π·Π°Π΄Π°Ρ‡Π΅, Π²ΠΏΡ€Π°Π²ΠΎ ΠΎΡ‚ ΠΎΠΊΡ€ΡƒΠΆΠ°ΡŽΡ‰Π΅Π³ΠΎ JPanel.

  2. Когда появятся Π½Π°ΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ для Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ выравнивания, ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽΡ‰ΠΈΠ΅ ΠΏΠΎΠ»Π΅ ΠΌΠ΅ΠΆΠ΄Ρƒ тСкстовым ΠΏΠΎΠ»Π΅ΠΌ ΠΈ краями JPanel, отпуститС ΠΊΠ½ΠΎΠΏΠΊΡƒ ΠΌΡ‹ΡˆΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ JTextField.

ΠŸΡ€Π°Π²Ρ‹ΠΉ ΠΊΡ€Π°ΠΉ JTextField выравниваСтся с Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌΡ‹ΠΌ ΠΊΡ€Π°Π΅Π²Ρ‹ΠΌ ΠΏΠΎΠ»Π΅ΠΌ JPanel, ΠΈ GUI Builder опрСдСляСт ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€Π°.

  1. НаТмитС Ctrl-S, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ».

Установка ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ JAVA_HOME Π² Windows | Π¦Π΅Π½Ρ‚Ρ€ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ… Confluence ΠΈ сСрвСр 8.2

Установка Java для Confluence
  • Установка ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ JAVA_HOME Π² Windows
  • Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ производитСля ΠΈΠ»ΠΈ Π²Π΅Ρ€ΡΠΈΡŽ Java, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Confluence
На этой страницС
    Бвязанный ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚
    • Бвязанный ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚ Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½
    ВсС Π΅Ρ‰Π΅ Π½ΡƒΠΆΠ½Π° ΠΏΠΎΠΌΠΎΡ‰ΡŒ?

    БообщСство Atlassian ΠΆΠ΄Π΅Ρ‚ вас.

    Π—Π°Π΄Π°ΠΉΡ‚Π΅ вопрос сообщСству

    Установка ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ JAVA_HOME

    Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ JRE_HOME ΠΈΠ»ΠΈ JAVA_HOME:

    1. НайдитС ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ установки Java

      tip/restingΠ‘ΠΎΠ·Π΄Π°Π½ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Sketch.

      Если Π²Ρ‹ Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΈ ΠΏΡƒΡ‚ΡŒ Π²ΠΎ врСмя установки, это Π±ΡƒΠ΄Π΅Ρ‚ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π²Ρ€ΠΎΠ΄Π΅

      C:\Program Files\Eclipse Adoptium\jdk-11.0.17.8-hotspot\ ΠΈΠ»ΠΈ

      C:\Program Files\Java \jdk-17.0.4.1\

      Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ввСсти , Π³Π΄Π΅ java Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС.

    2. Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΠΎΠ΄Π½ΠΎ ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… дСйствий:
      Windows 7 β€” Π©Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ Мой ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Бвойства > Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ
      Windows 8 β€” ΠŸΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ ΠΊ ПанСль управлСния > БистСма > 90 368 Π Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹Π΅ настройки систСмы
      Windows 10 β€” Поиск для ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ срСды , Π·Π°Ρ‚Π΅ΠΌ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ систСмныС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ срСды
    3. НаТмитС ΠΊΠ½ΠΎΠΏΠΊΡƒ ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ срСды .
    4. Π΄ΠΎ 9 Π»Π΅Ρ‚0368 БистСмныС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ , Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ .
    5. Π’ ΠΏΠΎΠ»Π΅ Variable Name Π²Π²Π΅Π΄ΠΈΡ‚Π΅:
      • JAVA_HOME , Ссли Π²Ρ‹ установили JDK (Java Development Kit)
        , ΠΈΠ»ΠΈ
      • JRE_HOME , Ссли Π²Ρ‹ установили JRE (Java срСды выполнСния)
    6. Π’ ΠΏΠΎΠ»Π΅ Variable Value Π²Π²Π΅Π΄ΠΈΡ‚Π΅ ΠΏΡƒΡ‚ΡŒ установки JDK ΠΈΠ»ΠΈ JRE.

    7. НаТмитС OK ΠΈ ΠŸΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ измСнСния ΠΏΠΎ запросу

    Π’Π°ΠΌ потрСбуСтся Π·Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ ΠΈ снова ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ всС ΠΊΠΎΠΌΠ°Π½Π΄Π½Ρ‹Π΅ ΠΎΠΊΠ½Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Ρ‹Π»ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ Π΄ΠΎ внСсСния этих ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ срСды ΠΈΠ· Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки. Если измСнСния Π½Π΅ вступят Π² силу послС ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ открытия ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°, пСрСзапуститС Windows.

    Π—Π°Π΄Π°ΠΉΡ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ JAVA_HOME Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡƒΡŽ строку

    Если Π²Ρ‹ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°Π΅Ρ‚Π΅ Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ JAVA_HOME (ΠΈΠ»ΠΈ JRE_HOME) Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡƒΡŽ строку:

    1. ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡƒΡŽ строку (ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ ΠΎΡ‚ ΠΈΠΌΠ΅Π½ΠΈ администратора, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ систСмная пСрСмСнная срСды).
    2. УстановитС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ срСды для вашСго ΠΏΡƒΡ‚ΠΈ установки JDK (ΠΈΠ»ΠΈ JRE) ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

       setx /m JAVA_HOME "C:\Program Files\Java\jdk11.0.17.8" 

      ΠŸΠ΅Ρ€Π΅Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡƒΡŽ строку, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ срСды, Π·Π°Ρ‚Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ Π»ΠΈ ΠΎΠ½ΠΈ Π±Ρ‹Π»ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹.