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

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° JavaΒ». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 58

Автор Н.А. Вязовик

g.drawLine(0,getHeight()-1, getWidth()-1,0);

g.drawRect(0,0,getWidth()-1, getHeight()-1);

}


Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π²ΠΈΠ΄:



fillRect(int x, int y, int width, int height)

Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π·Π°ΠΊΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ. ЛСвая ΠΈ правая стороны ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ° проходят ΠΏΠΎ линиям x ΠΈ x+width-1 соотвСтствСнно, Π° вСрхняя ΠΈ ниТняя – y ΠΈ y+height-1 соотвСтствСнно. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ всС пиксСлы ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹:


g.fillRect(0, 0, getWidth(), getHeight());

drawOval(int x, int y, int width, int height)

Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ рисуСт ΠΎΠ²Π°Π», вписанный Π² ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ, Π·Π°Π΄Π°Π²Π°Π΅ΠΌΡ‹ΠΉ ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΌΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ. ΠžΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ Ссли ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ ΠΈΠΌΠ΅Π΅Ρ‚ Ρ€Π°Π²Π½Ρ‹Π΅ стороны (Ρ‚.Π΅. являСтся ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚ΠΎΠΌ), ΠΎΠ²Π°Π» становится ΠΎΠΊΡ€ΡƒΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ.

Π‘Π½ΠΎΠ²Π° для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΎΠ²Π°Π» Π² Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹Ρ‡Π΅ΡΡ‚ΡŒ ΠΏΠΎ Π΅Π΄ΠΈΠ½ΠΈΡ†Π΅ ΠΈΠ· ΡˆΠΈΡ€ΠΈΠ½Ρ‹ ΠΈ высоты:


g.drawRect(0, 0, getWidth()-1, getHeight()-1);

g.drawOval(0, 0, getWidth()-1, getHeight()-1);

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚:



fillOval(int x, int y, int width, int height)

Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π·Π°ΠΊΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚ ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ ΠΎΠ²Π°Π».

drawArc(int x, int y, int width, int height, int startAngle, int arcAngle)

Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ рисуСт Π΄ΡƒΠ³Ρƒ – Ρ‡Π°ΡΡ‚ΡŒ ΠΎΠ²Π°Π»Π°, Π·Π°Π΄Π°Π²Π°Π΅ΠΌΠΎΠ³ΠΎ ΠΏΠ΅Ρ€Π²Ρ‹ΠΌΠΈ Ρ‡Π΅Ρ‚Ρ‹Ρ€ΡŒΠΌΡ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ. Π”ΡƒΠ³Π° начинаСтся с ΡƒΠ³Π»Π° startAngle ΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ ΡƒΠ³Π»ΠΎΠ²ΠΎΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ arcAngle. ΠΠ°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΉ ΡƒΠ³ΠΎΠ» соотвСтствуСт Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΡŽ часовой стрСлки, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰Π΅ΠΉ Π½Π° 3 часа. Π£Π³Π»ΠΎΠ²ΠΎΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ отсчитываСтся ΠΏΡ€ΠΎΡ‚ΠΈΠ² часовой стрСлки. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ€Π°Π·ΠΌΠ΅Ρ€ Π² 90 градусов соотвСтствуСт Π΄ΡƒΠ³Π΅ Π² Ρ‡Π΅Ρ‚Π²Π΅Ρ€Ρ‚ΡŒ ΠΎΠ²Π°Π»Π° (Π²Π΅Ρ€Ρ…Π½ΡŽΡŽ ΠΏΡ€Π°Π²ΡƒΡŽ). Π£Π³Π»Ρ‹ "растянуты" Π² соотвСтствии с Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ°. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΡƒΠ³Π»ΠΎΠ²ΠΎΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ Π² 45 градусов всСгда Π·Π°Π΄Π°Π΅Ρ‚ Π³Ρ€Π°Π½ΠΈΡ†Ρƒ Π΄ΡƒΠ³ΠΈ ΠΏΠΎ Π»ΠΈΠ½ΠΈΠΈ, проходящСй ΠΈΠ· Ρ†Π΅Π½Ρ‚Ρ€Π° ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ° Π² Π΅Π³ΠΎ ΠΏΡ€Π°Π²Ρ‹ΠΉ Π²Π΅Ρ€Ρ…Π½ΠΈΠΉ ΡƒΠ³ΠΎΠ».

