在 Java 中畫一個圓
在本文中,我們將介紹如何使用用於建立 GUI 元件的庫 java.awt
和 javax.swing
在 Java 中繪製一個圓。我們將使用 Graphics2d
類的幾個函式,它為我們要在螢幕上繪製的圖形元件提供了更多的控制。
使用 Java 中的 drawOval()
函式繪製一個圓圈
在第一個例子中,我們使用 Graphics2D
類的 drawOval()
方法,它可以建立橢圓形,但也可以建立一個完美的圓。為了畫出這個圓,我們首先重寫使用 Graphics
類對元件進行繪畫的函式 paint(Graphics g)
。
我們將 Graphics
轉為 Graphics2D
型別以使用它的方法和屬性。現在我們呼叫 drawOval()
函式並傳遞四個引數。前兩個引數是圓的 x 和 y 座標,而後兩個引數指定了要繪製的圓的寬度和高度。
最後,我們從 javax.swing
包中擴充套件 JFrame
來建立一個具有指定大小和屬性的視窗框架。
import java.awt.*;
import javax.swing.*;
public class DrawCircle extends JFrame {
public DrawCircle() {
setTitle("Drawing a Circle");
setSize(400, 400);
setVisible(true);
setDefaultCloseOperation(EXIT_ON_CLOSE);
}
@Override
public void paint(Graphics g) {
Graphics2D g2d = (Graphics2D) g;
g2d.drawOval(150, 150, 100, 100);
}
public static void main(String[] args) {
new DrawCircle();
}
}
輸出:
使用 Java 中的 drawRoundRect()
函式繪製一個圓形
Graphics2D
類的另一個方法 drawRoundRect()
也可以用來畫圓。顧名思義,它畫的是一個圓角矩形。就像第一個例子一樣,我們重寫 paint(Graphics g)
函式,然後呼叫 Graphics2D
類的 drawRoundRect()
方法。
drawRoundRect()
接受六個引數,前兩個是 x 和 y 座標,後兩個告訴寬度和高度,最後兩個引數是圓弧的寬度和高度。
import java.awt.*;
import javax.swing.*;
public class DrawCircle extends JFrame {
public DrawCircle() {
setTitle("Drawing a Circle");
setSize(250, 250);
setVisible(true);
setDefaultCloseOperation(EXIT_ON_CLOSE);
}
@Override
public void paint(Graphics g) {
Graphics2D g2d = (Graphics2D) g;
g2d.drawRoundRect(40, 50, 90, 90, 200, 200);
}
public static void main(String[] args) {
new DrawCircle();
}
}
輸出:
在 Java 中使用 Shape
和 draw()
畫一個圓
draw()
是 graphics2D
類的另一個函式,它以 Shape
為引數。Shape
是一個提供幾何形狀屬性的介面。我們在這裡想要一個圓,所以我們將使用 Ellipse2D.Double()
來定義橢圓的高度和寬度,以及框架矩形的 x 和 y 座標。
在下面的例子中,我們將引數傳遞給 Ellipse2D.Double()
,並將建立的 Shape
物件傳遞給 draw()
方法。這個方法最終會在我們使用 JFrame
建立的視窗中畫一個圓。
import java.awt.*;
import java.awt.geom.Ellipse2D;
import javax.swing.*;
public class DrawCircle extends JFrame {
public DrawCircle() {
setTitle("Drawing a Circle");
setSize(250, 250);
setVisible(true);
setDefaultCloseOperation(EXIT_ON_CLOSE);
}
@Override
public void paint(Graphics g) {
Graphics2D g2d = (Graphics2D) g;
Shape circleShape = new Ellipse2D.Double(100, 100, 100, 100);
g2d.draw(circleShape);
}
public static void main(String[] args) {
new DrawCircle();
}
}
輸出:
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