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

Рисование прямоугольников

При создании прямоугольников можно использовать два метода класса Graphics – это drawRect() и fillRect (). При помощи метода drawRect () рисуется только контур прямоугольника, а метод fillRect () позволяет нарисовать прямоугольник уже закрашенным каким-либо цветом (изначально по умолчанию цвет черный). Оба метода абсолютно идентичны по количеству и назначению параметров, поэтому рассмотрим прототип одного из них, а именно метода drawRect ().

public void drawRect(int x,
int y,
int width,
int height)

Параметры метода drawRect ():

  • x – координата точки по оси X для левого верхнего угла прямоугольника;
  • у – координата точки по оси Y для левого верхнего угла прямоугольника;
  • width – ширина рисуемого прямоугольника;
  • height – высота рисуемого прямоугольника.

В составе класса Graphics имеется еще один метод рисующий прямоугольник, но с закругленными углами – drawRoundRqct (). Этот метод имеет уже шесть параметров, где первые четыре параметра работают в том же ключе что и методы drawRect () и fillRect (), а два последних параметра определяют степень закругленности углов. В листинге 7.2 рисуется три разных по размеру прямоугольника, и закрашиваются тремя цветами: красным, зеленым и синим.

Для закрашивания прямоугольников применяется метод setColor (int red, int green, int blue) с тремя параметрами. Выставляя любое целочисленное значение от 0 до 255 для каждого параметра можно создавать разнообразную цветовую гамму, естественно учитывая при этом цветовые возможности телефона, на котором будет работать эта программа. Для того чтобы определить доступную цветность дисплея телефона, необходимо воспользоваться методами класса Display:

  • isColor () – если телефон поддерживает цветовую гамму, то возвращает значение true;
  • numColor() – определяет количество доступных цветов.

Листинг 7.2. Класс Main и класс Rectangles.

import javax .micro-edit ion. Icdui.*;
import javax.microedition.midlet.*;
public class Main extends MIDlet implements CommandListener
{
// команда выхода из программы
private Command exitMidlet = new Command("Выход", Command.EXIT, 0);
public void startAppO {
// создаем объект класса Rectangles
Rectangles myrec = new Rectangles();
// добавляем команду выхода
myrec .addCommand(exitMidlet);
myrec.setCommandListener(this);
Display.getDisplay(this).setCurrent(myrec);
}
public void pauseApp() {}
public void destroyApp(boolean unconditional){}
}
public void coiranandAction(Command c, Displayable d)
{
if (c == exitMidlet)
{
destroyApp (false),notifyDestroyed();
}
}
}
/ * *
класс Rectangles определен в файле Rectangles.Java,
*/
import javax..microedition. Icdui;
public class Rectangles extends Canvas
{
// конструктор
public Rectangles(){ super();
}
public void paint(Graphics g)
{
// устанавливается красный цвет
g.setColor(255, 0.0);
// рисуем первый прямоугольник
g.fillRect(/*x*/ 15,/*у*/ 30,/*ширина*/ 15,/*высота*/ 20);
// устанавливается зеленный цвет
g.setColor(0, 255, 0);
// рисуем второй прямоугольник
g.fillRect(30, 30, 15, 45);
// устанавливается синий цвет
g.setColor(0, 0, 255);
// рисуем третий прямоугольник
g.fillRect(45, 30, 15, 60);
// устанавливается синий цвет
g.setColor(255, 0, 0);
// рисуем прямоугольник с закругленными углами
g.drawRoundRect(70, 30, 40, 40, 10, 10);
}
}
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.