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

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

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

Рисунок 4.2. Π­Ρ‚Π° Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π² Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΡ‹Π΅ Π½Π° экранС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΈ Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅ΠΌ ΠΎΠ΄ΠΈΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΡ‚ ΠΆΠ΅ самый Π±Π»ΠΎΠΊ ΠΏΡ€ΠΎΡΠ»ΡƒΡˆΠΈΠ²Π°Π½ΠΈΡ. Однако Displayable ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΠΊΠΎΠΌΠ°Π½Π΄Π½Ρ‹ΠΉ Π±Π»ΠΎΠΊ ΠΏΡ€ΠΎΡΠ»ΡƒΡˆΠΈΠ²Π°Π½ΠΈΡ


Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ инструмСнтария Swing MIDP Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΠ±Ρ‰Π΅ΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π±Π»ΠΎΠΊΠ° ΠΏΡ€ΠΎΡΠ»ΡƒΡˆΠΈΠ²Π°Π½ΠΈΡ событий. ВысокоуровнСвый API ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Ρ‚ΠΈΠΏ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ° ΠΏΡ€ΠΎΡΠ»ΡƒΡˆΠΈΠ²Π°Π½ΠΈΡ, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π½Π΅ΡƒΠ΄ΠΈΠ²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ, javax.microedition.lcdui.Command-Listener.

Π’ листингС 4.1 ΠΏΠΎΠΊΠ°Π·Π°Π½Π° вторая вСрсия MID-Π»Π΅Ρ‚Π° HelloWorld. Она добавляСт экранныС клавиши ΠΊ Π³Π»Π°Π²Π½ΠΎΠΌΡƒ ΠΎΠΊΠ½Ρƒ ΠΈ устанавливаСт Π±Π»ΠΎΠΊ ΠΏΡ€ΠΎΡΠ»ΡƒΡˆΠΈΠ²Π°Π½ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄ для распознавания наТатия ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ Π½Π° ΡΠΊΡ€Π°Π½Π½ΡƒΡŽ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ. MID-Π»Π΅Ρ‚ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚, показывая Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π²ΠΈΠ΄ экрана, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ΠΌ (alert), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ являСтся MIDP-эквивалСнтом Π²ΡΠΏΠ»Ρ‹Π²Π°ΡŽΡ‰Π΅Π³ΠΎ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°.


Листинг 4.1. Π’ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ HelloWorld2 Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΊΠΎΠΌΠ°Π½Π΄


import javax.microedition.midlet.MIDleC;

import javax.microedition.lcdui.Alert;

import javax.microedition.lcdui.AlertType;

import javax.microedition.lcdui.Command;

import javax.microedition.lcdui.CommandListener;

import javax.microedition.lcdui.Display;

import javax.microedition.ledui.Displayable;

import javax.microedition.lcdui.Form;

* /**


Вторая вСрсия прилоТСния HellcWorld.

Π­Ρ‚Π° вСрсия добавляСт ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Displayable ΠΈ устанавливаСт

* /

β€’ Π±Π»ΠΎΠΊ ΠΏΡ€ΠΎΡΠ»ΡƒΡˆΠΈΠ²Π°Π½ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄ для Π°ΠΊΡ‚ΠΈΠ²Π°Ρ†ΠΈΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΈ принятия ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ дСйствия Π² ΠΎΡ‚Π²Π΅Ρ‚ Π½Π° Π½Π΅Π΅. Π­Ρ‚ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ дСмонстрируСт, ΠΊΠ°ΠΊ Displayable опрСдСляСт сСмантику выполнСния ΠΊΠΎΠΌΠ°Π½Π΄.


*/

public class HelloWorld2 extends M.I Diet


// Display. Π­Ρ‚ΠΎΡ‚ ΠžΠ±ΡŠΠ΅ΠΊΡ‚ управляСт всСми ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ Displayable.

private Display display;

// Displayable. Π­Ρ‚ΠΎΡ‚ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ отобраТаСтся Π½Π° экранС, private-Form form;

private final String ALERT_LABEL = "Alert Me!"; private Alert alert;

// Π”Π²Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ ΠΊ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΡ‹ΠΌ Π½Π° экранС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌ

// этого MID-Π»Π΅Ρ‚Π°. private Command showAlert; private Command sayHi;

// ЭкзСмпляр Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π³ΠΎ класса, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ опрСдСляСт

// CommandListener для этого MID-Π»Π΅Ρ‚Π°.

private MyCommandListener cl = new MyCommandListener();

public HelloWorld2()

(

super();

public void destroyApp(boolean destro()

form = null; notifyDestroyed();

}

public void pauseApp()

)

public void startApp()

form = new Form("Hello World();

String msg = "My second MIDletl"; form.appendjmsg);

form.setCommandListener(cl);

