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

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° J2MeΒ». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 26

Автор Автор нСизвСстСн

*/

public RectangleDemo()

}

super ();

addCommand(back); setCommandListener(this);

display.setCurrent (this);

}

/**


РисуСт Π±Π΅Π»Ρ‹ΠΉ отсСкаСмый ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ, эффСктивно ΡΡ‚ΠΈΡ€Π°ΡŽΡ‰ΠΈΠΉ всС, Ρ‡Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΎ Π½Π° Canvas ΠΏΠ΅Ρ€Π΅Π΄ этим.


*/

protected void paintClipRect(Graphics g)

{

int clipX = g.getClipX ();

int clipY = g.getClipY();

int clipH = g.getClipHeight();

int clipW = g.getClipWidth ();

int color = g.getColor();

g. setColor (WHITE);

g. fillRect(clipX, clipY, clipW, clipH);

g. setColor (color);

}

/**


ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ внСшний Π²ΠΈΠ΄ этого подкласса Canvas.


*/

public void paint(Graphics g)

{

paintClipRect(g);

int width = getWidthO; int height = getHeight();

int xO = 5;

int yO = 5;

int barW = 10;

int initHeight = height β€” 10;

int deltaH = 10;

g. drawRect(xO, yO, barW, initHeight);

g. fillRect(xO + barW, yO + deltaH, barW, initHeight β€” deltaH + 1);

g. drawRect(xO + barW " 2, yO + deltaH * 2,

barW, initHeight β€” deltaH * 2);

g. setColor (255, 00, 00); g.fillRect(xO + barΒ» * 3, yO + deltaH * 3,

barW, initHeight β€” deltaH * 3 + 1); g. setColor (0," 0, 0);

g. drawRect(xO + barW * 4, yO + deltaH * 4,

barW, initHeight β€” deltaH * 4);

g. fillRect(xO + barW * 5, yO + deltaH * 5,

barW, initHeight β€” deltaH * 5 + 1);

g. drawRect(xO + barW * 6, yO + deltaH * 6,

barW, initHeight β€” deltaH * 6); g.fillRect(xO + barW * 1, yO + deltaH * 1,

barW, initHeight β€” deltaH * 7 + 1);

}

public void commandAction(Command c, Displayable d)

{

if (c == back)

{

GraphicsDemo.getlnstanceO.display!);

}

}

}


Π”ΡƒΠ³ΠΈ. Класс Graphics Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ рисованиС Π΄ΡƒΠ³. Π§Ρ‚ΠΎΠ±Ρ‹ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ Π΄ΡƒΠ³Ρƒ, Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΡˆΠ΅ΡΡ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ². Π­Ρ‚ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ Ρ€Π°Π·ΠΌΠ΅Ρ€Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉ Π΄ΡƒΠ³Ρƒ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ, Π΅Π΅ Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΉ ΡƒΠ³ΠΎΠ» ΠΈ Π΅Π΅ ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹ΠΉ ΡƒΠ³ΠΎΠ». ΠžΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ опрСдСляСтся Ρ‚Π΅ΠΌΠΈ ΠΆΠ΅ Ρ‡Π΅Ρ‚Ρ‹Ρ€ΡŒΠΌΡ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ΡΡ для ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠΎΠ².

ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° рисования отслСТиваСт Π΄ΡƒΠ³Ρƒ вдоль Π΅Π΅ ΠΏΡƒΡ‚ΠΈ ΠΎΡ‚ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΡƒΠ³Π»Π° ΠΊ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΌΡƒ ΡƒΠ³Π»Ρƒ Π² Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ ΠΏΡ€ΠΎΡ‚ΠΈΠ² часовой стрСлки. Π£Π³ΠΎΠ» Π² 0 градусов располагаСтся вдоль ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ оси X ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π½ΠΎΠΉ плоскости. На рисункС 6.6 ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ‹ Π΄Π²Π΅ Π΄ΡƒΠ³ΠΈ, нарисованныС ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ paint (Graphics g) Π² листингС 6.5.



Рисунок 6.6. Как ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ гСомСтричСскиС Ρ„ΠΈΠ³ΡƒΡ€Ρ‹, Π΄ΡƒΠ³ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ нарисованы Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΠΊΠΎΠ½Ρ‚ΡƒΡ€Π° ΠΈΠ»ΠΈ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Π½Ρ‹ΠΌΠΈ


Листинг 6.5. Π”ΡƒΠ³ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ нарисованы Π² Π²ΠΈΠ΄Π΅ очСртания ΠΈΠ»ΠΈ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Π½Ρ‹ΠΌΠΈ, ΠΊΠ°ΠΊ ΠΈ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠΈ


import javax.microedition.lcdui.*;

/**


ДСмонстрируСт рисованиС Π΄ΡƒΠ³ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ класса Graphics.

@смотри javax.microedition.lcdui.Graphics


*/

public class ArcDemo extends Canvas

implements ComraandListener

{

public void paint(Graphics g)

{

paintClipRect(g);

}

int width = getWidth();

int height = getHeight ();

g. drawArc(5, 5, 80, 40, 90, 300);

g. fillArc(5, 60, 80, 40, 0, 250);

}

.

}


ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ вторая Π΄ΡƒΠ³Π° Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Π° ΠΈ Ρ‡Ρ‚ΠΎ ΠΎΠ½Π° Π±Ρ‹Π»Π° создана с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° fillArc () вмСсто ΠΌΠ΅Ρ‚ΠΎΠ΄Π° drawArc ().


ВСкст. Класс Graphics Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ «рисованиС» тСкстовых символов Π² Canvas. Π’Ρ€ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°, пСрСчислСнныС Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ 6.4, ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ класса Canvas, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΠΌΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ тСкста Π² Canvas.


Π’Π°Π±Π»ΠΈΡ†Π° 6.4. ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ класса Canvas, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ тСкста Π½Π° Canvas


НазваниС ΠΌΠ΅Ρ‚ΠΎΠ΄Π° отобраТСния тСкста Π² Canvas β€” ОписаниС

public void drawString(String str, int x, int y, int anchor) β€” РисуСт символы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΡŽΡ‚ ΡΡ‚Ρ€ΠΎΠΊΠΎΠ²ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ с ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ привязки Π² ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ, опрСдСляСмой ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π°ΠΌΠΈ (Ρ…, Ρƒ]

public void drawSubstring(String str, int offset, int len, int x, int y, int anchor) β€” РисуСт символы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΡŽΡ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ подстроки, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΠ΅ΠΌΡƒΡŽ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ ΠΈ сдвигом, с ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ привязки Π² ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ, опрСдСляСмой ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π°ΠΌΠΈ (Ρ…, Ρƒ)

public void drawChar (Char char, int x, int y, int anchor) β€” РисуСт символ с ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ привязки Π² ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ, опрСдСляСмой ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π°ΠΌΠΈ (Ρ…, Ρƒ)


Π­Ρ‚ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π²Ρ‹Ρ‡ΠΈΡΠ»ΡΡŽΡ‚ Π²ΠΎΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΡ‹ΠΉ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ описываСт Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ области, Π·Π°Π½ΠΈΠΌΠ°Π΅ΠΌΠΎΠΉ тСкстом, Π²ΠΎΠΊΡ€ΡƒΠ³ тСкста, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠ·ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° рисункС 6.7. Π Π°Π·ΠΌΠ΅Ρ€Ρ‹ этого ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ° зависят ΠΎΡ‚ Π΄Π»ΠΈΠ½Ρ‹ строки ΠΈ ΡˆΡ€ΠΈΡ„Ρ‚Π°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ³ΠΎ для отобраТСния.

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

На рисункС 6.7 ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ‹ ΡˆΠ΅ΡΡ‚ΡŒ Ρ‚ΠΎΡ‡Π΅ΠΊ привязки для рСгулирования располоТСния ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ°, ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°ΡŽΡ‰Π΅Π³ΠΎ Ρ‚Π΅ΠΊΡΡ‚ΠΎΠ²ΡƒΡŽ строку. Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ‚ΠΎΡ‡ΠΊΠΈ привязки Π½Π° самом Π΄Π΅Π»Π΅ являСтся Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π½Π° Ρ‚ΠΎΡ‡ΠΊΡƒ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°ΡŽΡ‰Π΅Π³ΠΎ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ°. Π”Π²Π° Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ Ρ‚ΠΎΡ‡ΠΊΠΈ привязки: Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½Π°Ρ ΠΈ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½Π°Ρ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ. Π’ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ 6.5 описаны ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ ΠΈΡ… константы класса Graphics. Они ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ public static final int.



