close

1.題目說明:

2.設計說明:

(1)設計一個置中,且大小為640x480的視窗,其標題為『2D雪人繪圖』,背景顏色為藍色(Blue)

(2)使用Java的繪圖方法,於程式執行時,將執行結果參考畫面中的雪人繪出。雪人眼睛、鼻子為黑色(Black),嘴巴及圍巾是紅色(red),Snowman的文字顯示於藍底畫面時,字體為紅色,顯示於白底畫面時(雪人),字體為綠色

(3)按下視窗右上角關閉按鈕,將會關閉視窗並結束應用程式的執行。

※備註:圖形位置與大小不須完全一致,但顏色及圖形需相同。

 

參考答案:

import javax.swing.*;
import java.awt.*;
 
class JDD01
{   
    public static void main(String[] args) 
    {   
        JFrame frame = new JFrame("2D 雪人繪圖");   
        frame.add(new MyCanvas());    
        frame.setSize(640, 480);
        frame.setLocationRelativeTo(null);
        frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        frame.pack();//調整視窗大小
        frame.setVisible(true);
    } 
}

class MyCanvas extends Canvas 
{   
    public MyCanvas() 
    {   
        this.setSize(500,480);
        this.setBackground(Color.blue);
    }
    
    public void paint(Graphics g) 
    {   
        g.setColor(Color.WHITE);
        g.fillOval(130, 180, 250, 250);    //雪人的身體
        g.setColor(Color.red);
        g.fillRect(280, 220, 50, 90);    //圍巾
        g.setColor(Color.white);
        g.fillOval(150, 60, 200, 200);    //雪人的頭
        g.setColor(Color.black);
        g.fillOval(200, 120, 20, 30);    //雪人的眼睛
        g.fillOval(270, 120, 20, 30);
        g.fillArc(170, 140, 80, 60, 330, 30);//雪人的鼻子
        g.setColor(Color.red);
        g.drawArc(195, 160, 100, 60, 180, 180);//雪人的嘴巴
        
        //設定以藍色做XOR運算轉換顏色(為了在不同背景色顯示不同顏色)
        g.setXORMode(Color.blue);
        g.setFont(new Font(null,Font.PLAIN,48));
        g.drawString("Snowman", 150, 440);
        
    }    

}

執行結果:

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 Dino 的頭像
    Dino

    Dino`s Note

    Dino 發表在 痞客邦 留言(0) 人氣()