showAlert = new Command(ALERT_LABEL, Command.SCREEN, 1);

form.addCommand(showAlert);

sayHi = new Command("Say Hi", Command.SCREEN, 1);

form.addCommand(sayHi);

display = Display.getDisplay(this); display.setCurrent(form);

}

private class MyCommandListener implements CommandListener

public void commandAction(Command c, Displayable d)

{

'alert = new Alert("Button pressed",

Β«TheΒ» + ALERT_LABEL + " button was pressed", null, AlertType.INFO); alert.setTimeout(Alert.FOREVER); display.setCurrent(alert, form);

}

}

}


Π― создал Π²Ρ‹ΡˆΠ΅ΠΎΠΏΠΈΡΠ°Π½Π½Ρ‹ΠΉ МID-Π»Π΅Ρ‚ HelloWorld2 с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠΎΠ΅Π³ΠΎ любимого тСкстового Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π°. Π—Π°Ρ‚Π΅ΠΌ я размСстил исходный Ρ„Π°ΠΉΠ» ΠΏΠΎΠ΄ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ установлСнного Ρƒ мСня инструмСнтария Wireless Toolkit:


? pwd

/cygdrive/c/J2mewtk/apps/HelloWorld/src

$Is

HelloWorld.lava HelioWorld2.Java

$


J2ME Wireless Toolkit ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅Ρ‚ всС Ρ„Π°ΠΉΠ»Ρ‹. Java Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ. ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° HelloWorld ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΎΠ±Π΅ вСрсии HelloWorld. На рисункС 4.3 ΠΏΠΎΠΊΠ°Π·Π°Π½ стартовый экран эмулятора, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ появляСтся, ΠΊΠΎΠ³Π΄Π° я ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°ΡŽ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ HelloWorld. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ Π²ΠΈΠ΄ΠΈΡ‚Π΅ Π΄Π²Π° MID-Π»Π΅Ρ‚Π° Π² спискС. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ клавиши стрСлок, Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ HelloWorld2 ΠΈ запуститС Π΅Π³ΠΎ, Π½Π°ΠΆΠ°Π² ΡΠΊΡ€Π°Π½Π½ΡƒΡŽ ΠΊΠ½ΠΎΠΏΠΊΡƒ Launch (Запуск).

На рисункС 4.4 ΠΏΠΎΠΊΠ°Π·Π°Π½ Π³Π»Π°Π²Π½Ρ‹ΠΉ экран HelloWorld2. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ справа появилась экранная клавиша ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Β«Alert MeΒ». На этом устройствС нСдостаточно мСста, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΏΠΎΠ»Π½ΠΎΠ΅ сообщСниС Β«Alert Me!Β», ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ установлСно Π² исходном ΠΊΠΎΠ΄Π΅ β€” Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ Π²ΠΎΡΠΊΠ»ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π·Π½Π°ΠΊ ΠΏΡ€ΠΎΠΏΡƒΡ‰Π΅Π½.

Π­Ρ‚ΠΎ пСрвая ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Ρ‚Ρ€Π°Π½ΡΠΏΠΎΡ€Ρ‚Π°Π±Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, с ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π²Ρ‹ ΡΡ‚ΠΎΠ»ΠΊΠ½ΡƒΠ»ΠΈΡΡŒ, ΠΈ ΠΎΠ½Π° ΠΈΠΌΠ΅Π΅Ρ‚ практичСскоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. К ΡΡ‡Π°ΡΡ‚ΡŒΡŽ, эмулятор ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… устройства. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ваши MID-Π»Π΅Ρ‚Ρ‹ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ любого ΠΈΠ· Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅Ρ… эмуляторов устройств, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Ρ… эмулятором J2ME Wireless Toolkit Emulator, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ выглядят Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚ΡŒ мноТСство ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, связанных с Ρ‚Ρ€Π°Π½ΡΠΏΠΎΡ€Ρ‚Π°Π±Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ.



Рисунок 4.3. Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ MID-Π»Π΅Ρ‚Π° ΠΊ Π½Π°Π±ΠΎΡ€Ρƒ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ Π² Ρ€Π΅Π·ΡƒΠ»: Ρ‚Π°Ρ‚Π΅ ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ AMS ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ мСню, ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π²Ρ‹ Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚Π΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ



Рисунок 4.4. Основной экран MID-Π»Π΅Ρ‚Π° HelloWorld2


Ha рисункС 4.5 ΠΏΠΎΠΊΠ°Π·Π°Π½ основной экран HelloWorld2, ΠΊΠ°ΠΊ ΠΎΠ½ появляСтся ΠΏΡ€ΠΈ ΠΈΠΌΠΈΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ устройства Motorola i85s. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π° со стандартными настройками, ΠΎΠ½ способСн ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ ΠΏΠΎΠ»Π½Ρ‹ΠΉ тСкст ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π½Π° экранной клавишС. Π•ΡΡ‚ΡŒ Ρ‚Π°ΠΊΠΆΠ΅ вторая Command с ΠΌΠ΅Ρ‚ΠΊΠΎΠΉ Β«Say HiΒ», которая появляСтся Π½Π° экранной клавишС слСва.

