利用MyEclipse建立一個applet小應用程式
阿新 • • 發佈:2018-12-30
1.開啟MyEclipse建立一個web專案
2.專案名上右鍵點選建立一個applet
3.編寫applet程式內容
4.執行
a.可以直接在點選窗體上的執行按鈕
b.也可以到檔案目錄建立一個html檔案嵌入編譯後的.class檔案,在cmd中用appletviewer *.html執行(class檔案路徑要整對,最好使用預設包)
例子
applet檔案 實現餘弦函式曲線圖
import java.applet.Applet; import java.awt.Graphics; public class First extends Applet { int x,y; public void paint(Graphics g) { //畫x軸、y軸 for(x=0;x<=750;x+=1) { g.drawString("·",x,200); if(x<=385) g.drawString("·",360,x); } g.drawString("Y",330,20); //畫y軸箭頭 for(x=360;x<=370;x+=1) { g.drawString("·",x-10,375-x); g.drawString("·",x,x-355); } //畫x軸箭頭 g.drawString("X",735,230); for(x=740;x<=750;x+=1) { g.drawString("·",x,x-550); g.drawString("·",x,950-x); } //畫cox()曲線 for(x=0;x<=720;x+=1) { double a=Math.cos(x*Math. PI/180+Math.PI); y=(int)(200+80*a); //放大80倍並向下平移200個畫素 g.drawString("·",x,y); } } }
html檔案 (檔名任意,使用appletviewer *.html執行)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head><title>餘弦曲線測試</title></head> <body> <p> <!--呼叫First位元組碼檔案 --> <applet code="First.class" width="900" height="600"></applet> </body> </html>
前面介紹的餘弦曲線的繪製,我們看到的是一個完整的靜態圖形,能否動態地展現繪製的過程?答案是肯定的,我們可以採用執行緒的方式來實現,參考程式碼如下:
import java.applet.Applet; import java.awt.Graphics; public class First extends Applet implements Runnable{//通過實現Runnable介面實現執行緒操作 int x,y; double a; int xpos=0; Thread runner; boolean painted=false; public void init() //Applet建立即啟動執行,座標初始化 { Graphics g=getGraphics(); //畫畫之前,必須先取得畫筆 for(x=0;x<=750;x+=1) //畫x軸 { g.drawString("·",x,200); if(x<=385) g.drawString("·",360,x); } g.drawString("Y",330,20); //畫y軸 for(x=360;x<=370;x+=1) //畫y軸箭頭 { g.drawString("·",x-10,375-x); g.drawString("·",x,x-355); } g.drawString("X",735,230); for(x=740;x<=750;x+=1) //畫x軸箭頭 { g.drawString("·",x,x-550); g.drawString("·",x,950-x); } } public void start() //Applet建立後自啟動方法 { if(runner==null){ runner=new Thread(this); //通過Thread類來啟動Runnable runner.start(); //執行緒啟動 } } public void stop() //Applet生命週期結束後自啟動方法 { if(runner!=null){ runner=null; //結束執行緒 } } public void run() //執行緒執行方法 { while(true){ for(xpos=0;xpos<900-90;xpos+=3) //迴圈設定曲線x軸座標邊界 { repaint(); //呼叫paint()方法 try{ Thread.sleep(200); //執行緒休息100毫秒 }catch(InterruptedException e){} if(painted) { painted=false; } } } } public void paint(Graphics g) //畫圖方法 { for(x=0;x<=xpos;x+=1) //迴圈畫曲線 { a=Math.cos(x*Math. PI/180+Math.PI); y=(int)(200+80*a); //放大80倍並向下平移200個畫素 g.drawString("·",x,y); } painted=true; } }
在螢幕上畫出奧運五環旗。
觀察奧運五環旗的圖案,直觀的感覺,由五個圓組成,每個圓的顏色不一樣,大小一樣,按照一定的位置擺放,找到圓心座標的規律,就可以通過Graphics類提供的繪製橢圓的方法drawOval()來實現畫圓操作。
奧運五環旗由五個不同顏色的圓組成,我們可以通過迴圈依次輸出五個圓環。
分析圓的位置規律。分析出圓的圓心座標是畫圖的關鍵。
上面三個圓的圓心a、b、c的y座標相同,下面兩個圓的圓心d、e的y座標相同,ab=bc=ad=de,為保證兩個圓相交,兩個圓的圓心距離必須小於2r(r代表圓的半徑)。f為ab的中點,adf組成直角三角形,af=ad/2,只要給定五個圓的任何一個圓心座標,就可以推倒出其他幾個圓的圓心座標。我們這裡使用陣列來存放每個圓環的顏色、座標。程式碼如下:
import java.awt.*;
import java.awt.event.*;
import java.applet.Applet;
import java.awt.Color;
import java.awt.Font;
public class Ch1_4 extends Applet
{
private Color clr[]={Color.blue,Color.black,Color.red,Color.yellow,
Color.green}; //clr[]儲存顏色
private int[] x={100,136,172,118,154}; //x[]儲存圓心的x座標
private int[] y={60,60,60,91,91}; //y[]儲存圓心的y座標
private int[][] xy={{100,60},{136,60},{172,60},{118,91},{154,91}}; //儲存圓心的座標
private int r=20,d=40;
public void paint(Graphics g) //畫圖方法
{
Font font = new Font("楷體",Font.PLAIN,20); //文字字型、大小
g.setFont(font);
for(int i=0;i<5;i++) //迴圈5次,畫5個圓環
{
g.setColor(clr[i]);
g.drawOval(x[i], y[i], d, d); //d代表橢圓外切矩形的長寬,相等代表圓
}
g.setColor(Color.blue); //設定顏色
g.setFont(font);
g.drawString("奧運五環旗",120,169);
} //END PAINT
} //END CLASS