Dibujar un triángulo en Java
-
Usar
java.awt
yjavax.swing
conPath2D
para dibujar un triángulo en Java -
Usa
java.awt
,javax.swing
ydrawPolygon
para dibujar un triángulo en Java -
Dibujar un triángulo con
drawLine()
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:
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 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:
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