НаТатиС Π½Π° ΡΠΊΡ€Π°Π½Π½ΡƒΡŽ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ Β«Alert Me!Β» ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ экран увСдомлСния, ΠΏΠΎΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ Π½Π° рисункС 4.6. ДСйствиС отобраТСния этого экрана являСтся ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ HelloWorld2 ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠ»ΠΎ для ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, связанной с Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ экранной клавиши.

Взглянув Π½Π° исходный ΠΊΠΎΠ΄ HelloWorld2, Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ, Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΈΠ·ΠΌΠ΅Π½ΡΡŽΡ‰ΠΈΡ…ΡΡ объявлСний, логичСская схСма, которая Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅Ρ‚ эту Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΊΠΎΠΌΠ°Π½Π΄, находится Π² ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ startApp(). ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ создаСт экзСмпляр CommandListener. HelloWorld2 опрСдСляСт Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ класс, MyCommandListener, для выполнСния обязанностСй Π±Π»ΠΎΠΊΠ° ΠΏΡ€ΠΎΡΠ»ΡƒΡˆΠΈΠ²Π°Π½ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄. Он Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ интСрфСйс CommandListener.

Π’Π°ΠΌ Π½Π΅ придСтся Π΄Π΅Π»Π°Ρ‚ΡŒ это Ρ‚Π°ΠΊΠΈΠΌ способом. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ подкласс класса Form ΠΈ Π·Π°ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ CommandListener. Π’Π°Ρˆ подкласс являСтся Form, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ являСтся Ρ€Π°Π·Π½ΠΎΠ²ΠΈΠ΄Π½ΠΎΡΡ‚ΡŒΡŽ Screen, ΠΈ поэтому ΠΎΠ½ способСн ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ увСдомлСния ΠΎ Π²Ρ‹Π·ΠΎΠ²Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹.



Рисунок 4.5. Π˜Π·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ экрана МID-Π»Π΅Ρ‚Π° HelloWorld2 с Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½ΠΎΠΉ экранной клавишСй Π½Π° эмуляторС Motorola i85s



Рисунок 4.6. НаТатиС Π½Π° ΡΠΊΡ€Π°Π½Π½ΡƒΡŽ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ Β«Alert Me!Β» ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ это ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅. УвСдомлСния ΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ‚ΠΈΠΏΠΎΠΌ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΡ‹Ρ… экранов


ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ CommandListener ΠΊΠ°ΠΊ интСрфСйса Π΄Π°Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ этот Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ‚ΠΈΠΏ Screen ΡƒΠΆΠ΅ ΠΈΠΌΠ΅Π΅Ρ‚ класс Π±ΠΎΠ»Π΅Π΅ высокого уровня ΠΈ поэтому Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΡ‚ Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ класса. ИспользованиС интСрфСйсов Java особСнно ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π² Π΄Π°Π½Π½ΠΎΠΌ случаС.

ПослС создания экзСмпляра MyCommandListener экзСмпляр рСгистрируСтся Π² Form. Π—Π°Ρ‚Π΅ΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ создаСт ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Command, Ρ‡ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΊΡƒ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° Β«Alert Me!Β» Π²Ρ‹ Π²ΠΈΠ΄Π΅Π»ΠΈ Π² эмуляторС. Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° Π·Π°Ρ‚Π΅ΠΌ добавляСтся Π² Ρ„ΠΎΡ€ΠΌΡƒ. Когда ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π°ΠΆΠΈΠΌΠ°Π΅Ρ‚ ΡΠΊΡ€Π°Π½Π½ΡƒΡŽ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ Β«Alert Me!Β» Π½Π° Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰Π΅ΠΌ MID-Π»Π΅Ρ‚Π΅, рСализация «посылаСт» ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ Π±Π»ΠΎΠΊΡƒ ΠΏΡ€ΠΎΡΠ»ΡƒΡˆΠΈΠ²Π°Π½ΠΈΡ, экзСмпляру MyCommandListener, вызывая ΠΌΠ΅Ρ‚ΠΎΠ΄ commandAction(). ΠœΠ΅Ρ‚ΠΎΠ΄ commandAction () Π·Π°Ρ‚Π΅ΠΌ создаСт ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Alert ΠΈ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ Π΅Π³ΠΎ.

