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

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

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

Stringltem β€” Form, Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°ΡŽΡ‰ΠΈΠΉ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ строки β€” ВысокоуровнСвый

TextBox β€” ΠœΠ½ΠΎΠ³ΠΎΡΡ‚Ρ€ΠΎΡ‡Π½Ρ‹ΠΉ, ΠΌΠ½ΠΎΠ³ΠΎΠΊΠΎΠ»ΠΎΠ½ΠΊΠΎΠ²Ρ‹ΠΉ тСкстовой ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ β€” ВысокоуровнСвый

TextField β€” ΠžΠ΄Π½ΠΎΡΡ‚Ρ€ΠΎΡ‡Π½Ρ‹ΠΉ тСкстовой ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ β€” ВысокоуровнСвый

Ticker β€” ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΊΠ΅Ρ€Π° β€” ВысокоуровнСвый


Π­ΠΊΡ€Π°Π½Ρ‹ ΠΈ экранныС элСмСнты

ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π² этой Π³Π»Π°Π²Π΅ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π²Π°ΠΌ ΠΎΡΠ½ΠΎΠ²Π½ΡƒΡŽ Ρ€Π°Π·Π½ΠΈΡ†Ρƒ ΠΌΠ΅ΠΆΠ΄Ρƒ двумя Ρ‚ΠΈΠΏΠ°ΠΌΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса MIDP: ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ Displayable ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ Item. Π˜Π΅Ρ€Π°Ρ€Ρ…ΠΈΡ наслСдования, изобраТСнная Π½Π° рисункС 5.1, ясно ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ Π­Ρ‚ΠΈ Π΄Π²Π΅ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ. Π˜Π΅Ρ€Π°Ρ€Ρ…ΠΈΡ Displayable Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбС экраны, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚Π΅. Π˜Π΅Ρ€Π°Ρ€Ρ…ΠΈΡ Item классифицируСт элСмСнты, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ собраны Π² ΠΎΠ΄ΠΈΠ½ экран. Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Π΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‚ использованиС Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса MIDP. ΠœΡ‹ объясняСм ΠΈΡ… использованиС ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ ознакомлСния с ΠΊΠ°ΠΆΠ΄Ρ‹ΠΌ.

Π’ листингС 5.1 ΠΏΠΎΠΊΠ°Π·Π°Π½ Ρ„Π°ΠΉΠ» ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ UIComponentDemo.java, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ опрСдСляСт исходный ΠΊΠΎΠ΄ Π½ΠΎΠ²ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ использованиС элСмСнтов MIDP. Π­Ρ‚ΠΎΡ‚ Ρ„Π°ΠΉΠ» ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΊΠΎΠ΄ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ„Π°ΠΉΠ»Π°Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ вмСстС ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ ΠΏΠΎΠ»Π½ΡƒΡŽ Π΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса.


Листинг 5.1. Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ UlComponentDemo


import javax.raicroedition.midlet.MIDlet;

import javax.microedition.lcdui.Choice;

import javax.microedition.lcdui.Command;

import javax.microedition.lcdui.CommandListener;

import javax.microedition.lcdui.Display;

import javax.microedition.lcdui.Displayable;

import javax.microedition.Icdui.List;

/**


ДСмонстрируСтся использованиС высокоуровнСвых ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса MIDP. Π­Ρ‚ΠΎΡ‚ дСмонстрационный класс создаСт список дСмонстрационных ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ для Π²Ρ‹Π±ΠΎΡ€Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ. Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹ Π² спискС ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π½Π° самом Π΄Π΅Π»Π΅ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½Ρ‹Ρ… классов дСмонстрационных ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. MID-Π»Π΅Ρ‚ создаСт экзСмпляр класса, прСдставлСнного срСди элСмСнтов списка, Π²Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ ΠΈ Π·Π°Ρ‚Π΅ΠΌ выполняСмого ΠΈΠΌ.


*/

public class UlComponentDemo extends MIDlet

implements CommandListener

private Command exit = new Command("Exit", Command.EXIT, 1);

// ИмСна Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… дСмонстрационных ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ: Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹ Π² этом спискС

// ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½Ρ‹Ρ… классов для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ дСмонстрационной

// ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, private static String [] demos =

"AlertDemo",

"DateFieldDemo",

"GaugeDemo",

"StringltemDemo", "TickerDemo",

"ImageltemDemo"

}i;

private static UIComponentDemo instance = null;

// Π Π΅Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ List, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ элСмСнты,

// пСрСчислСнныС Π² спискС Β«demosΒ» Π²Ρ‹ΡˆΠ΅.

private List mainMenu = new List ("Select demo", Choice.IMPLICIT,

demos, null);

// ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€ No-arg. public UIComponentDemo()

// ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Π²Ρ‹Π·ΠΎΠ² super(). Он выполняСт

// конструктор no-arg Π² классС MID-Π»Π΅Ρ‚Π°. super ();

instance = this;

}

/**

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΎΠ΄ΠΈΠ½ экзСмпляр этого класса. Π’Ρ‹Π·ΠΎΠ² этого ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΏΠ΅Ρ€Π΅Π΄ созданиСм ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ΠΈΡ‚ пустой ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ.

^Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ экзСмпляр этого класса.

*/

public static UIComponentDemo getlnstance()

{

return instance;

{

public void startApp()

{

Display display;

mainMenu.addCommand(exit);

mainMenu.setCommandListener(this);

*

display = Display.getDisplay(this);

display.setCurrent(mainMenu);

public void pauseApp()

{

}

void quit(),

destroyApp(true); notifyDestroyed();

)

public void destroyApp(boolean destroy)

(

}

public void display!)

}

Display.getDisplay(this). setCurrent(mainMenu);

}

public void commandAction(Command c, Displayabie d)

{

Displayabie displayable = null;

if (c == List.SELECT_COMMAND)

{

int index = mainKenu.getSeiectedlndex(); try

{

displayable = (Displayable)

Class.forName(demos[index]). new!nstance();

if (displayable == null)

}

return;

}

Display display = Display.getDisplay(this);

display.setCurrent(displayable);

}

catch (Exception e)

{

System.out.println("Got exception here!!!");

e. printStackTrace();

return;

}

}

else if (c == exit) 1 quit();

}

}

}


Код, описанный Π² листингС 5.1, являСтся ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ½ создаСтся с использованиСм ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π²ΠΈΠ΄Π° экранного ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. Π­ΠΊΡ€Π°Π½ являСтся ядром ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ основы всСх MID-Π»Π΅Ρ‚ΠΎΠ².

Π’ листингС 5.1 опрСдСляСтся MID-Π»Π΅Ρ‚. Π•Π³ΠΎ высокоуровнСвый экран являСтся ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠΌ List, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ список Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ², ΠΎΡ‚Ρ€Π°ΠΆΠ°ΡŽΡ‰ΠΈΡ… Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ элСмСнты, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ дСмонстрируСт ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°. На рисункС 5.2 ΠΏΠΎΠΊΠ°Π·Π°Π½ список Π²Π΅Ρ€Ρ…Π½Π΅Π³ΠΎ уровня дСмонстрационных ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ. Π­Ρ‚ΠΎΡ‚ основной экран являСтся экзСмпляром List.

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° стрСлку Π½Π° экранС, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΡƒΡŽ Π²Π½ΠΈΠ·. Она ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Π΅Ρ‰Π΅ элСмСнты, для ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… нСдостаточно мСста Π½Π° экранС. Если Π²Ρ‹ ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΈΡ‚Π΅ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π²Π½ΠΈΠ·, стрСлка, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰Π°Ρ Π²Π½ΠΈΠ·, исчСзнСт, ΠΈ вмСсто этого появится стрСлка, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰Π°Ρ Π½Π°Π²Π΅Ρ€Ρ…. Π­Ρ‚ΠΈ стрСлки Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½Ρ‹ Π½Π° экранС Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° List.