Рисунок 6.7. ВСкст «рисуСтся» Π² Π³Ρ€Π°Π½ΠΈΡ†Π°Ρ… Π²ΠΎΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΠΎΠ³ΠΎ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°ΡŽΡ‰Π΅Π³ΠΎ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ вычисляСтся стандартными тСкстовыми ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π°ΠΌΠΈ


НСкоторый ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΡ‹ΠΉ тСкст


Π’Π°Π±Π»ΠΈΡ†Π° 6.5. ГрафичСскиС константы для опрСдСлСния ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈ привязки-Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ


ΠšΠΎΠ½ΡΡ‚Π°Π½Ρ‚Π° привязки β€” ОписаниС

static int LEFT β€” Π Π°Π·ΠΌΠ΅Ρ‰Π°Π΅Ρ‚ Π»Π΅Π²Ρ‹ΠΉ ΠΊΡ€Π°ΠΉ Ρƒ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ Ρ…

static int HCENTER β€” Π Π°Π·ΠΌΠ΅Ρ‰Π°Π΅Ρ‚ Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ Ρ†Π΅Π½Ρ‚Ρ€ Ρƒ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ Ρ…

static int RIGHT β€” Π Π°Π·ΠΌΠ΅Ρ‰Π°Π΅Ρ‚ ΠΏΡ€Π°Π²Ρ‹ΠΉ ΠΊΡ€Π°ΠΉ Ρƒ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ Ρ…

static int TOP β€” Π Π°Π·ΠΌΠ΅Ρ‰Π°Π΅Ρ‚ Π²Π΅Ρ€Ρ… Ρƒ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ Ρƒ

static int BASELINE β€” Π Π°Π·ΠΌΠ΅Ρ‰Π°Π΅Ρ‚ ниТнюю строку тСкста Ρƒ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ Ρƒ

static int BOTTOM β€” Π Π°Π·ΠΌΠ΅Ρ‰Π°Π΅Ρ‚ Π½ΠΈΠ· ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°ΡŽΡ‰Π΅Π³ΠΎ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ° Ρƒ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ Ρƒ

static int VCENTER β€” Волько для ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Π΅Ρ‚ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ†Π΅Π½Ρ‚Ρ€ изобраТСния Ρƒ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ Ρƒ


Класс Graphics описываСт эти константы для Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΡ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½ΠΎΠΉ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ, Π° Ρ‚Π°ΠΊΠΆΠ΅ опрСдСляСт значСния для Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΡ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠΉ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ.

На рисункС 6.8 ΠΏΠΎΠΊΠ°Π·Π°Π½ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ тСкст, ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΡ‹ΠΉ Π½Π° Canvas, Π° Π² листингС 6.6 ΠΏΠΎΠΊΠ°Π·Π°Π½ ΠΌΠ΅Ρ‚ΠΎΠ΄ paint (Graphics g) исходного ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΅Π³ΠΎ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚.




Рисунок 6.8. Π§Ρ‚ΠΎΠ±Ρ‹ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ тСкст, ΡƒΠΊΠ°ΠΆΠΈΡ‚Π΅ мСстополоТСниС Π΅Π³ΠΎ Ρ‚ΠΎΡ‡ΠΊΠΈ привязки. РисуйтС Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ тСкст, опрСдСляя мСстополоТСниС ΠΈ отобраТая ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ символ тСкста


Листинг 6.6. Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ тСкст, ΡƒΠΊΠ°ΠΆΠΈΡ‚Π΅ Ρ‚ΠΎΡ‡ΠΊΡƒ привязки ΠΈ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ Ρ‚ΠΎΡ‡ΠΊΠΈ привязки. Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΡˆΡ€ΠΈΡ„Ρ‚ тСкста, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½


import javax.microedition.lcdui.Canvas;

import javax.microedition.lcdui.Command;

import javax.rnicroedition.lcdui.CornmandListener;

import javax.microedition.lcdui.Display;

import javax.microedition.lcdui.Displayable;

import javax.microedition.lcdui.Font;

import javax.microedition.lcdui.Graphics;

