Disegna un triangolo in Java

Rupam Yadav 12 ottobre 2023
  1. Usa java.awt e javax.swing con Path2D per disegnare un triangolo in Java
  2. Usa java.awt, javax.swing e drawPolygon per disegnare un triangolo in Java
  3. Disegna un triangolo usando drawLine() in Java
Disegna un triangolo in Java

In questo articolo impareremo come disegnare un triangolo in Java. Usiamo AWT (Abstract Window Component Toolkit), i primi pacchetti di sviluppo java per applicazioni di programmazione grafica. Swing è un kit di widget GUI di nuova concezione per Java, basato su AWT e dotato di più funzionalità.

Usa java.awt e javax.swing con Path2D per disegnare un triangolo in Java

Usiamo JFrame nella classe main per creare la finestra principale dove vengono aggiunti componenti come pulsanti, campi di testo per creare una GUI (Graphical User Interface). La classe Draw_A_Triangle estende JPanel, che è un contenitore leggero utilizzato per organizzare i componenti della GUI. JPanel viene aggiunto a JFrames utilizzando il metodo frame.add().

La classe Triangle_Shape estende la classe Path2D che fornisce una forma semplice ma flessibile che rappresenta un percorso geometrico arbitrario. Posizioniamo il primo punto usando il metodo moveTo() e altri punti usando il metodo LineTo(). Il metodo close() assicura che il triangolo sia chiuso correttamente.

Il metodo paintComponent() viene chiamato automaticamente quando il pannello viene creato o quando l’utente fa qualcosa nell’interfaccia utente che richiede il ridisegno. La Graphics2D fornisce un maggiore controllo sulla gestione del colore, la geometria e il layout del testo. Infine, usiamo g2d e chiamiamo draw per disegnare un triangolo.

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();
  }
}

Produzione:

Disegna un triangolo in Java - moveTo

Usa java.awt, javax.swing e drawPolygon per disegnare un triangolo in Java

Usiamo JFrame per creare un contenitore di primo livello, quindi aggiungiamo un pannello, che è la nostra classe DrawATriangle che estende JPanel ad esso.

Come mostrato nel codice sottostante, chiamiamo il metodo drawPolygon all’interno di paintComponent per creare un triangolo sull’oggetto Graphics g.

Il metodo drawPolygon(int x[], int y[], int numOfPoints) disegna un poligono di contorno secondo le coordinate specificate negli array x[] e y[]. Il numOfPoints fornisce il numero di punti che è 3 nel caso di un triangolo.

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);
  }
}

Produzione:

Disegna un triangolo in Java - drawPolygon

Disegna un triangolo usando drawLine() in Java

Nella classe DrawTriangle, estendiamo JComponent per utilizzare i componenti Swing come paintCompnent() e JFrame. Sostituiamo paintComponent(Graphics g) con il parametro Graphics g che possiamo usare per chiamare diverse funzioni di disegno.

Chiamiamo il metodo drawLine() per disegnare una linea. Dato che vogliamo creare un triangolo di tre linee, dobbiamo chiamare tre volte drawLine(). drawLine() accetta quattro argomenti, le coordinate x e y sia del primo che del secondo punto della linea.

Il metodo getPreferredSize() viene chiamato con il tipo di ritorno Dimension per specificare le dimensioni della finestra. Infine, per visualizzare il triangolo, creiamo un oggetto JFrame nel metodo main e vi aggiungiamo l’oggetto della classe DrawTriangle. Nota che dobbiamo chiamare jFrame.setVisible(true) poiché il frame è inizialmente invisibile.

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);
  }
}

Produzione:

Disegna un triangolo in Java - drawline

Autore: Rupam Yadav
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

Articolo correlato - Java GUI