fillArc(int x, int y, int width, int height, int startAngle, int arcAngle)

Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π·Π°ΠΊΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚ сСктор, ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹ΠΉ Π΄ΡƒΠ³ΠΎΠΉ, Π·Π°Π΄Π°Π²Π°Π΅ΠΌΠΎΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ.

drawString(String text, int x, int y)

Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Π½Π° экран тСкст, Π·Π°Π΄Π°Π²Π°Π΅ΠΌΡ‹ΠΉ ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ. Π’ΠΎΡ‡ΠΊΠ° (x, y) Π·Π°Π΄Π°Π΅Ρ‚ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ самого Π»Π΅Π²ΠΎΠ³ΠΎ символа. Для наглядности ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€:


g.drawString("abcdefgh", 15, 15);

g.drawLine(15, 15, 115, 15);

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ Π±ΡƒΠ΄Π΅Ρ‚:



БостояниС Graphics

ЭкзСмпляр класса Graphics Ρ…Ρ€Π°Π½ΠΈΡ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ для отрисовки. Рассмотрим ΠΈΡ… ΠΏΠΎ порядку.

Π¦Π²Π΅Ρ‚

ΠžΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ для отрисовки Π»ΠΈΠ½ΠΈΠΉ, ΠΎΠ²Π°Π»ΠΎΠ², тСкста ΠΈ Ρ‚.Π΄. Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΡ‚ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠΉ Ρ†Π²Π΅Ρ‚. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΎΠ½ задаСтся свойством foreground ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°. Π’ любой ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° setColor.

Рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€:


public void paint(Graphics g) {

for (int i=0; i<4; i++) {

for (int j=0; j<4; j++) {

int c = (int)((i+j)*255/6);

g.setColor(new Color(c, c, c));

g.fillRect(i*getWidth()/4, j*getHeight()/4, getWidth()/4, getHeight()/4);

}

}

}


Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π²ΠΈΠ΄:



Π£Π·Π½Π°Ρ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ†Π²Π΅Ρ‚Π° для отрисовки ΠΌΠΎΠΆΠ½ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° getColor.

Π¨Ρ€ΠΈΡ„Ρ‚

ΠœΠ΅Ρ‚ΠΎΠ΄ drawString Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°, Π·Π°Π΄Π°ΡŽΡ‰Π΅Π³ΠΎ ΡˆΡ€ΠΈΡ„Ρ‚ для Π²Ρ‹Π²ΠΎΠ΄Π° тСкста Π½Π° экран. Π­Ρ‚ΠΎΡ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Ρ‚Π°ΠΊΠΆΠ΅ являСтся Ρ‡Π°ΡΡ‚ΡŒΡŽ состояния Graphics. Π•Π³ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ задаСтся ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ свойством ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° setFont. Для получСния Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ значСния слуТит ΠΌΠ΅Ρ‚ΠΎΠ΄ getFont.

Clip (ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚Π΅Π»ΡŒ)

Π₯отя ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ класса Graphics ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Π»ΡŽΠ±Ρ‹Π΅ значСния Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ², Π·Π°Π΄Π°ΡŽΡ‰ΠΈΡ… значСния ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ (Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… Ρ‚ΠΈΠΏΠ° int ), сущСствуСт Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚Π΅Π»ΡŒ – clip. Π›ΡŽΠ±Ρ‹Π΅ измСнСния Π²Π½Π΅ этого ограничитСля Π½Π° экранС ΠΏΠΎΡΠ²Π»ΡΡ‚ΡŒΡΡ Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚. НапримСр, Ссли Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ drawLine(-100, -100, 1000, 1000), Ρ‚ΠΎ Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π΅ отобразится лишь Ρ‡Π°ΡΡ‚ΡŒ Π»ΠΈΠ½ΠΈΠΈ, которая помСщаСтся Π² Π΅Π³ΠΎ Π³Ρ€Π°Π½ΠΈΡ†Ρ‹.

