Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«Java: руководство для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ… (Π›ΠŸ)Β». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 113

Автор Π¨ΠΈΠ»Π΄Ρ‚ Π“Π΅Ρ€Π±Π΅Ρ€Ρ‚

Какой ΠΌΠ΅Ρ‚ΠΎΠ΄ вызываСтся ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ Π² Π½Π°Ρ‡Π°Π»Π΅ выполнСния Π°ΠΏΠΏΠ»Π΅Ρ‚Π°? Какой ΠΌΠ΅Ρ‚ΠΎΠ΄ вызываСтся, ΠΊΠΎΠ³Π΄Π° Π°ΠΏΠΏΠ»Π΅Ρ‚ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΡƒΠ΄Π°Π»Π΅Π½ ΠΈΠ· систСмы?

ΠŸΠΎΡ‡Π΅ΠΌΡƒ Π² Π°ΠΏΠΏΠ»Π΅Ρ‚Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ постоянно, слСдуСт ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ?

Π’ΠΈΠ΄ΠΎΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚Π΅ Π°ΠΏΠΏΠ»Π΅Ρ‚, созданный Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ для опробования 14.1, Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π² Π½Π΅ΠΌ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π»Π°ΡΡŒ символьная строка, пСрСдаваСмая Π΅ΠΌΡƒ Π² качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°. Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒ врСмя Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ (Π² миллисСкундах) ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ сдвигами символов строки.

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Π·Π°Π΄Π°Π½ΠΈΠ΅. Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Π°ΠΏΠΏΠ»Π΅Ρ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π» Π±Ρ‹ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ врСмя, обновляя содСрТимоС своСго ΠΎΠΊΠ½Π° ΠΊΠ°ΠΆΠ΄ΡƒΡŽ сСкунду. Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒΡΡ с этим Π·Π°Π΄Π°Π½ΠΈΠ΅ΠΌ, Π²Π°ΠΌ придСтся провСсти Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ изыскания. Для Π½Π°Ρ‡Π°Π»Π° ΠΏΡ€ΠΈΠΌΠΈΡ‚Π΅ ΠΊ свСдСнию ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ подсказку: ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ врСмя ΠΌΠΎΠΆΠ½ΠΎ, воспользовавшись ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ класса Calendar, относящСгося ΠΊ ΠΏΠ°ΠΊΠ΅Ρ‚Ρƒ java.util.(Напомним, Ρ‡Ρ‚ΠΎ компания Oracle прСдоставляСт ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎ Π΄ΠΎΡΡ‚ΡƒΠΏΠ½ΡƒΡŽ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ Π½Π° всС стандартныС классы Java.) ΠŸΡ€ΠΈΠΎΠ±Ρ€Π΅Ρ‚Π΅Π½Π½Ρ‹Ρ… Π²Π°ΠΌΠΈ Π΄ΠΎ сих ΠΏΠΎΡ€ Π·Π½Π°Π½ΠΈΠΉ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ достаточно для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ класс Calendar ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ для выполнСния этого задания.

ΠŸΠΎΡΡΠ½ΠΈΡ‚Π΅ Π²ΠΊΡ€Π°Ρ‚Ρ†Π΅, ΠΊΠ°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ дСйствуСт модСль дСлСгирования событий Π² Java.

Π”ΠΎΠ»ΠΆΠ΅Π½ Π»ΠΈ ΠΏΡ€ΠΈΠ΅ΠΌΠ½ΠΈΠΊ событий Π±Ρ‹Ρ‚ΡŒ зарСгистрирован Π² ΠΈΡ… источникС?

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Π·Π°Π΄Π°Π½ΠΈΠ΅. Π‘Ρ€Π΅Π΄ΠΈ языковых срСдств Java для отобраТСния ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ имССтся ΠΌΠ΅Ρ‚ΠΎΠ΄ drawLine (). Он рисуСт Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΌ Ρ†Π²Π΅Ρ‚ΠΎΠΌ ΠΏΡ€ΡΠΌΡƒΡŽ линию ΠΌΠ΅ΠΆΠ΄Ρƒ двумя Ρ‚ΠΎΡ‡ΠΊΠ°ΠΌΠΈ. Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ относится ΠΊ классу Graphics. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ drawLine (), Π½Π°ΠΏΠΈΡˆΠΈΡ‚Π΅ Π°ΠΏΠΏΠ»Π΅Ρ‚, ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ ΠΌΡ‹ΡˆΠΈ. Если ΠΊΠ½ΠΎΠΏΠΊΠ° ΠΌΡ‹ΡˆΠΈ Π½Π°ΠΆΠ°Ρ‚Π°, Π°ΠΏΠΏΠ»Π΅Ρ‚ Π΄ΠΎΠ»ΠΆΠ΅Π½ Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ Π½Π° экранС Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½ΡƒΡŽ линию Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° ΠΊΠ½ΠΎΠΏΠΊΠ° Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΏΡƒΡ‰Π΅Π½Π°.

