Програмування Java-аплетів. Створення і виконання Java-aплету за допомогою JCreator, страница 3

Переміщує початок координат графічного контексту в точку (х, у) поточної координатної системи.

Примітка. Яклегкобачити, класGraphics немаєметодудляпобудовиточки. Дляпобудови зображенняпоточкахвикористовуєтьсямеханізмстворенняоб'єктаImage задопомогоюмасиву.

Для встановлення поточного кольору використовується параметр класу Color. Цей клас має такі константи для визначення стандартних кольорів та конструктори для створення нестандартних кольорів.

BLACK, BLUE, CYAN, DARK_GRAY, GRAY, GREEN, LIGHT_GRAY, MAGENTA, ORANGE, pink,  RED, white,  yellow - стандартні кольори (відповідні до імен).

Color(float r, float g, float b)

Створює непрозорий колір в системі sRGB за вказаними гегі(червоний), дгееп(зелений), та ЬІие(синій) значеннями з діапазону (0.0 - 1.0). Color(float r,  float g,  float b,  float a)

Створює sRGB колір за вказаними значеннями red, green, blue, та аірпа(прозорості) з діапазону (0.0- 1.0).

4


Об'ектно-орієнтоване програмування                                                                        Java2

Color(int  r,   int g,   int b)

            Створює непрозорий колір в системі sRGB за вказаними redі(червоний), , green(зелений), та blue(синій) значеннями з діапазону (0 - 255).

Створює sRGB колір за вказаними значеннями red, green, blue, та аlрhа(прозорості) з діапазону (0 - 255).

Приклад застосування класів наведеної ієрархії:

Файл, Star.Java, що містить клас Star:

inport java.awt.*;

/** Клас Star- наступний клас ієрархії

  * він є спадкоємцем класу Circleі,   крім того що може предок,

  * він може обертатись і відображатись відповідно до кута  повороту

*/

class Starextends Circle {

    // масиви вузлових точок

finalstaticinttx[] = {-100,  50,        0,   -50,   100};

   finalstaticintty[]   =   {     50,   -50,   100,   -50,     50};

double[][] viewM =   {{1,   0},   {0,   1}}; // поточна матриця повороту

introtation = 0;                           // кут повороту Зірки

    /** Конструктор об'єкту Star  */

public Star(int ax,int ay,int aradius,Color acol){

super (ax,   ay,   aradius,   acol);// Викликаємо конструктор предка - Circle)

}

/** Захищені методи класу Star  */

    protected int getTx(int і) {

      return (int) ((tx[i]*viewM[0][0] + ty[i] * viewM[0][l]) * getRadius());

 }

    piiblic void rotate (int angle) {

         rotation += angle;

         viewM[0][0] = Math.cos(Math.toRadians(rotation));

         viewMI1][0] = Math.sin(Math.toRadians(rotation));

         viewM[0][1] = -viewM[1][0];  

         viewM[l][lJ = viewM[0][0];

    }

    /** Відкритий метод draw, його буде викликати аплєт,що містить Зірку

* для її відображення у своєму вікні

    */

    public void draw(Graphics g) {

      int[] x, y;

x = new int[tx.length];

у = new int[ty.length];

for(int i=0; i<tx.length; i++) {

  x[i] = getX()+getTx(i)/100;

  y[i] = getY()+getTy(i>/100;

}

      g.setColor(getColor());

      g.drawPolygon(x,y,5);

5

Об'єктно-орієнтоване програмування                                                                                                                                                   Java2

Файл аплету Lr2Java.Java, що містить клас Lr2java, який використовує клас Star:

 /*

* @ (#)Lr2java.java1.0 03/03/09

*/

// Імпортуємокласипакетівjava.awtтаJava.appletзавимогою importjava.awt.*; importjava.applet.*;

// ІмпортуємокласKeyEventтаінтерфейсKeyListenerдлявзаємодіїзклавіатурою importj ava.awt.event.KeyListener; importjava.util.EventListener; importJava.awt.event.KeyEvent;

/** Головнийкласнашоїпрограми -