Листинг 6.1. Демонстрационной программе CanvasDemol требуется MID-лет, как и любое другое приложение МIDР

import javax.microedition.midlet.MIDlet;

import javax.microedition.lcdui.Display;

/"

Определяет MID-лет, отображающий пустой Canvas на дисплее устройства.

Отображаемый Canvas является Экземпляром класса Canvasl.

@смотри Canvasl

*/

public class CanvasDemol extends MIDlet

{

// Поддерживает ссылку на экземпляр данного класса.

private static CanvasDemol midlet;

// Поддерживает ссылку на Canvas, который пользователь

// видит на дисплее.

private static Canvasl instance;

private Display display; private Canvasl canvas;

/**

Конструктор No-arg. Вызывает конструктор no-arg класса MID-лета.

*/

public CanvasDemol()

super();

display = Display.getDisplay(this); instance = canvas; midlet = this;

{

/**

Возвращает ссылку на MID-лет, связанный с данным отображаемым объектом.

@возвращает MID-лет, который отображает этот объект.

**/

public static CanvasDemol getMIDlet()

{

return midlet;

{

public void startApp()

{

canvas = new Canvasl ();

display.setCurrent(canvas);

(

public void pauseApp()

{

}

public void destroyApp(boolean destroy)

{

instance = null;

canvas = null;

void quit ()

{

destroyApp(true);

notifyDestroyed();

}

}

Листинг 6.2. Чтобы использовать Canvas, вы должны создать подкласс Canvas

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;

/**

Определяет подкласс Canvas, который отображается с помощью MID-лета CanvasDemol. Этот Canvas имеет единственную команду «Exit», так что пользователь может завершить работу демонстрационной программы.

@Осмотри CanvasDemol

*/

public class Canvasl extends дополняет Canvas

implements CommandListener

{

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

/**

Конструктор No-arg.

*/

public Canvasl ()

{

// Обратите внимание на вызов super (), который является конструктором

// r.o-arg Canvas! Это очень важно. Без вызова super() ваши экземпляры

// Canvas не смогут действовать как настоящие Canvas. Они не будут

// отображать правильно, они не будут рисовать должным образом и они

// не смогут обрабатывать события, super ();

addCommand(exit); setCommandListener (this);

printCanvasInfo();

}

/**

Рисует внешний вид Canvas, видимый пользователю.

В данном случае он не рисует ничего.

Поэтому этот Canvas не имеет визуального представления.

*/

public void paint(Graphics g)

{

}

public void commandAction(Command c, Displayable d)

{

if (c == exit)

CanvasDemol.getMIDlet(). quit();

}

/**

Определяет, что обработка должна быть сделана в ответ на событие отпускания клавиши, произошедшее в данном Canvas.

Этот метод подменяет тот же самый метод в Canvas.

*/

public void keyReleased(int keyCode)

{

printKeyEventlnfo(keyCode);

}

/**

Определяет некоторую обработку событий, связанных с клавишами.

Этот метод просто печатает в стандартном результате некоторую диагностическую информацию о событиях, связанных с клавишами, на Canvas.

*/

protected void printKeyEventlnfо(int keyCode)

{

System.out.println("Key code = " + keyCode);

System.out.println("Key name = " + getKeyName(keyCode));

System.out.println("Game action = " + getGameAction(keyCode));


Логин
Пароль
Запомнить меня