在 Java 中畫一個三角形
-
在 Java 中使用
java.awt
和javax.swing
與Path2D
畫一個三角形 -
在 Java 中使用
java.awt
、javax.swing
和drawPolygon
畫一個三角形 -
在 Java 中使用
drawLine()
繪製一個三角形
在本文中,我們將學習如何在 Java 中繪製一個三角形。我們使用 AWT
(Abstract Window Component Toolkit),這是最早的 Java 開發包,用於圖形程式設計應用。Swing
是在 AWT
的基礎上新開發的 Java 的 GUI 小控制元件套件,功能較多。
在 Java 中使用 java.awt
和 javax.swing
與 Path2D
畫一個三角形
我們在 main
類中使用 JFrame
來建立主視窗,在主視窗中新增按鈕、文字欄位等元件來建立 GUI(圖形使用者介面)。Draw_A_Triangle
類擴充套件了 JPanel
,它是一個輕量級的容器,用來組織 GUI 元件。JPanel
使用 frame.add()
方法新增到 JFrames
上。
Triangle_Shape
類擴充套件了 Path2D
類,它提供了一個簡單而靈活的形狀,表示一個任意的幾何路徑。我們使用 moveTo()
方法放置第一個點,使用 LineTo()
方法放置其他點。close()
方法確保三角形正確關閉。
paintComponent()
方法在建立面板或使用者在使用者介面上做一些需要重新繪製的事情時自動呼叫。Graphics2D
提供了更多的顏色管理、幾何圖形和文字佈局的控制。最後,我們使用 g2d
並呼叫 draw
來繪製一個三角形。
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();
}
}
輸出:
在 Java 中使用 java.awt
、javax.swing
和 drawPolygon
畫一個三角形
我們使用 JFrame
建立一個頂層容器,然後在其中新增一個面板,也就是我們的 DrawATriangle
類,它是 JPanel
的擴充套件。
如下面的程式碼所示,我們呼叫 paintComponent
裡面的 drawPolygon
方法,在 Graphics
物件 g
上建立一個三角形。
drawPolygon(int x[], int y[], int numOfPoints)
方法按照 x[]
和 y[]
陣列中指定的座標繪製一個輪廓多邊形。numOfPoints
給出了點的數量,在三角形的情況下是 3。
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);
}
}
輸出:
在 Java 中使用 drawLine()
繪製一個三角形
在 DrawTriangle
類中,我們擴充套件 JComponent
來使用 Swing
元件,如 paintCompnent()
和 JFrame
。我們用 Graphics
引數 g
覆蓋 paintComponent(Graphics g)
,可以用來呼叫幾個繪製函式。
我們呼叫 drawLine()
方法來畫一條線。由於我們要建立一個三條線的三角形,我們需要呼叫 drawLine()
三次。drawLine()
需要四個引數,即線的第一點和第二點的 x 和 y 座標。
呼叫 getPreferredSize()
方法,返回型別為 Dimension
,指定視窗的尺寸。最後,為了顯示三角形,我們在 main
方法中建立一個 JFrame
物件,並將 DrawTriangle
類的物件新增到其中。注意,我們必須呼叫 jFrame.setVisible(true)
,因為框架最初是不可見的。
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);
}
}
輸出:
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