ΠžΠ±ΡŠΡΡΠ½ΠΈΡ‚Π΅ Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова assert.

ΠŸΡ€ΠΈΠ²Π΅Π΄ΠΈΡ‚Π΅ хотя Π±Ρ‹ ΠΎΠ΄Π½Ρƒ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρƒ, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ ΠΏΠΎΡ‚Ρ€Π΅Π±Π½ΠΎΡΡ‚ΡŒ Π² использовании собствСнного ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ….

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Π·Π°Π΄Π°Π½ΠΈΠ΅. ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ ввСсти ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ события Ρ‚ΠΈΠΏΠ° MouseWheelEvent Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π°ΠΏΠΏΠ»Π΅Ρ‚Π° MouseEvents, рассмотрСнный Ρ€Π°Π½Π΅Π΅ Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ β€œΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ дСлСгирования событий”. Π‘ этой Ρ†Π΅Π»ΡŒΡŽ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠΉΡ‚Π΅ интСрфСйс MouseWheelListener ΠΈ сдСлайтС Π°ΠΏΠΏΠ»Π΅Ρ‚ ΠΏΡ€ΠΈΠ΅ΠΌΠ½ΠΈΠΊΠΎΠΌ события, связанного с ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΊΠΎΠΉ колСсика ΠΌΡ‹ΡˆΠΈ, воспользовавшись ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ addMouseWheelListener (). Для выполнСния этого задания Π²Π°ΠΌ придСтся ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ Π½Π° API языка Java ΠΈ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ с упомянутыми Π²Ρ‹ΡˆΠ΅ срСдствами ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… событий. На этот вопрос ΠΎΡ‚Π²Π΅Ρ‚Π° Π½Π΅ даСтся, поэтому Π²Π°ΠΌ придСтся ΠΏΡ€ΠΈΠ·Π²Π°Ρ‚ΡŒ Π½Π° ΠΏΠΎΠΌΠΎΡ‰ΡŒ свои знания ΠΈ Π½Π°Π²Ρ‹ΠΊΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΠΉΡ‚ΠΈ собствСнноС Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅.

Π“Π»Π°Π²Π° 15 Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² Swing

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ Π½Π°Π²Ρ‹ΠΊΠΈ ΠΈ понятия

ΠŸΡ€ΠΎΠΈΡΡ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΈ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ конструирования Swing

ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°Ρ… ΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°Ρ… Swing

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ полоТСния ΠΎ диспСтчСрах ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠΈ

НаписаниС, компиляция ΠΈ запуск Π½Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ простого Swing-прилоТСния

ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° JButton

Π Π°Π±ΠΎΡ‚Π° с ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠΌ JTextField

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Ρ„Π»Π°ΠΆΠΊΠΎΠ² с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° JCheckBox

Π Π°Π±ΠΎΡ‚Π° с ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠΌ JList

ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π°Π½ΠΎΠ½ΠΈΠΌΠ½Ρ‹Ρ… Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΡ… классов для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ событий

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π°ΠΏΠΏΠ»Π΅Ρ‚Π° срСдствами Swing

ВсС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹Π΅ Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… Π³Π»Π°Π²Π°Ρ… Π² качСствС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°, Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ Π°ΠΏΠΏΠ»Π΅Ρ‚ΠΎΠ², рассмотрСнных Π² Π³Π»Π°Π²Π΅ 14, Π±Ρ‹Π»ΠΈ ΠΊΠΎΠ½ΡΠΎΠ»ΡŒΠ½Ρ‹ΠΌΠΈ. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π² Π½ΠΈΡ… Π½Π΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΠ»ΠΈΡΡŒ срСдства графичСского ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса. ΠšΠΎΠ½ΡΠΎΠ»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΎΡ‡Π΅Π½ΡŒ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ для изучСния основ Java, Π½ΠΎ Π² Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ… Π±Π΅Π· графичСского ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса просто Π½Π΅ ΠΎΠ±ΠΎΠΉΡ‚ΠΈΡΡŒ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π² послСднСй Π³Π»Π°Π²Π΅ этой ΠΊΠ½ΠΈΠ³ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ рассмотрСна Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Swing соврСмСнных ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹Ρ… срСдств Java, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹Ρ… для создания ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… интСрфСйсов Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ… Π½Π° Java.

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

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

На Π·Π°ΠΌΠ΅Ρ‚ΠΊΡƒΠ‘ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹Π΅ свСдСния ΠΎ Swing ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π² ΠΊΠ½ΠΈΠ³Π΅ Swing: Руководство для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…, Π˜Π” "Π’ΠΈΠ»ΡŒΡΠΌΡ", 2007 Π³.ΠŸΡ€ΠΎΠΈΡΡ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΈ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ конструирования Swing

