Java Language
2D-графика в Java
Поиск…
Вступление
Графика - это визуальные изображения или рисунки на какой-либо поверхности, такие как стена, холст, экран, бумага или камень, чтобы сообщать, иллюстрировать или развлекать. Он включает в себя: графическое представление данных, как при автоматизированном проектировании и производстве, в наборе и графике, а также в учебном и развлекательном программном обеспечении. Изображения, созданные компьютером, называются компьютерной графикой.
Java 2D API является мощным и сложным. Существует несколько способов сделать 2D-графику на Java.
Пример 1: Рисование и заливка прямоугольника с использованием Java
Это пример, который печатает прямоугольник и заполняет цвет в прямоугольнике. https://i.stack.imgur.com/dlC5v.jpg
Большинство методов класса Graphics можно разделить на две основные группы:
- Методы рисования и заполнения, позволяющие отображать основные фигуры, текст и изображения
- Методы настройки атрибутов, которые влияют на то, как отображается этот рисунок и заполнение
Пример кода. Давайте начнем с небольшого примера рисования прямоугольника и заполнения цвета в нем. Там мы объявляем два класса, один класс - MyPanel, а другой - Test. В классе MyPanel мы используем drawRect () и fillRect () mathods для рисования прямоугольника и заполнения цвета в нем. Мы устанавливаем цвет методом setColor (Color.blue). Во втором классе мы тестируем нашу графику, которая является тестовым классом, мы создаем фрейм и помещаем MyPanel с p = новым объектом MyPanel () в нем. При запуске Test Class мы видим прямоугольник и синий цветный прямоугольник.
Первый класс: MyPanel
import javax.swing.*;
import java.awt.*;
// MyPanel extends JPanel, which will eventually be placed in a JFrame
public class MyPanel extends JPanel {
// custom painting is performed by the paintComponent method
@Override
public void paintComponent(Graphics g){
// clear the previous painting
super.paintComponent(g);
// cast Graphics to Graphics2D
Graphics2D g2 = (Graphics2D) g;
g2.setColor(Color.red); // sets Graphics2D color
// draw the rectangle
g2.drawRect(0,0,100,100); // drawRect(x-position, y-position, width, height)
g2.setColor(Color.blue);
g2.fillRect(200,0,100,100); // fill new rectangle with color blue
}
}
Второй класс: тест
import javax.swing.;
import java.awt.;
public class Test { //the Class by which we display our rectangle
JFrame f;
MyPanel p;
public Test(){
f = new JFrame();
// get the content area of Panel.
Container c = f.getContentPane();
// set the LayoutManager
c.setLayout(new BorderLayout());
p = new MyPanel();
// add MyPanel object into container
c.add(p);
// set the size of the JFrame
f.setSize(400,400);
// make the JFrame visible
f.setVisible(true);
// sets close behavior; EXIT_ON_CLOSE invokes System.exit(0) on closing the JFrame
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String args[ ]){
Test t = new Test();
}
}
Дополнительные пояснения относительно макета границы: https://docs.oracle.com/javase/tutorial/uiswing/layout/border.html
paintComponent ()
- Это основной метод рисования
- По умолчанию он сначала рисует фон
- После этого он выполняет обычную роспись (круг рисования, прямоугольники и т. Д.),
Graphic2D относится к классу Graphic2D
Примечание . Java 2D API позволяет вам легко выполнять следующие задачи:
- Рисуйте линии, прямоугольники и любую другую геометрическую форму.
- Заполните эти фигуры сплошными цветами или градиентами и текстурами.
- Нарисуйте текст с опциями для тонкого контроля над шрифтом и процессом рендеринга.
- Нарисуйте изображения, опционально применяя операции фильтрации.
- Применяйте операции, такие как компоновка и преобразование во время любой из вышеперечисленных операций рендеринга.
Пример 2: Обивка для рисования и наполнения
import javax.swing.*;
import java.awt.*;
public class MyPanel extends JPanel {
@Override
public void paintComponent(Graphics g){
// clear the previous painting
super.paintComponent(g);
Graphics2D g2 = (Graphics2D)g;
g2.setColor(Color.blue);
g2.drawOval(0, 0, 20,20);
g2.fillOval(50,50,20,20);
}
}
g2.drawOval (int x, int y, int height, int width);
Этот метод будет рисовать овал в указанных положениях x и y с заданной высотой и шириной.
g2.fillOval (int x, int y, int height, int width); Этот метод будет заполнять овал в указанных положениях x и y с заданной высотой и шириной.