Рисуем круг в Java

В этой статье я расскажу, как можно нарисовать круг в Java с использованием библиотек java.awt и javax.swing, которые используются для создания компонентов графического интерфейса. Мы воспользуемся несколькими функциями класса Graphics2d, который предоставляет больше контроля над графическими компонентами, которые мы хотим нарисовать на экране.

Рисуем круг с использованием функции drawOval() в Java

В первом примере мы используем метод drawOval() класса Graphics2D, который позволяет создавать овальные формы, но для создания идеального круга. Для рисования круга мы сначала переопределяем функцию paint(Graphics g), которая рисует компонент с использованием класса Graphics.

Мы приводим Graphics к типу Graphics2D, чтобы использовать его методы и свойства. Теперь мы вызываем функцию drawOval() и передаем четыре аргумента. Первые два аргумента - это координаты x и y круга, а последние два аргумента определяют ширину и высоту рисуемого круга.

Наконец, мы расширяем JFrame из пакета javax.swing, чтобы создать окно с заданным размером и свойствами.

import javax.swing.*; import java.awt.*; public class DrawCircle extends JFrame { public DrawCircle(){ setTitle("Рисование круга"); setSize(400, 400); setVisible(true); setDefaultCloseOperation(EXIT_ON_CLOSE); } @Override public void paint(Graphics g) { Graphics2D g2d = (Graphics2D) g; g2d.drawOval(150, 150, 100, 100); } public static void main(String[] args) { new DrawCircle(); } }

Вывод:

Java рисует круг с использованием drawOval
Java рисует круг с использованием drawOval

Рисуем круг с использованием функции drawRoundRect() в Java

Другой метод класса Graphics2D, называемый drawRoundRect(), также может быть использован для рисования круга. Как следует из названия, он рисует закругленный прямоугольник. Как и в первом примере, мы переопределяем функцию paint(Graphics g), а затем вызываем метод drawRoundRect() класса Graphics2D.

drawRoundRect() принимает шесть аргументов; первые два - это координаты x и y, следующие два указывают ширину и высоту, и последние два аргумента - это ширина и высота дуги.

import javax.swing.*; import java.awt.*; public class DrawCircle extends JFrame { public DrawCircle(){ setTitle("Рисование круга"); setSize(250, 250); setVisible(true); setDefaultCloseOperation(EXIT_ON_CLOSE); } @Override public void paint(Graphics g) { Graphics2D g2d = (Graphics2D) g; g2d.drawRoundRect(40, 50, 90, 90, 200, 200); } public static void main(String[] args) { new DrawCircle(); } }

Вывод:

Java рисует круг с использованием drawRoundRect
Java рисует круг с использованием drawRoundRect

Рисуем круг с использованием Shape и draw() в Java

draw() - это еще одна функция класса graphics2D, которая принимает Shape в качестве аргумента. Shape - это интерфейс, который предоставляет свойства геометрической фигуры. Нам нужен круг, поэтому мы будем использовать Ellipse2D.Double(), который определяет высоту и ширину эллипса, а также координаты x и y внешнего прямоугольника.

В приведенном ниже примере мы передаем аргументы в Ellipse2D.Double(), и созданный объект Shape методу draw(). Этот метод в конечном итоге рисует круг в окне, которое мы создали с использованием JFrame.

import javax.swing.*; import java.awt.*; import java.awt.geom.Ellipse2D; public class DrawCircle extends JFrame { public DrawCircle() { setTitle("Рисование круга"); setSize(250, 250); setVisible(true); setDefaultCloseOperation(EXIT_ON_CLOSE); } @Override public void paint(Graphics g) { Graphics2D g2d = (Graphics2D) g; Shape circleShape = new Ellipse2D.Double(100, 100, 100, 100); g2d.draw(circleShape); } public static void main(String[] args) { new DrawCircle(); } }

Вывод:

Java рисует круг с использованием Shape и draw
Java рисует круг с использованием Shape и draw
Начать дискуссию