List являСтся Π²ΠΈΠ΄ΠΎΠΌ Screen, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, являСтся Displayable, ΠΈ приспосабливаСтся ΠΊ Π·Π½Π°ΠΊΠΎΠΌΠΎΠΉ Π΅ΠΌΡƒ ΠΎΠ±Ρ‰Π΅ΠΉ структурС прилоТСния. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ Π² листингС 5.1, Ρ‡Ρ‚ΠΎ экзСмпляр List являСтся ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΡ‹ΠΌ Π² настоящСС врСмя, ΠΏΠΎ сущСству это ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ события Π²Ρ‹Π·ΠΎΠ²Π° ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹. Π‘Π°ΠΌ MID-Π»Π΅Ρ‚ являСтся Π±Π»ΠΎΠΊΠΎΠΌ ΠΏΡ€ΠΎΡΠ»ΡƒΡˆΠΈΠ²Π°Π½ΠΈΡ Ρ‚Π°ΠΊΠΈΡ… событий, рСгистрируя сСбя ΠΊΠ°ΠΊ CommandListener для этих событий. Он Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ интСрфСйс CommandListener, Π° Ρ‚Π°ΠΊΠΆΠ΅ опрСдСляСт ΠΌΠ΅Ρ‚ΠΎΠ΄ commandAction ().

ΠΠ»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΌ способом создания Π±Π»ΠΎΠΊΠΎΠ² ΠΏΡ€ΠΎΡΠ»ΡƒΡˆΠΈΠ²Π°Π½ΠΈΡ являСтся созданиС самого ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Π±Π»ΠΎΠΊΠ° ΠΏΡ€ΠΎΡΠ»ΡƒΡˆΠΈΠ²Π°Π½ΠΈΡ событий, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π² Π½Π΅ΠΌ происходят. Π§Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ это, ΠΎΠ΄Π½Π°ΠΊΠΎ, Π²Π°ΠΌ Π±Ρ‹ ΠΏΡ€ΠΈΡˆΠ»ΠΎΡΡŒ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π² классС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° подклассы, Π² Π΄Π°Π½Π½ΠΎΠΌ случаС создав подкласс класса List. Π― Π²Ρ‹Π±Ρ€Π°Π» ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ стандартный класс List Π±Π΅Π· создания подклассов.

На рисункС 5.2 ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ список дСмонстрационных ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса. ИмСна, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ Π²ΠΈΠ΄ΠΈΡ‚Π΅, ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ основных классов для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ дСмонстрационной ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. ΠŸΡ€ΠΈ Π²Ρ‹Π±ΠΎΡ€Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· Π½ΠΈΡ… выполняСтся ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π°Ρ дСмонстрационная ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°. ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΎΡ‚ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ дСмонстрационныС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΏΡ€Π΅ΠΆΠ΄Π΅, Ρ‡Π΅ΠΌ ΠΏΡ‹Ρ‚Π°Ρ‚ΡŒΡΡ ΠΈΡ… Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ. Π˜Π½Π°Ρ‡Π΅ Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ ΠΎΡˆΠΈΠ±ΠΊΡƒ ClassNotFoundException.

Если Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ J2ME Wireless Toolkit, Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ ваши исходныС Ρ„Π°ΠΉΠ»Ρ‹ Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° UIComponents/src/. Π—Π°Ρ‚Π΅ΠΌ создайтС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚. Wireless Toolkit ΠΎΡ‚ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅Ρ‚ всС исходныС Ρ„Π°ΠΉΠ»Ρ‹ Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ sic/. Он запустит Π²Π΅Ρ€ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΈ, Π½Π°ΠΊΠΎΠ½Π΅Ρ†, размСстит Ρ„Π°ΠΉΠ»Ρ‹. class Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° classes/. Π‘ этого ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ дСмонстрационныС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, пСрСчислСнныС Π² основном ΠΎΠΊΠ½Π΅ MID-Π»Π΅Ρ‚Π°.

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ я сначала ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΡŽ, Π° Π·Π°Ρ‚Π΅ΠΌ дСлаю доступной ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ AlertDemo, ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ элСмСнт Π² спискС. Π§Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΎΡ‚ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ Π΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, просто Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ AlertDemo ΠΈΠ· списка, ΠΏΠΎΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ Π½Π° рисункС 5.2. ΠŸΠΎΠ²Ρ‚ΠΎΡ€ΡΠΉΡ‚Π΅ эти шаги создания ΠΈ выполнСния для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… дСмонстрационных ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ.

