Рейтинг  

Яндекс.Метрика
Яндекс цитирования
 

   

Статистика  

Пользователи
7
Материалы
581
Кол-во просмотров материалов
2773390
   

Для работы с графикой в Java имеется класс Graphics пакета java.awt. Поскольку класс Graphics является абстрактным, т.к. графический контекст сильно зависит от конкретной графической платформы, создать экземпляры данного класса не удастся. Для простоты работы и снятия необходимости в самостоятельной реализации абстрактных методов, каждая виртуальная машина Java реализует эти методы и создает объекты данного класса методом getGraphics() или с помощью аргумента метода paint().

Рисование возможно на любых контейнерах. В рамках данного пособия рассмотрим рисование непосредственно в окне. Для начала нужно создать так называемый «лист для рисования», или окно.
Далее на примере рассмотрим процесс рисования.


01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28


import java.awt.*;
import javax.swing.*;

public class Gr1 extends JFrame {
  Gr1(String s) {
    super(s);
    setLayout(null);
    setSize(300,500);
    setVisible(true);
    this.setDefaultCloseOperation(EXIT_ON_CLOSE);
  }

  public void paint(Graphics my_picture){
    my_picture.setColor(Color.LIGHT_GRAY);
    my_picture.fillRect(0, 0, 300, 800);
    my_picture.setColor(Color.BLACK);
    my_picture.drawOval(90, 50, 100, 100);
    my_picture.drawLine(140, 150, 140, 300);
    my_picture.drawLine(140, 300, 100, 400);
    my_picture.drawLine(140, 300, 180, 400);
    my_picture.drawLine(140, 200, 75, 250);
    my_picture.drawLine(140, 200, 205, 250);
  }

  public static void main(String[] args) {
    new Gr1("");
  }
}
            

В данном примере использован метод paint(). Сначала заливаем рабочую область (строка 15) светло-серым цветом (строка 14), затем устанавливаем обратно черный цвет чернил (строка 16) и рисуем фигуру человечка (строки 17-22).

Графический объект с именем my_picture мы создали с помощью аргумента метода paint(), затем в самом методе использовали данный объект для рисования. Объект my_picture наследует все методы класса Graphics, вызывая которые можно рисовать.

Класс Graphics имеет очень большой набор методов для работы с графикой, рассмотрим наиболее часто используемые методы:

drawLine(int x1, int y1, int x2, int y2); рисует линию из точки с координатами (x1,y1) до точки с координатами (x2,y2).
drawOval(int x1, int y1, int width, int height); рисует овал (эллипс) с координатами левого верхнего угла (x1,y1), шириной width и высотой height.
drawRect(int x1, int y1, int width, int height); рисует прямоугольник с координатами левого верхнего угла (x1,y1), шириной width и высотой height.
drawArc(int x1, int y1, int width, int height, int startAngle, int arcAngle); строит окружность с координатами верхнего левого угла (x1,y1) затем отсекает и рисует арку сектора с углом arcAngle. Начальный угол, от которого начинается отсечение startAngle.
drawPolygon(int[] xPoints, int[] yPoints, int points); рисует многоугольник по точкам, которые содержат массивы xPoints и yPoints, с количеством переломов points.
fillOval(int x1, int y1, int width, int height);
fillRect(int x1, int y1, int width, int height);
fillPolygon(int[] xPoints, int[] yPoints, int points);
fillArc(int x1, int y1, int width, int height, int startAngle, int arcAngle);
данные четыре метода проделывают то же что и предыдущие, при этом заливая полученные фигуры текущим цветом.
setColor(Color c); устанавливает текущий цвет. c – объект типа Color.
getColor(Color); возвращает значение текущего цвета, точнее объект типа Color.
drawstring(String s, int x, int y); выводит строку символов s с координатами (x,y).

Для установки текущего цвета чернил нужно в качестве аргумента метода setColor() указать объект типа Color. Можно предварительно создать такой объект конструкцией

Color clr = new Color();

Конструкторов цвета несколько, а точнее 7 штук, наиболее удобным является конструктор Color(int r, int g, int b), где r – целое число типа int – составляющая красного цвета, g – зеленого, b – голубого. Каждая составляющая имеет длину 1 байт или 256 вариаций (0-255). С помощью данного конструктора можно получить 16,7 миллионов возможных цветов.

Однако можно не пользоваться конструктором и не создавать цветовые объекты, можно установить цвет в методе getColor(), как показано выше в листинге, выбрав один из 12 цветов, просто введите Color, далее введите точку и ассистент NetBeans выдаст все варианты цветов. Так же можно вызвать метод getColor() класса Color, и указать ему в качестве аргумента строку, которая будет преобразована в цвет.

С помощью данных методов можно нарисовать практически любой рисунок, все зависит только от сложности.

Так же, класс Graphics поддерживает различные шрифты, их размеры, цвет и другие параметры.

© https://studfile.net/preview/3731478/page:26/

   
   

Login Form