Π’ Ρ€Π°Π½Π½ΠΈΡ… вСрсиях Java срСдства Swing отсутствовали. МоТно ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ появились Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠΈ ΠΏΡ€Π΅ΠΎΠ΄ΠΎΠ»Π΅Ρ‚ΡŒ трудности, связанныС с использованиСм Π² Java ΠΏΠ΅Ρ€Π²ΠΎΠΉ ΠΎΠΊΠΎΠ½Π½ΠΎΠΉ подсистСмы β€” Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Abstract Window Toolkit (AWT). Π’ этой Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² для создания Π²ΠΏΠΎΠ»Π½Π΅ работоспособных ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… интСрфСйсов, Π½ΠΎ с ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹ΠΌΠΈ возмоТностями. Одним ΠΈΠ· ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ AWT стало ΠΏΡ€Π΅Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ Π΅Π΅ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² Π² ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Π½Π½ΠΎ-зависимыС эквивалСнты, ΠΈΠ»ΠΈ Ρ€Π°Π²Π½ΠΎΠΏΡ€Π°Π²Π½Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ внСшний Π²ΠΈΠ΄ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² AWT опрСдСлялся Π½Π΅ срСдствами Java, Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠΎΠΉ. А ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°Ρ… AWT примСнялся Π² качСствС рСсурса собствСнный ΠΊΠΎΠ΄, Ρ‚ΠΎ ΠΎΠ½ΠΈ Π½Π°Π·Ρ‹Π²Π°Π»ΠΈΡΡŒ тяТСловСсными.

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

ΠŸΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Π»ΠΎΡΡŒ Π½Π΅ слишком ΠΌΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡΠΎΠ·Π½Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ограничСния AWT слишком ΡΠ΅Ρ€ΡŒΠ΅Π·Π½Ρ‹ ΠΈ Π½ΡƒΠΆΠ΅Π½ Π½ΠΎΠ²Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Π² 1997 Π³ΠΎΠ΄Ρƒ появилась Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² Swing, Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Π°Ρ Π² состав Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ классов JFC (Java Foundation Classes). ΠŸΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ Swing использовалась Π² вСрсии Java 1.1 ΠΊΠ°ΠΊ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Π°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°. Но начиная с вСрсии Java 1.2 срСдства,Swing (ΠΊΠ°ΠΊ, Π²ΠΏΡ€ΠΎΡ‡Π΅ΠΌ, ΠΈ ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ элСмСнты JFC) Π±Ρ‹Π»ΠΈ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ Π² Java.

Swing устраняСт ограничСния, присущиС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌ AWT, благодаря использованию Π΄Π²ΡƒΡ… основных срСдств: лСгковСсных ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΡ‹Ρ… стилСй оформлСния. И хотя эти срСдства практичСски Π½Π΅Π·Π°ΠΌΠ΅Ρ‚Π½Ρ‹ для ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΡƒΡŽΡ‰Π΅Π³ΠΎ Π½Π° Java, ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΎΠ½ΠΈ ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ основныС ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ конструирования Swing ΠΈ Π² Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ΅Ρ€Π΅ ΠΎΠ±ΡƒΡΠ»ΠΎΠ²Π»ΠΈΠ²Π°ΡŽΡ‚ возмоТности ΠΈ удобство примСнСния этой Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ. Рассмотрим ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΈΠ· Π½ΠΈΡ… Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ.

ВсС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Swing, Π·Π° нСбольшим ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ, ΡΠ²Π»ΡΡŽΡ‚ΡΡ лСгковСсными, Π° это ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ написаны Π½Π° Java ΠΈ Π½Π΅ зависят ΠΎΡ‚ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π½Π΅ ΠΎΠΏΠΈΡ€Π°ΡŽΡ‚ΡΡ Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Π½Π½ΠΎ-зависимыС Ρ€Π°Π²Π½ΠΎΠΏΡ€Π°Π²Π½Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹. ЛСгковСсныС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΎΠ±Π»Π°Π΄Π°ΡŽΡ‚ рядом сущСствСнных прСимущСств, ΠΊ числу ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… относятся ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ ΠΈ Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ. НапримСр, лСгковСсный ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½Ρ‹ΠΌ ΠΈ Π½Π΅ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½Ρ‹ΠΌ ΠΏΠΎ Ρ„ΠΎΡ€ΠΌΠ΅. ЛСгковСсныС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Π½Π΅ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΡŽΡ‚ΡΡ Π² ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Π½Π½ΠΎ-зависимыС Ρ€Π°Π²Π½ΠΎΠΏΡ€Π°Π²Π½Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, ΠΈ поэтому ΠΈΡ… внСшний Π²ΠΈΠ΄ опрСдСляСт Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Swing, Π° Π½Π΅ базовая опСрационная систСма. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, элСмСнты ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса, созданныС срСдствами Swing, выглядят ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ Π½Π° Ρ€Π°Π·Π½Ρ‹Ρ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ….