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

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

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

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ подкласс Canvas ΠΈΠΌΠ΅Π΅Ρ‚ доступ ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ Graphics. Π­Ρ‚ΠΎΡ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Graphics являСтся ΠΊΠΎΠΏΠΈΠ΅ΠΉ графичСского контСкста устройства ΠΈ ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅Ρ‚ зависящий ΠΎΡ‚ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ графичСский контСкст устройства, ΡΠ²Π»ΡΡŽΡ‰ΠΈΠΉΡΡ Ρ‡Π°ΡΡ‚ΡŒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы устройства.

ΠžΠ±ΡŠΠ΅ΠΊΡ‚ Graphics, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅, создан Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ Canvas ΠΏΡ€ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Canvas. Π­Ρ‚ΠΎ ΠΎΠ΄Π½Π° ΠΈΠ· Π³Π»Π°Π²Π½Ρ‹Ρ… ΠΏΡ€ΠΈΡ‡ΠΈΠ½, ΠΏΠΎΡ‡Π΅ΠΌΡƒ Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ ваш конструктор подкласса Canvas Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ super()! РСализация пСрСсылаСт графичСский ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π² ваш Canvas, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ вашСго класса paint (Graphics g).


Класс Graphics

Класс Graphics ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ абстракции:

β€” Ρ€ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ Π·Π°Π»ΠΈΠ²ΠΊΠ° Π΄Π²ΡƒΡ…ΠΌΠ΅Ρ€Π½Ρ‹Ρ… гСомСтричСских Ρ„ΠΈΠ³ΡƒΡ€;

β€” Π²Ρ‹Π±ΠΎΡ€ Ρ†Π²Π΅Ρ‚ΠΎΠ² для графичСской Ρ€ΡƒΡ‡ΠΊΠΈ;

β€” Π²Ρ‹Π±ΠΎΡ€ ΡˆΡ€ΠΈΡ„Ρ‚ΠΎΠ² для рисования тСкста;

β€” ΠΎΡ‚сСчСниС областСй для рисования (clipping);

β€” ΠΏΠ΅Ρ€Π΅Π½ΠΎΡ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π½ΠΎΠΉ систСмы Graphics.


Устройства Ρ€Π°Π·Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ Π² своСй ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ², Ρ‚Π°ΠΊΠΈΡ…, ΠΊΠ°ΠΊ Ρ†Π²Π΅Ρ‚. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ класс Display прСдоставляСт ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹:


public int isColorO

public int numColors()


Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ΅ Π΄Π°Π½Π½Ρ‹ΠΌ устройством Ρ†Π²Π΅Ρ‚Π° ΠΈ количСствС прСдоставляСмых Ρ†Π²Π΅Ρ‚ΠΎΠ² ΠΈΠ»ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ΅ ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ числа ΡƒΡ€ΠΎΠ²Π½Π΅ΠΉ ΡˆΠΊΠ°Π»Ρ‹ сСрого Ρ†Π²Π΅Ρ‚Π° для устройств, Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΡ… Ρ†Π²Π΅Ρ‚.

ΠŸΠ΅Ρ€Π²ΠΎΡΡ‚Π΅ΠΏΠ΅Π½Π½ΠΎΠΉ абстракциСй, опрСдСляСмой классом Graphics, являСтся прСдставлСниС ΠΎ Canvas, ΠΊΠ°ΠΊ ΠΎ Π΄Π²ΡƒΡ…ΠΌΠ΅Ρ€Π½ΠΎΠΉ сСткС Ρ‚ΠΎΡ‡Π΅ΠΊ ΠΈΠ»ΠΈ пиксСлСй. На рисункС 6.3 прСдставлСно схСматичноС ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ этой области для рисования. ГрафичСский контСкст опрСдСляСт эту ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π½ΡƒΡŽ ΠΏΠ»ΠΎΡΠΊΠΎΡΡ‚ΡŒ (Ρ…, Ρƒ), Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ Π»Π΅ΠΆΠ°Ρ‚ ΠΌΠ΅ΠΆΠ΄Ρƒ пиксСлями, практичСски Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ курсор вашСго любимого тСкстового Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° всСгда Π»Π΅ΠΆΠΈΡ‚ ΠΌΠ΅ΠΆΠ΄Ρƒ двумя символами.



Рисунок 6.3. Класс Graphics прСдставляСт дисплСй ΠΊΠ°ΠΊ Π΄Π²ΡƒΡ…ΠΌΠ΅Ρ€Π½ΡƒΡŽ сСтку пиксСлСй


Π‘Π°Π·ΠΎΠ²ΠΎΠ΅ гСомСтричСскоС рисованиС

Класс Graphics прСдоставляСт ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΏΠΎ Ρ€ΠΈΡΠΎΠ²Π°Π½ΠΈΡŽ ΠΈ Π·Π°Π»ΠΈΠ²ΠΊΠ΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Ρ‚ΠΈΠΏΠΎΠ² гСомСтричСских Ρ„ΠΈΠ³ΡƒΡ€:

β€” Π»ΠΈΠ½ΠΈΠΈ;

β€” ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠΈ;

β€” Π΄ΡƒΠ³ΠΈ;

β€” Ρ‚СкстовыС символы.


Для всСх ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ ΠΏΠΎ Ρ€ΠΈΡΠΎΠ²Π°Π½ΠΈΡŽ гСомСтричСских Ρ„ΠΈΠ³ΡƒΡ€ класс Graphics ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π³Ρ€Π°Ρ„ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ Ρ€ΡƒΡ‡ΠΊΡƒ, которая рисуСт Π»ΠΈΠ½ΠΈΠΈ ΡˆΠΈΡ€ΠΈΠ½ΠΎΠΉ Π² ΠΎΠ΄ΠΈΠ½ пиксСль. ГрафичСская Ρ€ΡƒΡ‡ΠΊΠ° рисуСт слСва Π½Π°ΠΏΡ€Π°Π²ΠΎ ΠΈ свСрху Π²Π½ΠΈΠ· со своСго ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π½ΠΎΠ³ΠΎ мСстополоТСния, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° рисункС 6.3. Взглянув Π½Π° нСсколько ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ², Π²Ρ‹ Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎΠΉΠΌΠ΅Ρ‚Π΅ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ Π΅Π΅ дСйствия.


Π›ΠΈΠ½ΠΈΠΈ. На рисункС 6.4 ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ‹ Π»ΠΈΠ½ΠΈΠΈ, нарисованныС Π² Canvas.



Рисунок 6.4. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ Π»ΠΈΠ½ΠΈΠΈ Π² Canvas. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π»ΠΈΠ½ΠΈΠΈ Ρ‚ΠΎΠ»Ρ‰Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ пиксСля, нарисовав ΠΏΡ€ΠΈΠ»Π΅Π³Π°ΡŽΡ‰ΠΈΠ΅ Π»ΠΈΠ½ΠΈΠΈ Ρ€ΡƒΡ‡ΠΊΠΎΠΉ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ†Π²Π΅Ρ‚Π°


Π’ листингС 6.3 ΠΏΠΎΠΊΠ°Π·Π°Π½ исходный ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ создаСт рисунок 6.4, Π½ΠΎ я опустил ΠΊΠΎΠ΄ MID-Π»Π΅Ρ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ это. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎΠ»Π½Ρ‹ΠΉ исходный ΠΊΠΎΠ΄ ΠΏΠΎ адрСсу http://www.phptr.com/. Для ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ², ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹Ρ… Π² этой Π³Π»Π°Π²Π΅, прСдполагаСтся, Ρ‡Ρ‚ΠΎ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΡ‹Π΅ классы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ Π²ΠΈΠ΄ΠΈΡ‚Π΅ здСсь, созданы ΠΈ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ MID-Π»Π΅Ρ‚ΠΎΠΌ Π² стилС, сходном с ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ Π²ΠΈΠ΄Π΅Π»ΠΈ Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… Π³Π»Π°Π²Π°Ρ…. Π˜ΡΡ…ΠΎΠ΄Ρ ΠΈΠ· этого, я ΠΏΠΎΠΊΠ°ΠΆΡƒ Π²Π°ΠΌ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠ΄.


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


import javax.microedition.lcdui.Canvas;

import javax.microedition.lcdui.Command;

import javax.microedition.lcdui.CommandListener;

import javax.microedition.lcdui.Display;

import javax.microedition.lcdui.Displayable;

import javax.microedition.lcdui.Graphics;

import javax.raicroedition.lcdui.Command;

/*


РисуСт ΡΠ΅Ρ€ΠΈΡŽ Π»ΠΈΠ½ΠΈΠΉ для дСмонстрации Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² ΠΈ стилСй Π»ΠΈΠ½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ нарисованы с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ класса Graphics.


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

*/

public class LineDemo extends Canvas.

implements CommandListener

}

// ΠšΠΎΠ½ΡΡ‚Π°Π½Ρ‚Π°, которая прСдставляСт Π±Π΅Π»Ρ‹ΠΉ Ρ†Π²Π΅Ρ‚.

private static final int WHITE = OxFF Β«16 | OxFF Β«8 I OxFF;

private Command back = new Command("Back", Command.BACK, 1);

private GraphicsDemo gDemo = GraphicsDemo.getlnstance(};

private Display display = Display.getDisplay(gDemo);

/**


ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€ No-arg.


*/

public LineDemo()

{

super ();

addCommand(back);

setCommandListener(this);

display.setCurrent(this);

}

/* *


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


"/

protected void paintdipRect (Graphics g)

}

int clipX = g.getClipX ();

int clipY = g.getClipY();

int clipH = g.getdipHeight ();

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)

{

paintdipRect (g);

int width = getWidth();

int height = getHeight ();

g. drawLine (20, 10, width β€” 20, height β€” 34);

g. drawLine(20, 11, width β€” 20, height β€” 33);

g. drawLine(20, 12, width β€” 20, height β€” 32);

g. drawLine(20, 13, width β€” 20, height β€” 31);

g. drawLine(20, 14, width β€” 20, height β€” 30);

g. setStrokeStyle(Graphics.DOTTED);

g. drawLine(20, 24, width β€” 20, height β€” 20);

g. drawLine(20, 25, width β€” 20, height β€” 19);

g. drawLine(20, 26, width β€” 20, height β€” 18);

g. setStrokeStyle (Graphics.SOLID);

g. drawLine(20, 36, width β€” 20, height β€” 8);

}

public void commandAction(Command c, Displayable d)

{

if (c == back)

{

GraphicsDemo.getlnstanceO.display();

}

}

}


ΠœΠ΅Ρ‚ΠΎΠ΄ paint (Graphics g) являСтся основным Π² этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Canvas описываСт этот ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΊΠ°ΠΊ абстрактный, подклассы Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ΅ описаниС. На экранС, созданном ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ Π² листингС 6.2, Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ появляСтся, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π΅Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ paint (Graphics g) Π½Π΅ описываСт Π½ΠΈΠΊΠ°ΠΊΠΈΡ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ ΠΏΠΎ Ρ€ΠΈΡΠΎΠ²Π°Π½ΠΈΡŽ.

Π’Π°ΡˆΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π΄ΠΎΠ»ΠΆΠ½Π° Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ всС свои ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΏΠΎ Ρ€ΠΈΡΠΎΠ²Π°Π½ΠΈΡŽ Π² ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ paint (Graphics g) Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π΅ Graphics, ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½ΠΎΠΌ Π΅ΠΉ. Π’Ρ‹ запускаСтС стандартныС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΏΠΎ Ρ€ΠΈΡΠΎΠ²Π°Π½ΠΈΡŽ, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹Π΅ для класса Graphics, Π² этом экзСмплярС, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½ Π²Π°ΡˆΠ΅ΠΌΡƒ Canvas.

Π§Ρ‚ΠΎΠ±Ρ‹ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ линию, Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ (Ρ…, Ρƒ) Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΉ ΠΈ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΉ Ρ‚ΠΎΡ‡Π΅ΠΊ. ΠšΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ (Ρ…, Ρƒ) ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ΡΡ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ‚ΠΎΡ‡ΠΊΠΈ (0, 0), которая, Π²ΠΎ врСмя создания графичСского контСкста, прСдставляСт пиксСль, Π»Π΅ΠΆΠ°Ρ‰ΠΈΠΉ Π² Π²Π΅Ρ€Ρ…Π½Π΅ΠΌ Π»Π΅Π²ΠΎΠΌ ΡƒΠ³Π»Ρƒ дисплСя, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° рисункС 6.3. ΠšΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π° Ρ… опрСдСляСт Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½ΠΎΠ΅ расстояниС Π½Π°ΠΏΡ€Π°Π²ΠΎ ΠΎΡ‚ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ 0 (Π»Π΅Π²Ρ‹ΠΉ ΠΊΡ€Π°ΠΉ дисплСя), Π° ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π° Ρƒ опрСдСляСт Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠ΅ расстояниС ΠΎΡ‚ строки 0, которая являСтся Π²Π΅Ρ€Ρ…Π½ΠΈΠΌ ΠΊΡ€Π°Π΅ΠΌ дисплСя.

Π¨ΠΈΡ€ΠΈΠ½Π° Π»ΠΈΠ½ΠΈΠΉ составляСт ΠΎΠ΄ΠΈΠ½ пиксСль. Π§Ρ‚ΠΎΠ±Ρ‹ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ»ΡΡ‚ΡƒΡŽ линию, Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»Π΅Π³Π°ΡŽΡ‰ΠΈΠ΅ Π»ΠΈΠ½ΠΈΠΈ, ΠΊΠ°ΠΊ дСмонстрируСтся Π² листингС 6.3. Π’Ρ€ΠΈ Π»ΠΈΠ½ΠΈΠΈ, ΠΏΠΎΠΊΠ°Π·Π°Π½Π½Ρ‹Π΅ Π½Π° рисункС 6.4, созданныС с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ листинга 6.3, ΠΈΠΌΠ΅ΡŽΡ‚ ΡˆΠΈΡ€ΠΈΠ½Ρƒ Π² ΠΏΡΡ‚ΡŒ, Ρ‚Ρ€ΠΈ ΠΈ ΠΎΠ΄ΠΈΠ½ пиксСль соотвСтствСнно.

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, срСдняя линия ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½Π° ΡˆΡ‚Ρ€ΠΈΡ…ΠΏΡƒΠ½ΠΊΡ‚ΠΈΡ€ΠΎΠΌ. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΡΡ‚ΠΈΠ»ΡŒ ΡˆΡ‚Ρ€ΠΈΡ…ΠΎΠ²ΠΊΠΈ для любого рисунка с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° setStrokeStyle (), ΠΊΠ°ΠΊ дСмонстрируСтся Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅. ΠšΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ΅ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π»ΠΈΠ½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΡΡ‚ΠΈΠ»ΡŒ ΡˆΡ‚Ρ€ΠΈΡ…ΠΎΠ²Π°Π½ΠΈΡ Graphics.DOTTED, зависит ΠΎΡ‚ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ.


ΠŸΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠΈ. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ Π΄Π²Π° Π²ΠΈΠ΄Π° ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠΎΠ²: ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ ΠΈ Π·Π°ΠΊΡ€ΡƒΠ³Π»Π΅Π½Π½Ρ‹ΠΉ. На рисункС 6.5 ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ‹ нСсколько ΠΏΡ€ΠΈΠ»Π΅Π³Π°ΡŽΡ‰ΠΈΡ… ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠΎΠ².




Рисунок 6.5. ΠŸΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠΈ, ΠΊΠ°ΠΊ ΠΈ всС гСомСтричСскиС Ρ„ΠΈΠ³ΡƒΡ€Ρ‹, ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½Ρ‹ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ Ρ†Π²Π΅Ρ‚Π°ΠΌΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ указания Ρ†Π²Π΅Ρ‚Π° графичСской Ρ€ΡƒΡ‡ΠΊΠΈ. Π‘Ρ€Π΅Π΄Π½ΠΈΠΉ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ красный, хотя ΠΎΠ½ ΠΈ каТСтся ΠΎΠΏΠ΅Π½ΠΊΠΎΠΌ сСрого Π½Π° рисункС


Π’ листингС 6.4 ΠΏΠΎΠΊΠ°Π·Π°Π½ исходный ΠΊΠΎΠ΄ paint (Graphics g) для этого ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°.


Листинг 6.4. ДСмонстрационная ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° RectangleDemo дСмонстрируСт графичСскиС Π²Ρ‹Π·ΠΎΠ²Ρ‹ рисования ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠΎΠ². ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ это Π²Ρ‹Π·ΠΎΠ² Π½Π° Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠΎΠ²


import javax.microedition.lcdui.Canvas;

import javax.microedition.Icdui.Command;

import javax.microedition.Icdui.CommandListener;

import javax.microedition.lcdui.Display;

import javax.microedition.Icdui.Displayable;

import javax.microedition.Icdui.Graphics;

import javax.microedition.Icdui.Command;

/**


РисуСт ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠΈ Π½Π° Canvas с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ графичСских ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Π² классС javax.microedition.Icdui.Graphics.


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

*/

public class RectangleDemo extends Canvas

implements CommandListener

{

// ΠšΠΎΠ½ΡΡ‚Π°Π½Ρ‚Π°, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π°Ρ Π±Π΅Π»Ρ‹ΠΉ Ρ†Π²Π΅Ρ‚.

private static final int WHITE = OxFF Β«16 | OxFF Β«8 I OxFF;

private Command back = new Command("Back", Command.BACK, 1);

private Display display =

Display.getDisplay(GraphicsDemo.get!nstance());

/**


ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€ No-arg. Π’Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ конструктор no-arg Canvas.


*/

public RectangleDemo()

}

super ();

addCommand(back); setCommandListener(this);

display.setCurrent (this);