物件導向程式設計

 

 

第六章、設計Java Applet

 

 


授課教師:陳慶瀚

WWW : http://www.miat.ee.isu.edu.tw/java

E-mail : pierre@isu.edu.tw   

 


6.3 Applet的圖形界面

座標系統

 

繪圖物件

 

  • Java的所有繪圖功能都是透過 Graphics 物件
  •   Graphics 物件是java.awt.Graphics類別的一個instance
  •   Graphics 物件經由Applet的成員函式 paint() 傳入Applet

(1)直線

g.drawLine(x1, y1, x2, y2) 

(x1, y1)是直線起點, (x2, y2)是直線終點g Graphics物件。

範例程式如下:

import java.applet.*;    
import java.awt.*; 
 
public class SimpleLine extends Applet 
{
        public void paint(Graphics g) 
        {
                g.drawLine(0, 0, this.getSize().width, this.getSize().height);
        }
}
DEMO

(2)長方形

使用成員函式:
public void drawRect(int x, int y, int width, int height)

x,y是左上角座標,width是長方形寬度,height是長方形高度。DEMO

使用

fillRect(int x, int y, int width, int height)

則可畫出填滿的長方形,其顏色為Grahpics物件的預設顏色,若要改成紅色,可加入

g.setColor(Color.red)

後再呼叫fillRect

DEMO

(3) 其它繪圖成員函式

畫橢圓的成員函式:
public void drawOval(int left, int top, int width, int height) DEMO

public void fillOval(int left, int top, int width, int height)

left top是左上角座標,widthheight室外接長方形的寬和高,若width=height,則為圓。

畫圓弧的成員函式:

public void drawArc(int left, int top, int width, int height, 
 int startangle, int stopangle)
public void fillArc(int left, int top, int width, int height, 
 int startangle, int stopangle)
畫多邊形(Polygon)

public Polygon(int[] xpoints, int[] ypoints, int npoints)

 
例:DEMO
int[] xpoints = {0, 3, 0};
int[] ypoints = {0, 0, 4};
Polygon myTriangle = new Polygon(xpoints, ypoints, 3);
g.drawPolygon(myTriangle);
 
填滿Polygon的成員函式:
g.fillPolygon(xpoints, ypoints, xpoints.length());
 

(4) 顏色

 

指定任意一個顏色使用

Color myColor = new Color(R, G, B);

R是紅色比重(0~255)

G是綠色比重(0~255)

B是藍色比重(0~255)

例如:

Color myGray = new Color(127, 127, 127);
Color myCream = new Color(255, 231, 187);
Color lightGreen = new Color(0, 55, 0);

Java內建的顏色:

  • Color.black
  • Color.blue
  • Color.cyan
  • Color.darkGray
  • Color.gray
  • Color.green
  • Color.lightGray
  • Color.magenta
  • Color.orange
  • Color.pink
  • Color.red
  • Color.white
  • Color.yellow

 

 


 

物件導向程式設計

義守大學電機系 陳慶瀚

2001.11.15