Dibujar un triángulo en Java

Rupam Yadav 12 octubre 2023
  1. Usar java.awt y javax.swing con Path2D para dibujar un triángulo en Java
  2. Usa java.awt, javax.swing y drawPolygon para dibujar un triángulo en Java
  3. Dibujar un triángulo con drawLine() en Java
Dibujar un triángulo en Java

En este artículo, aprenderemos a dibujar un triángulo en Java. Usaremos AWT (Abstract Window Component Toolkit), los primeros paquetes de desarrollo en java para aplicaciones de programación gráfica. Swing es un nuevo kit de widgets de interfaz gráfica de usuario para Java, basado en AWT y tiene más funcionalidades.

Usar java.awt y javax.swing con Path2D para dibujar un triángulo en Java

Usamos JFrame en la clase main para crear la ventana principal donde se añaden componentes como botones, campos de texto para crear una GUI (Graphical User Interface). La clase Draw_A_Triangle extiende JPanel, que es un contenedor ligero utilizado para organizar los componentes de la GUI. El JPanel se añade a los JFrames utilizando el método frame.add().

La clase Triangle_Shape extiende la clase Path2D que proporciona una forma simple pero flexible que representa una trayectoria geométrica arbitraria. Colocamos el primer punto utilizando el método moveTo() y los puntos adicionales utilizando el método LineTo(). El método close() se encarga de que el triángulo se cierre correctamente.

El método paintComponent() es llamado automáticamente cuando se crea el panel o cuando el usuario hace algo en la interfaz de usuario que requiere ser redibujado. El método Graphics2D proporciona más control sobre la gestión del color, la geometría y el diseño del texto. Finalmente, usamos g2d y llamamos a draw para dibujar un 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:

Dibujar un triángulo en Java - moveTo

Usa java.awt, javax.swing y drawPolygon para dibujar un triángulo en Java

Utilizamos JFrame para crear un contenedor de nivel superior, y luego añadir un panel, que es nuestra clase DrawATriangle que extiende JPanel, a la misma.

Como se muestra en el código siguiente, llamamos al método drawPolygon dentro del paintComponent para crear un triángulo en el objeto Graphics g.

El método drawPolygon(int x[], int y[], int numOfPoints) dibuja un polígono según las coordenadas especificadas en los arrays x[] e y[]. El numOfPoints da el número de puntos que es 3 en el caso de un 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:

Dibujar un triángulo en Java - drawPolygon

Dibujar un triángulo con drawLine() en Java

En la clase DrawTriangle, extendemos JComponent para utilizar los componentes Swing como paintCompnent() y JFrame. Sobreescribimos paintComponent(Graphics g) con el parámetro Graphics que podemos utilizar para llamar a varias funciones de dibujo.

Llamamos al método drawLine() para dibujar una línea. Como queremos crear un triángulo con tres líneas, tenemos que llamar a drawLine() tres veces. El método drawLine() toma cuatro argumentos, las coordenadas x e y del primer y segundo punto de la línea.

El método getPreferredSize() es llamado con el tipo de retorno Dimension para especificar las dimensiones de la ventana. Finalmente, para mostrar el triángulo, creamos un objeto JFrame en el método main y le añadimos el objeto de la clase DrawTriangle. Ten en cuenta que tenemos que llamar a jFrame.setVisible(true) ya que el marco es inicialmente invisible.

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:

Dibujar un triángulo en 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

Artículo relacionado - Java GUI