Графіку в Java обслуговують класи Graphics і Graphics2D. Робота з графікою здійснюється в графічному контексті елементів, успадкованих від класу Component. Розуміти це можна так: на елементах управління, наприклад, JFrame, JPanel, JButton та інших, є можливість малювати. Такі елементи мають графічний контекст, в цьому контескте ми і малюємо. Все, що намалюємо в контексті буде показано на елементі. Класи Graphics і Graphics2D потрібні для роботи з графічним контекстом. Ми повинні отримати примірник такого класу і, використовуючи її методи, малювати. Отримати примірник контексту можна в методі paint:
public void paint(Graphics g);
цей метод успадковується з класу Component. Аргумент Graphics g створюється системою, а ми беремо його у готовому вигляді і використовуємо для малювання. При створенні елемента метод paint буде викликаний автоматично.Почнемо вивчати роботу з графікою в Java з класу Graphics.
Шаблон для роботи з графікою в аплеті класу MyShape
import java.awt.*;
import javax.swing.*;
public class MyShape extends JApplet{
public void paint(Graphics g) {
super.paint(g);
//тут вводимо команди для малювання геометричних фігур наведені в прикладах
}
}
Вивод тексту
Шаблонg.drawString(str, x, y);
Приклад
g.drawString("проба ", 100, 140); // виводимо текст
Задаємо колір
g.setColor(Color.blue);//Лінія
Шаблон g.drawLine(x1, y1, x2, y2); //x1, y1 -початкова точка x2, y2 - кінцева точка
Приклад
g.drawLine(5, 25, 350, 30);//лінія
Прямокутник
Шаблон g.fillRect(x, y, width, height);Приклад
g.fillRect(5, 35, 200, 50);
Заокруглений прямокутник
Шаблон g.fillRoundRect(x, y, width, height, arcWidth, arcHeight);Приклад
g.fillRoundRect(5, 50,200, 10, 50, 50);//прямокутник закруглений
Овал та Коло
Шаблон g.drawOval(x, y, width, height);Приклад
g.drawOval(25, 25, 100, 50);//овал стиснутий
g.setColor(Color.blue);// задаємо колір
g.drawOval(25, 25, 50, 100);//овал витягнутий
g.fillOval(130, 50, 40, 80);//заповнений овал
g.drawOval(250, 250, 100, 100);//якщо width=height то маємо коло
Багатокутники
Багатокутники можна будувати двома способамиІ спосіб через масив точок
Задаємо два масиви точок, один для x, другий для y, і тоді даємо команду
g.drawPolygon(xPoints, yPoints, nPoints);
Приклад
int x[]={10,50,100,150,100};
int y[]={10,150,170,150,50};
g.drawPolygon(x, y, 5); // 5 - точок в багатокутнику
ІІ спосіб через масив об'єкт Polygon
Polygon pol= new Polygon(); //створюємо об'єкт pol
//pol.addPoint(arg0, arg1); додаємо точки багатокутника
pol.addPoint(10, 20);
pol.addPoint(20, 30);
pol.addPoint(40, 20);
pol.addPoint(40, 10);
g.fillPolygon(pol); //виведе заповнений багатокутник
g.drawPolygon(pol); //виведе тільки сторони многокутника
Ламана
Будується аналогічно до багатокутників командою drawPolyline g.drawPolyline(xPoints, yPoints, nPoints);Приклад
Будуємо графік функції у=x2
//(0,0)->(220,350) переміщаємо початок координат
g.drawString("Y", 225, 80);
g.drawLine(220, 70, 220, 350);//вісь У
g.drawString("X", 350, 346);
g.drawLine(20, 350, 360, 350);//вісь Х
int nPoint = 120;
int[] xArray = new int [nPoint+1];
int[] yArray = new int [nPoint+1];
int i=0;
for (double x=-4;x<=4;x=x+0.1){
xArray[i]=220+(int)(x*20);
yArray[i]=350-(int)(x*x*20);
i++;
}
g.setColor(Color.blue);
g.drawPolyline(xArray, yArray, i);
g.drawString("y = f(x)", 280, 267);
Немає коментарів:
Дописати коментар