import javax.microedition.lcdui.*; public class Point extends Canvas implements CommandListener{ private int x; // координата х точки private int y; // координата у точки private int width; // ширина экрана private int height; // высота экрана private boolean clrFlag = true; // флаг очистки экрана private Command clear; // команда очистки экрана // конструктор класса Point public Point () { // вызов конструктора родительского класса super(); // получить ширину экрана width=getWidth(); // получить высоту экрана height=getHeight(); // установить текущие координаты точки в центр экрана x=width/2; y=height/2; // создать объект команды очистки экрана clear = new Command("Clear", Command.OK, 1); // добавить команду очистки экрана addCommand(clear); // установить блок прослушивания команды setCommandListener(this); } // метод перерисовки экрана public void paint(Graphics g) { // проверить флаг очистки экрана if (clrFlag) { // установить текущий цвет белым g.setColor(255,255,255); // залить прямоугольник размером с экран g.fillRect(0, 0, width, height); // сбросить флаг очистки экрана clrFlag = false; } // установить текущий цвет точки красным g.setColor(255,0,0); // отобразить точку в текущих координатах g.drawLine(x,y,x,y); } // метод, реализующий блок прослушивания команды public void commandAction(Command с, Displayable s) { // если сработала команда очистки if (с == clear) { // поднять флаг очистки экрана clrFlag = true; // установить текущие координаты точки в центр экрана x=width/2; y=height/2; // инициировать перерисовку экрана repaint(); } } // блок прослушивания событий низкого уровня public void keyPressed(int keyCode) { switch (keyCode) { // сместить текущие координаты точки // в соответствии с нажатой клавишей case KEY_NUM1: x-; y-; break; case KEY_NUM2: y-; break; case KEY_NUM3: x++; y-; break; case KEY_NUM4: x-; break; case KEY_NUM6: x++; break; case KEY_NUM7: x-; y++; break; case KEY_NUM8: y++; break; case KEY_NUM9: x++; y++; break; } // инициировать перерисовку экрана repaint(); } public void startApp() { // создать объект управляемой точки Point point = new Point(); // получить ссылку на менеджер дисплея display = Display.getDisplay(this); // вывести управляемую точку на экран display.setCurrent(point); } public void pauseApp() { } public void destroyApp() { } }