Π Π°Π·ΠΌΠ΅Ρ€Ρ‹ ограничитСля ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ. ΠœΠ΅Ρ‚ΠΎΠ΄ clipRect(int x, int y, int width, int height) вычисляСт пСрСсСчСниС ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ° ΠΈ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ области clip. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ станСт Π½ΠΎΠ²Ρ‹ΠΌ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚Π΅Π»Π΅ΠΌ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, этот ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΡΡƒΠΆΠ°Ρ‚ΡŒ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ clip. ΠœΠ΅Ρ‚ΠΎΠ΄ setClip(int x, int y, int width, int height) устанавливаСт ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚Π΅Π»ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎ Π² Ρ„ΠΎΡ€ΠΌΠ΅ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ°. ΠœΠ΅Ρ‚ΠΎΠ΄ getClipBounds Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² Π²ΠΈΠ΄Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Rectangle.

ΠŸΡ€ΠΈ появлСнии прилоТСния Π½Π° экранС ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Π²ΠΈΠ΄ΠΈΠΌΡ‹ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ отрисован ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠΌ Π²Ρ‹Π·ΠΎΠ²Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° paint, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, ΠΎΠ±Π»Π°ΡΡ‚ΡŒ clip совпадаСт с Π³Ρ€Π°Π½ΠΈΡ†Π°ΠΌΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°. Однако ΠΏΡ€ΠΈ дальнСйшСй Ρ€Π°Π±ΠΎΡ‚Π΅ это Π½Π΅ всСгда Ρ‚Π°ΠΊ.

Рассмотрим ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€:


public void paint(Graphics g) {

Color c = new Color(

(int)(Math.random()*255),

(int)(Math.random()*255),

(int)(Math.random()*255));

g.setColor(c);

//g.setClip(null);

g.fillRect(0, 0, getWidth(), getHeight());

}


Как Π²ΠΈΠ΄Π½ΠΎ ΠΈΠ· ΠΊΠΎΠ΄Π°, ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Π²Ρ‹Π·ΠΎΠ²Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° paint гСнСрируСтся Π½ΠΎΠ²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ†Π²Π΅Ρ‚Π°, послС Ρ‡Π΅Π³ΠΎ этим Ρ†Π²Π΅Ρ‚ΠΎΠΌ Π·Π°ΠΊΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚ΡΡ вСсь ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚. Однако ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π² Graphics Π΅ΡΡ‚ΡŒ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚Π΅Π»ΡŒ, Π·Π°ΠΊΡ€Π°ΡˆΠ΅Π½Π° Π±ΡƒΠ΄Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ clip, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π΅Π΅ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ.

ПослС запуска ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΎΠΊΡ€Π°ΡˆΠ΅Π½ ΠΎΠ΄Π½ΠΈΠΌ Ρ†Π²Π΅Ρ‚ΠΎΠΌ. Если Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΡ‹ΡˆΠΈ "Π²Π·ΡΡ‚ΡŒ" ΠΎΠΊΠ½ΠΎ ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ прилоТСния ΠΈ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ "провСсти" ΠΈΠΌ ΠΏΠΎΠ²Π΅Ρ€Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°, Ρ‚ΠΎ ΠΎΠ½ окрасится ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ (лСвая ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ°):



