阿摩線上測驗 登入

申論題資訊

試卷:100年 - 100年專門職業及技術人員高等建築師、技師、第2次食品技師暨普通不動產經紀人、記帳士考高等_資訊技師#40649
科目:程式設計
年份:100年
排序:0

題組內容

一、試以 Java 語言撰寫下列各子題所要求之工作(假設所需的類別都已 import):(20 分)

申論題內容

⑵假設 face 是 Graphics 類別的物件,使用 Graphics 類別內之函數,畫一個具有眼睛 與嘴巴的人臉 face,其中頭部是由左上角座標(50, 50)且邊長 200 的正方形之內切 圓所構成,兩個眼睛分別由起點座標(100, 100)、(180, 100)且長度 20 的水平線所 構成,嘴巴則由起點座標(120, 200)且長度 80 的水平線所構成。

詳解 (共 1 筆)

詳解 提供者:hchungw

在Java的AWT或Swing框架中,你可以使用Graphics類的方法來繪製基本圖形。以下是一個簡單的範例代碼,展示如何根據你的描述繪製一個具有眼睛和嘴巴的人臉。這段代碼假定在一個繼承了JPanel並覆寫了paintComponent方法的類中使用,這是在Swing應用程序中進行自定義繪製的標準做法。
java
Copy code
import javax.swing.*;
import java.awt.*;
public class FacePanel extends JPanel {
    @Override
    protected void paintComponent(Graphics g) {
        super.paintComponent(g);
        // 繪製頭部,以正方形內切圓的方式實現
        // 正方形的左上角座標是(50, 50),邊長是200
        // drawOval方法需要圓的外接矩形的左上角座標和寬高,對於圓形,寬高相等
        g.drawOval(50, 50, 200, 200);
        // 繪製眼睛,兩條水平線分別從(100, 100)和(180, 100)開始,長度是20
        g.drawLine(100, 100, 120, 100); // 左眼
        g.drawLine(180, 100, 200, 100); // 右眼
        // 繪製嘴巴,一條水平線從(120, 200)開始,長度是80
        g.drawLine(120, 200, 200, 200);
    }
    public static void main(String[] args) {
        JFrame frame = new JFrame("Face Drawing");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.add(new FacePanel());
        frame.setSize(300, 300);
        frame.setVisible(true);
    }
}
這段代碼創建了一個簡單的圖形界面,其中包含一個面板,在該面板上繪製了一個人臉。paintComponent方法用於繪製人臉的各個部分,包括頭部、眼睛和嘴巴。這裡使用的drawOval方法繪製了頭部的圓形,使用drawLine方法繪製了眼睛和嘴巴的線條。
請注意,當你在Swing應用程序中工作時,你應該總是在paintComponent方法中進行繪圖,並且呼叫super.paintComponent(g)以確保面板的其他部分正確繪製,例如背景。此外,為了讓窗口出現並正確顯示繪製的圖形,你需要在主方法中創建和配置一個JFrame窗口,並將你的繪圖面板添加到窗口中。