/**


ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ тСкст, «нарисованный» Π² Canvas.

ДСмонстрируСт использованиС ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€ рисования тСкста Π² Graphics.

@смотри javax.microedition.lcdui.Graphics


*/

public class TextDemo extends Canvas

implements CommandListener

}

public void paint(Graphics g)

}

paintClipRect(g);

int width = getWidth (); int height = "getHeight ();

g. setFont(Font.getDefault Font());

g. drawStriny("Default", 5, 30, Graphics.LEFT I Graphics.BOTTOM);

g. setFont (Font.get Font (Font.FACE_SYSTEM, Font.STYLE_PLAIN,

Font.SIZE_LARGE)); g.drawstring("Large", 5, 53, Graphics.LEFT | Graphics.BOTTOM);

g. set Font(Font.getFont(Font.FACE_MONOSPACE, Font.STYLE_ITALIC,

Font.SIZE_MEDIUM));

g. drawString("Medium", 5, 71, Graphics.LEFT I Graphics.BOTTOM);

g. set Font(Font.get Font(Font.FACE_PROPORTIONAL, Font.STYLE_UNDERLINED,

Font.SIZE_SMALL));

g. drawString("Small", 5, 90, Graphics.LEFT I Graphics.BOTTOM);

g. setFont(Font.getFont(Font.FACE_MONOSPACE, Font.STYLE_BOLD,

Font.SIZE_MEDIUM));

g. drawString ("V", width β€” 10, 20, Graphics.RIGHT I Graphics.BOTTOM)

g. drawStringC'E", width β€” 10, 32, Graphics.RIGHT I Graphics.BOTTOM)

g. drawString("R", width β€” 10, 44, Graphics.RIGHT I Graphics.BOTTOM)

g. drawStringC'T", width β€” 10, 56, Graphics.RIGHT I Graphics.BOTTOM)

g. drawString("I", width β€” 10, 68, Graphics.RIGHT I Graphics.BOTTOM)

g. drawString ("C", width β€” 10, 80, Graphics.RIGHT | Graphics.BOTTOM)

g. drawStringC'A", width β€” 10, 92, Graphics.RIGHT I Graphics.BOTTOM) g.drawString ("L", width β€” 10, 104, Graphics.RIGHT I Graphics.BOTTOM);

g. drawChar('B', width β€” 25, 20, Graphics.RIGHT | Graphics.BOTTOM);

g. drawChar(0, width β€” 25, 32, Graphics.RIGHT I Graphics.BOTTOM);:

g. drawChar('L', width β€” 25, 44, Graphics.RIGHT I Graphics.BOTTOM);:

g. drawChar ('D', width β€” 25, 56, Graphics.RIGHT I Graphics.BOTTOM);


}

.

}


Π­Ρ‚Π° дСмонстрационная ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚, Π³Π΄Π΅ Ρ€Π°Π·ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ тСкстовыС строки Β«DefaultΒ», Β«LargeΒ», Β«MediumΒ» ΠΈ Β«SmallΒ», располагая основныС Π»ΠΈΠ½ΠΈΠΈ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΡ… ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠΎΠ². ВСкст Ρ‚Π°ΠΊΠΆΠ΅ выравниваСтся ΠΏΠΎ Π»Π΅Π²ΠΎΠΌΡƒ ΠΊΡ€Π°ΡŽ. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ логичСский OR Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½ΠΎΠΉ ΠΈ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊ привязки (LEFT | BOTTOM) ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ привязки.

Π”Π²Π΅ строки Β«BOLDΒ» ΠΈ Β«VERTICALΒ» нарисованы Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎ простым Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ΠΌ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… символов с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° drawChar(). Они ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ΡΡ сдвигом ΠΎΡ‚ ΠΏΡ€Π°Π²ΠΎΠ³ΠΎ края дисплСя. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈ привязки RIGHT ΠΊΠΎΠ΄ вычисляСт ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡ€Π°Π²ΠΎΠ³ΠΎ края ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°ΡŽΡ‰Π΅Π³ΠΎ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ°, вычитая Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ количСство пиксСлСй ΠΈΠ· ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ ΠΊΡ€Π°ΠΉΠ½Π΅Π³ΠΎ справа пиксСля дисплСя.