Desenhar um Triângulo em Java

Rupam Yadav 15 fevereiro 2024
  1. Utilize java.awt e javax.swing com Path2D para desenhar um triângulo em Java
  2. Utilize java.awt, javax.swing e drawPolygon para desenhar um triângulo em Java
  3. Desenhar um Triângulo utilizando drawLine() em Java
Desenhar um Triângulo em Java

Neste artigo, aprenderemos como desenhar um triângulo em Java. Utilizamos AWT (Abstract Window Component Toolkit), os primeiros pacotes de desenvolvimento java para aplicações de programação gráfica. O Swing é um novo kit de widget GUI desenvolvido para Java, baseado no AWT e tem mais funcionalidades.

Utilize java.awt e javax.swing com Path2D para desenhar um triângulo em Java

Utilizamos JFrame na classe main para criar a janela principal onde componentes como botões, campos de texto são adicionados para criar uma GUI (Graphical User Interface). A classe Draw_A_Triangle estende o JPanel, que é um recipiente leve utilizado para organizar componentes GUI. O JPanel é adicionado a JFrames utilizando o método frame.add().

A classe Triangle_Shape estende a classe Path2D que fornece uma forma simples mas flexível que representa um caminho geométrico arbitrário. Colocamos o primeiro ponto utilizando o método moveTo() e pontos adicionais utilizando o método LineTo(). O método close() garante que o triângulo é fechado correctamente.

O método paintComponent() é chamado automaticamente quando o painel é criado ou quando o utilizador faz algo na interface do utilizador que requer um novo desenho. O método Graphics2D proporciona mais controlo sobre a gestão das cores, geometria e disposição do texto. Finalmente, utilizamos g2d e chamamos draw para desenhar um triângulo.

import java.awt.*;
import java.awt.geom.Path2D;
import java.awt.geom.Point2D;
import javax.swing.*;

public class Draw_A_Triangle extends JPanel {
  public void paintComponent(Graphics g) {
    Triangle_Shape triangleShape = new Triangle_Shape(
        new Point2D.Double(50, 0), new Point2D.Double(100, 100), new Point2D.Double(0, 100));
    Graphics2D g2d = (Graphics2D) g.create();
    g2d.draw(triangleShape);
  }
  public static void main(String[] args) {
    JFrame.setDefaultLookAndFeelDecorated(true);
    JFrame frame = new JFrame("Draw Triangle");
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setBackground(Color.white);
    frame.setSize(200, 200);

    Draw_A_Triangle panel = new Draw_A_Triangle();
    frame.add(panel);
    frame.setVisible(true);
  }
}
class Triangle_Shape extends Path2D.Double {
  public Triangle_Shape(Point2D... points) {
    moveTo(points[0].getX(), points[0].getY());
    lineTo(points[1].getX(), points[1].getY());
    lineTo(points[2].getX(), points[2].getY());
    closePath();
  }
}

Resultado:

Desenhar um triângulo em Java - moveTo

Utilize java.awt, javax.swing e drawPolygon para desenhar um triângulo em Java

Utilizamos JFrame para criar um recipiente de nível superior, e depois adicionamos um painel, que é a nossa classe DrawATriangle que lhe estende o JPanel, a ele.

Como mostrado no código abaixo, chamamos o método drawPolygon dentro do paintComponent para criar um triângulo no objecto Graphics - g.

O método drawPolygon(int x[], int y[], int numOfPoints) desenha um polígono de contorno de acordo com as coordenadas especificadas nos arrays x[] e y[]. O numOfPoints dá o número de pontos que é 3 no caso de um triângulo.

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

public class DrawATriangle extends JPanel {
  public void paintComponent(Graphics g) {
    int[] x = {50, 100, 0};
    int[] y = {0, 100, 100};
    g.drawPolygon(x, y, 3);
  }

  public static void main(String[] args) {
    JFrame.setDefaultLookAndFeelDecorated(true);
    JFrame frame = new JFrame("Draw a Polygon");
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setBackground(Color.white);
    frame.setSize(300, 200);

    DrawATriangle panel = new DrawATriangle();
    frame.add(panel);
    frame.setVisible(true);
  }
}

Resultado:

Desenhar um triângulo em Java - drawPolygon

Desenhar um Triângulo utilizando drawLine() em Java

Na classe DrawTriangle, estendemos JComponent para utilizar os componentes Swing como PintCompnent() e JFrame. Substituímos paintComponent(Graphics g) pelo parâmetro Graphics g que podemos utilizar para chamar várias funções de desenho.

Chamamos o método drawLine() de desenhar uma linha. Como queremos criar um triângulo com três linhas, precisamos de chamar drawLine()três vezes. O método drawLine() leva quatro argumentos, as coordenadas x e y tanto do primeiro como do segundo ponto da linha.

O método getPreferredSize() é chamado com o tipo de retorno de Dimension para especificar as dimensões da janela. Finalmente, para exibir o triângulo, criamos um objecto JFrame no método main e adicionamos-lhe o objecto da classe DrawTriangle. Note-se que temos de chamar jFrame.setVisible(true), uma vez que a moldura é inicialmente invisível.

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

public class DrawTriangle extends JComponent {
  @Override
  protected void paintComponent(Graphics g) {
    super.paintComponent(g);

    g.drawLine(120, 130, 280, 130);
    g.drawLine(120, 130, 200, 65);
    g.drawLine(200, 65, 280, 130);
  }

  public Dimension getPreferredSize() {
    return new Dimension(500, 300);
  }

  public static void main(String[] args) {
    JFrame jFrame = new JFrame();
    jFrame.add(new DrawTriangle());
    jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    jFrame.pack();
    jFrame.setVisible(true);
  }
}

Resultado:

Desenhar um triângulo em Java - drawline

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