На рисункС 5.3 ΠΏΠΎΠΊΠ°Π·Π°Π½ экран, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ появляСтся, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚Π΅ элСмСнт AlertDemo ΠΈΠ· списка дСмонстрационных ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π²Π΅Ρ€Ρ…Π½Π΅Π³ΠΎ уровня. Π­Ρ‚ΠΎΡ‚ экран ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π½Π°Π±ΠΎΡ€ элСмСнтов β€” Π½Π°Π±ΠΎΡ€ Ρ‚ΠΈΠΏΠΎΠ² ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠΉ β€” с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° MIDP, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠ³ΠΎ ChoiceGroup. Π­ΠΊΡ€Π°Π½, содСрТащий Ρ‚ΠΈΠΏΡ‹ ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠΉ, создаСтся ΠΊΠΎΠ΄ΠΎΠΌ Π² Ρ„Π°ΠΉΠ»Π΅ AlertDemo.java, ΠΏΠΎΠΊΠ°Π·Π°Π½Π½ΠΎΠΌ Π² листингС 5.2. Π’Ρ‹Π±ΠΎΡ€ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· элСмСнтов Π½Π° этом экранС создаСт ΠΈ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ экзСмпляр этого Ρ‚ΠΈΠΏΠ° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Alert.

Π˜Π΅Ρ€Π°Ρ€Ρ…ΠΈΡ наслСдования, изобраТСнная Π½Π° рисункС 5.1, ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ChoiceGroup Π½Π΅ являСтся Π½ΠΈ Screen, Π½ΠΈ Displayable. Π­Ρ‚ΠΎ Π²ΠΈΠ΄ Item. ВспомнитС ΠΈΠ· Π³Π»Π°Π²Ρ‹ 3, Ρ‡Ρ‚ΠΎ Item являСтся ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π°Π³Ρ€Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½ Π² Form. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ класс AlertDemo дополняСт Form, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΄Π°Π΅Ρ‚ Π΅ΠΌΡƒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π°Π³Ρ€Π΅Π³ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ элСмСнты TextField ΠΈ ChoiceGroup.

На рисункС 5.3 Π²Ρ‹ Π²ΠΈΠ΄ΠΈΡ‚Π΅ Form β€” экзСмпляр AlertDemo β€” ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ содСрТит ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ChoiceGroup ΠΈ TextField. ВспомнитС, Ρ‡Ρ‚ΠΎ Form являСтся СдинствСнным ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠΌ MIDP, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° AlertDemo Π΄ΠΎΠ»ΠΆΠ½Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Form для хранСния элСмСнтов ChoiceGroup ΠΈ TextField.



Рисунок 5.2. Π˜Π·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ экрана UIComponentDemo. Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹ ΡΠ²Π»ΡΡŽΡ‚ΡΡ названиями основных классов для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ дСмонстрационной ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹




Рисунок 5.3. Π“Π»Π°Π²Π½Ρ‹ΠΉ экран дСмонстрационной ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠΉ являСтся Ρ„ΠΎΡ€ΠΌΠΎΠΉ, которая ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ‚TextField ΠΈ ChoiceGroup


Листинг 5.2. УвСдомлСния ΡΠ²Π»ΡΡŽΡ‚ΡΡ экранами, Π½ΠΎ ΠΎΠ½ΠΈ Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Command. Π’Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Displayable, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠΊΠ°Π·Π°Π½, ΠΊΠΎΠ³Π΄Π° ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ нСдоступно


import javax.microedition.lcdui.Alert;

import javax.microedition.lcdui.Choice;

import javax.microedition.lcdui.ChoiceGroup;

import javax.microedition.lcdui.Command;

import javax.microedition.lcdui.CommandListener;

import javax.microedition.lcdui.Display;

import javax.microedition.lcdui.Displayable;

import javax.microedition.lcdui.Form;

import javax.microedition.Icdui.TextField;