Если ΠΆΠ΅ провСсти быстро, Ρ‚ΠΎ получится ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ°, подобная ΠΏΡ€Π°Π²ΠΎΠΉ Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π²Ρ‹ΡˆΠ΅. Π₯ΠΎΡ€ΠΎΡˆΠΎ Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ пСрСрисовываСтся Π½Π΅ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ, Π° частями. ΠžΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚Π΅Π»ΡŒ выставляСтся Π² соотвСтствии с Ρ‚ΠΎΠΉ ΠΎΠ±Π»Π°ΡΡ‚ΡŒΡŽ, которая оказалась "ΠΏΠΎΠ²Ρ€Π΅ΠΆΠ΄Π΅Π½Π°" ΠΈ нуТдаСтся Π² пСрСрисовкС. Для слоТных ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ ввСсти Π»ΠΎΠ³ΠΈΠΊΡƒ, которая, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ clip, Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚Ρ€ΠΈΡΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ Π½Π΅ всС элСмСнты, Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ· Π½ΠΈΡ…, для увСличСния ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ.

Π’ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π·Π°ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π° ΠΎΠ΄Π½Π° строка, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ пСрСдаСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ null Π² ΠΌΠ΅Ρ‚ΠΎΠ΄ setClip. Π’Π°ΠΊΠΎΠΉ Π²Ρ‹Π·ΠΎΠ² снимаСт всС ограничСния, поэтому ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΊΡ€Π°ΡˆΠΈΠ²Π°Ρ‚ΡŒΡΡ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ, мСняя ΠΏΡ€ΠΈ этом Ρ†Π²Π΅Ρ‚. Однако Π½ΠΈΠΊΠ°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ нСльзя ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ состояниС пиксСлов Π²Π½Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° – ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚Π΅Π»ΡŒ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΡˆΠΈΡ€Π΅, Ρ‡Π΅ΠΌ Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°.

ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ repaint ΠΈ update

ΠšΡ€ΠΎΠΌΠ΅ paint Π² классС Component ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Ρ‹ Π΅Ρ‰Π΅ Π΄Π²Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π°, ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‰ΠΈΠ΅ Π·Π° прорисовку ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°. Как Π±Ρ‹Π»ΠΎ рассмотрСно, Π²Ρ‹Π·ΠΎΠ² paint инициируСтся ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмой, Ссли Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΊΠ½ΠΎ прилоТСния, ΠΈΠ»ΠΈ Ρ‡Π°ΡΡ‚ΡŒ Π΅Π³ΠΎ. Однако ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ внСшний Π²ΠΈΠ΄, Ρ€ΡƒΠΊΠΎΠ²ΠΎΠ΄ΡΡ‚Π²ΡƒΡΡΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΉ Π»ΠΎΠ³ΠΈΠΊΠΎΠΉ. НапримСр, ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ вычислСния, ΠΈΠ»ΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΡΠ΅Ρ‚ΡŒΡŽ. МоТно ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ состояниС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° (Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π΅Π³ΠΎ ΠΏΠΎΠ»Π΅ΠΉ), Π½ΠΎ опСрационная систСма Π½Π΅ отслСдит Ρ‚Π°ΠΊΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΈ Π½Π΅ ΠΈΠ½ΠΈΡ†ΠΈΠΈΡ€ΡƒΠ΅Ρ‚ пСрСрисовку.

Для ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΉ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ пСрСрисовки ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° слуТит ΠΌΠ΅Ρ‚ΠΎΠ΄ repaint. ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, Ρƒ Π½Π΅Π³ΠΎ Π½Π΅Ρ‚ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° Ρ‚ΠΈΠΏΠ° Graphics, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ программист Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ экзСмпляры этого класса (Ρ‚ΠΎΡ‡Π½Π΅Π΅, Π΅Π³ΠΎ наслСдников, вСдь Graphics – абстрактный класс). ΠœΠ΅Ρ‚ΠΎΠ΄ repaint ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ Π±Π΅Π· Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ². Π’ этом случаС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Π±ΡƒΠ΄Π΅Ρ‚ пСрСрисован максимально быстро. МоТно ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ Ρ‚ΠΈΠΏΠ° long – количСство миллисСкунд. БистСма ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ пСрСрисовку спустя ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ΅ врСмя. МоТно ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ числа Ρ‚ΠΈΠΏΠ° int ( x, y, width, height ), задавая ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΡƒΡŽ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°, которая нуТдаСтся Π² пСрСрисовкС. НаконСц, ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ всС 5 ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² – ΠΈ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΡƒ ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, ΠΈ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ пСрСрисовки.