БущСствуСт нСсколько Π²Π°ΠΆΠ½Ρ‹Ρ… тСорСтичСских ΠΌΠΎΠΌΠ΅Π½Ρ‚ΠΎΠ², связанных с этим ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ я создал Command, Π½ΠΎ я Π½Π΅ связал Π΅Π³ΠΎ с ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ клавишСй клавишной ΠΏΠ°Π½Π΅Π»ΠΈ, ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΈΠ»ΠΈ экранной клавишСй Π½Π° устройствС. Π’ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, ΠΏΡ€ΠΈ использовании высокоуровнСвого API вашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ способа получСния ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ Ρ‚ΠΎΠΌ, какая физичСская клавиша Π½Π°ΠΆΠ°Ρ‚Π°. РСализация присваиваСт Command ΡΠΏΠ΅Ρ†ΠΈΡ„ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ β€” Π² этом случаС ΡΠΊΡ€Π°Π½Π½ΡƒΡŽ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ справа Π½Π° дисплСС устройства.

АктивизируйтС ΡΠΊΡ€Π°Π½Π½ΡƒΡŽ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ Β«Say HiΒ», Ρ€Π°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Π½ΡƒΡŽ слСва Π² MID-Π»Π΅Ρ‚Π΅ HelloWorld2, ΠΈ Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ Ρ‚Π΅ΠΌ ΠΆΠ΅ самым, ΠΊΠ°ΠΊ ΠΈ Ссли Π±Ρ‹ Π²Ρ‹ Π½Π°ΠΆΠ°Π»ΠΈ ΠΊΠΉΠΎΠΏΠΊΡƒ Β«Alert Me!Β», появится Ρ‚ΠΎ ΠΆΠ΅ самоС ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅. ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, это ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Alert ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π±Ρ‹Π»Π° Π°ΠΊΡ‚ΠΈΠ²ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π° клавиша Β«Alert Me!Β».

Из-Π·Π° абстракции высокоуровнСвого API, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰Π΅Π³ΠΎ связи ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠ»ΡŽΡ‡Π°ΠΌΠΈ ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ, Π²Ρ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ Π±Π»ΠΎΠΊ ΠΏΡ€ΠΎΡΠ»ΡƒΡˆΠΈΠ²Π°Π½ΠΈΡ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌΡƒ ΠΊΠ»ΡŽΡ‡Ρƒ. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ большС ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π½Π° экран, Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΡƒΡŽ Ρ‚Π΅Ρ…Π½ΠΈΠΊΡƒ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄Π°Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²Π°ΡˆΠ΅ΠΌΡƒ Π±Π»ΠΎΠΊΡƒ ΠΏΡ€ΠΎΡΠ»ΡƒΡˆΠΈΠ²Π°Π½ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ источник ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΈ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ Π² ΠΎΡ‚Π²Π΅Ρ‚ Π½Π° события Π±Ρ‹Π»ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Ρ‹ Π½ΡƒΠΆΠ½Ρ‹Π΅ дСйствия.

Π‘Π»ΠΎΠΊ ΠΏΡ€ΠΎΡΠ»ΡƒΡˆΠΈΠ²Π°Π½ΠΈΡ рСгистрируСтся с ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ увСдомлСния ΠΎΡ‚ Displayable, Π° Π½Π΅ ΠΎΡ‚ источника события (Ρ‚Π°ΠΊΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ клавиша ΠΊΠ½ΠΎΠΏΠΎΡ‡Π½ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ). ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π±Π»ΠΎΠΊ ΠΏΡ€ΠΎΡΠ»ΡƒΡˆΠΈΠ²Π°Π½ΠΈΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ Β«Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒΒ» ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΎΠ½ заинтСрСсован, срСди всСх Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… Command, связанных экраном, ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΡ‹ΠΌ Π² настоящСС врСмя.

Π’Ρ‹, программист, Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ связали ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ Π±Π»ΠΎΠΊΠ° ΠΏΡ€ΠΎΡΠ»ΡƒΡˆΠΈΠ²Π°Π½ΠΈΡ с Π΄ΠΎΠ»ΠΆΠ½Ρ‹ΠΌΠΈ Command. Π’Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ½-. Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, Π΄ΠΎΡΡ‚ΡƒΠΏΠ½ΡƒΡŽ Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π΅ Command, для ясной ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Command.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ΠΎΡˆΠΈΠ±ΠΊΡƒ Π² послСднСй вСрсии ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, я ΠΏΠ΅Ρ€Π΅ΠΏΠΈΡΡ‹Π²Π°ΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄ commandAction () Π² классС MyCommandListener, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² листингС 4.2.


Листинг 4.2. Π‘Π»ΠΎΠΊ ΠΏΡ€ΠΎΡΠ»ΡƒΡˆΠΈΠ²Π°Π½ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π°Π΅Ρ‚ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, исслСдуя ΠΈΡ… ΠΌΠ΅Ρ‚ΠΊΠΈ