Dibujar un círculo en Java

Rupam Yadav 12 octubre 2023
  1. Dibujar un círculo con la función drawOval() en Java
  2. Dibujar un círculo usando la función drawRoundRect() en Java
  3. Dibujar un círculo usando Shape y draw() en Java
Dibujar un círculo en Java

En este artículo, introduciremos cómo podemos dibujar un círculo en Java utilizando las librerías java.awt y javax.swing que se utilizan para crear componentes GUI. Utilizaremos varias funciones de la clase Graphics2d que proporciona más control sobre los componentes gráficos que queremos dibujar en la pantalla.

Dibujar un círculo con la función drawOval() en Java

En el primer ejemplo, utilizamos el método drawOval() de la clase Graphics2D que podría crear formas ovaladas, pero para crear un círculo perfecto. Para dibujar el círculo, primero anulamos la función paint(Graphics g) que pinta el componente utilizando la clase Graphics.

Convertimos la clase Graphics en Graphics2D para utilizar sus métodos y propiedades. Ahora llamamos a la función drawOval() y le pasamos cuatro argumentos. Los dos primeros argumentos son las coordenadas x e y del círculo, mientras que los dos últimos especifican la anchura y la altura del círculo a dibujar.

Por último, extendemos JFrame del paquete javax.swing para crear un marco de ventana con el tamaño y las propiedades especificadas.

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

public class DrawCircle extends JFrame {
  public DrawCircle() {
    setTitle("Drawing a Circle");
    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();
  }
}

Resultado:

Java dibuja un círculo usando drawoval

Dibujar un círculo usando la función drawRoundRect() en Java

Otro método de la clase Graphics2D llamado drawRoundRect() también puede ser utilizado para dibujar un círculo. Como su nombre indica, pinta un rectángulo redondeado. Al igual que en el primer ejemplo, anulamos la función paint(Graphics g) y llamamos al método drawRoundRect() de la clase Graphics2D.

El método drawRoundRect() acepta seis argumentos; los dos primeros son las coordenadas x e y, los dos siguientes indican la anchura y la altura, y los dos últimos argumentos son la anchura y la altura del arco.

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

public class DrawCircle extends JFrame {
  public DrawCircle() {
    setTitle("Drawing a Circle");
    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();
  }
}

Resultado:

Java dibuja un círculo usando drawRoundRect

Dibujar un círculo usando Shape y draw() en Java

La función draw() es otra función de la clase graphics2D que toma una Shape como argumento. Shape es una interfaz que proporciona las propiedades de una forma geométrica. En este caso queremos un círculo, así que utilizaremos Ellipse2D.Double() que define la altura y la anchura de la elipse, así como las coordenadas x e y del rectángulo que la enmarca.

En el siguiente ejemplo, pasamos los argumentos a Ellipse2D.Double(), y un objeto Shape creado al método draw(). Este método finalmente dibujará un círculo en la ventana que hemos creado con JFrame.

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

public class DrawCircle extends JFrame {
  public DrawCircle() {
    setTitle("Drawing a Circle");
    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();
  }
}

Resultado:

Java dibuja un círculo usando shape y draw

Rupam Yadav avatar Rupam Yadav avatar

Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.

LinkedIn

Artículo relacionado - Java GUI