Если пСрСрисовка инициируСтся ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ, Ρ‚ΠΎ систСма Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ paint, Π° ΠΌΠ΅Ρ‚ΠΎΠ΄ update. Π£ Π½Π΅Π³ΠΎ ΡƒΠΆΠ΅ Π΅ΡΡ‚ΡŒ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ Ρ‚ΠΈΠΏΠ° Graphics ΠΈ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΎΠ½ лишь Π·Π°ΠΊΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚ всю ΠΎΠ±Π»Π°ΡΡ‚ΡŒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Ρ„ΠΎΠ½ΠΎΠ²Ρ‹ΠΌ Ρ†Π²Π΅Ρ‚ΠΎΠΌ (свойство background ), Π° Π·Π°Ρ‚Π΅ΠΌ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ paint. Π—Π°Ρ‡Π΅ΠΌ ΠΆΠ΅ Π±Ρ‹Π»ΠΎ Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ этот Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄, Ссли ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ сразу Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ paint? Π”Π΅Π»ΠΎ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ пСрСрисовка инициируСтся ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ, для слоТных ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² становится Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠΉ нСкоторая оптимизация обновлСния внСшнСго Π²ΠΈΠ΄Π°. НапримСр, Ссли ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² появлСнии Π½ΠΎΠ²ΠΎΠ³ΠΎ графичСского элСмСнта, Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠΉ пСрСрисовки ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… элСмСнтов – ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ update ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² Π½Π΅ΠΌ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½ΠΎΠ²ΠΎΠ³ΠΎ элСмСнта. Если ΠΆΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΡ€ΠΎΡΡ‚ΡƒΡŽ структуру, ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ update Π±Π΅Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ.

ΠŸΡ€ΠΎΡ€ΠΈΡΠΎΠ²ΠΊΠ° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΊΠΎΠ³Π΄Π° извСстно, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ прорисовка ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°, ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Π΅ΠΌ ΠΊ Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Π½ΠΈΡŽ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°. Для Π΅Π³ΠΎ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠ³ΠΎ отобраТСния Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π΄Π²Π° дСйствия. Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ сам ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€, вСдь ΠΎΠ½ являСтся наслСдником ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, Π° Π·Π½Π°Ρ‡ΠΈΡ‚, ΠΈΠΌΠ΅Π΅Ρ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ paint, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ для задания особСнного внСшнСго Π²ΠΈΠ΄Π° Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°. Π’ΠΎ-Π²Ρ‚ΠΎΡ€Ρ‹Ρ…, ΠΈΠ½ΠΈΡ†ΠΈΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ отрисовку всСх ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ², Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… Π² Π½Π΅Π³ΠΎ.

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

Если ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ Π½Π΅ пустой, Π·Π½Π°Ρ‡ΠΈΡ‚, Π² Π½Π΅ΠΌ Π΅ΡΡ‚ΡŒ ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ нСсколько ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚. Они Π±ΡƒΠ΄ΡƒΡ‚ отрисованы ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π² Ρ‚ΠΎΠΌ порядкС, Π² ΠΊΠ°ΠΊΠΎΠΌ Π±Ρ‹Π»ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹. Однако нСдостаточно просто Π² Ρ†ΠΈΠΊΠ»Π΅ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ paint для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°.

Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, Ссли ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Π½Π΅Π²ΠΈΠ΄ΠΈΠΌΠ° (свойство visible выставлСно Π² false ), Ρ‚ΠΎ, ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, ΠΌΠ΅Ρ‚ΠΎΠ΄ paint Ρƒ Π½Π΅Π΅ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒΡΡ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½.