Desenhe um Círculo em Java

Rupam Yadav 12 outubro 2023
  1. Desenhar um círculo utilizando a função drawOval() em Java
  2. Desenhe um círculo utilizando a função drawRoundRect() em Java
  3. Desenhe um círculo utilizando Shape e draw() em Java
Desenhe um Círculo em Java

Neste artigo, vamos introduzir como podemos desenhar um círculo em Java utilizando bibliotecas java.awt e javax.swing que são utilizadas para criar componentes GUI. Utilizaremos várias funções da classe Graphics2d que proporciona mais controlo sobre os componentes gráficos que pretendemos desenhar no ecrã.

Desenhar um círculo utilizando a função drawOval() em Java

No primeiro exemplo, utilizamos o método drawOval() da classe Graphics2D que poderia criar formas ovais, mas para criar um círculo perfeito. Para desenhar o círculo, primeiro substituímos a função paint(Graphics g) que tem pintado o componente utilizando a classe Graphics.

Fundimos Graphics a Graphics2D tipo para utilizar os seus métodos e propriedades. Agora chamamos à função drawOval() e passamos quatro argumentos. Os dois primeiros argumentos são as coordenadas x e y do círculo, enquanto os dois últimos argumentos especificam a largura e a altura do círculo a ser desenhado.

Finalmente, estendemos JFrame do pacote javax.swing para criar uma moldura de janela com o tamanho e as propriedades 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 desenhar um círculo utilizando drawoval

Desenhe um círculo utilizando a função drawRoundRect() em Java

Outro método da classe Graphics2D chamado drawRoundRect() também pode ser utilizado para desenhar um círculo. Como o seu nome sugere, pinta um rectângulo redondo. Tal como o primeiro exemplo, substituímos a função paint(Graphics g) e depois chamamos o método drawRoundRect() da classe Graphics2D.

O drawRoundRect() aceita seis argumentos; os dois primeiros são coordenadas x e y, os dois seguintes dizem a largura e a altura, e os dois últimos argumentos são a largura e a altura do 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 desenha um círculo utilizando drawRoundRect

Desenhe um círculo utilizando Shape e draw() em Java

O draw() é outra função da classe graphics2D que toma como argumento um Shape. Shape é uma interface que fornece as propriedades de uma forma geométrica. Queremos aqui um círculo, por isso vamos utilizar Ellipse2D.Double() que define a altura e largura da elipse, bem como as coordenadas x e y do rectângulo de enquadramento.

No exemplo abaixo, passamos os argumentos para Ellipse2D.Double(), e um objecto criado Shape para o método draw(). Este método irá finalmente desenhar um círculo na janela que criámos utilizando 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 desenha um círculo utilizando a forma e desenho

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

Artigo relacionado - Java GUI