Иллюстрированный самоучитель по программированию мобильных телефонов

Перемещение квадрата

Начнем с самого простого – выведем на экран синий квадрат, прорисованный с помощью метода fillRect () и заставим переместиться его через весь экран по горизонтали слева на право. Посмотрите на код из листинга 7.5, производящий перемещение квадрата на экране.

Листинг 7.5. Класс Main и класс Draw.

import javax.micro-edition. Icdui.*;
import javax.microedition.midlet.*;
public class Main extends MIDlet implements
CommandListener
{
// команда выхода из программы
private Command
exitMidlet = new Command("Выход",
Command.EXIT, 0);
public void startApp()
{
// создаем объект класса Draw
Draw dr = new Draw();
// запускаем поток
dr.start();
// добавляем команду выхода
dr.addCommand(exitMidlet);
dr.setCommandListener(this);
Display.getDisplay(this).setCurrent(dr);
}
public void pauseApp() {}
public void destroyApp(boolean unconditional){}
public void commandAction(Command c, Displayable d)
{
if (с == exitMidlet)
{
destroyApp(false);
notifyDestroyed();
}
}
/**
класс Draw определен в файле Draw.Java
перемещает квадрат по экрану
*/
import javax.microedition.lcdui.*;
public class
Draw extends Canvas implements Runnable
{
// позиция для перемещения квадрата
int position =10;
// конструктор
public Draw()
{ super(); }
public void start()
{
// создаем и запускаем, поток
Thread t = new Thread(this);
t.start();
}
// метод run() интерфейса Runnable
public void run()
{
// бесконечный цикл
while (true)
{
// увеличиваем позицию на 1
position ++;
// обновляем экран
repaint();
// останавливаем цикл на 20 миллисекунд
try { Thread.sleep(20);
}
catch (java.lang.InterruptedException zxz) {}
}
}
public void paint(Graphics g)
{
// вычисляем область для перерисовки экрана
int x = g.getClipWidth();
int у = g.getClipHeight ()
// устанавливаем белый цвет фона
g.setColor(0xffffff);
// назначаем перерисовку всему экрану
 g.fillRect(0.0,х,у);
// устанавливается синий цвет квадрата
vg.setColor(0, 0, 200);
// рисуем квадрат
g.fillRect(position,40, 20, 20);
}
}

Листинг 7.5 содержит два класса Main и Draw, находящиеся в файлах Main.java и Draw.Java. Основной класс мидлета Main содержит код создающий объект dr класса Draw. Затем он запускает системный поток с помощью метода start (), добавляет команду выхода из программы и отображает текущий дисплей с объектом dr. Класс Draw содержит код, создающий синий квадрат и перемещающий его по экрану.

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.