Java程式设计进阶(1)_第1页
Java程式设计进阶(1)_第2页
Java程式设计进阶(1)_第3页
Java程式设计进阶(1)_第4页
Java程式设计进阶(1)_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Ch02 Java AppletsJava程式設計進階(1)2022/1/142Applet Applets不是完全獨立的應用程式,而是在瀏覽器(或Netscape Navigater)或JDK(Java Developers Kit)提供的appletviewer中執行的程式 Applets程式被編譯後,在HTML檔案中加入applet標籤2022/1/143Applet的執行之前的Java程式:1. javac xxx.java2. java xxxJava的applet程式:1. javac xxx.java2. 將產生的xxx.class內嵌於HTML檔案中2022/1/144Appl

2、et類別繼承關係圖Java.lang.Object java.awt.Component java.awt.Container java.awt.Panel java.applet.Applethttp:/ pplet衍生自Appplet類別,所以必須引入java.applet import java.applet.*; 在視窗中執行applets必須載入AWT import java.awt.*; 建立類別時宣告extends Applet,表示繼承Applet 在Applet類別不再需要main()方法 也不使用System.out.println(),而是使用AWT提供的方法paint(

3、)Public void paint(Graphics g) g.drawString(“Hi, How Are You!”, 70, 100); 2022/1/146範例:Ch04_01.java1.import java.applet.Applet;2.import java.awt.*;3.public class Ch04_01 extends Applet4.5. 6. public void paint(Graphics g)7. 8. g.drawString(Hi How are you!, 70, 100);9. 10. 2022/1/147範例:Ch04_01.html1.

4、 2. 3. Ch04_01.html4. 5. 6. 7. 8. 13. 14. 15. 16. 17.2022/1/148Applet元件的屬性1. Xxx.class:在xxx.class中含有編譯過的applet類別2. X, y:定義applet的繪圖區大小(像素)大部份電腦螢幕所支援的解析度為800X600像素2022/1/149範例:Ch04_02.java1. import java.applet.Applet;2. import java.awt.*;3. public class Ch04_02 extends Applet4. 5. public void paint(G

5、raphics g)6. 7. setBackground(Color.yellow);8. Font f = new Font(標楷體, Font.BOLD, 20);9. g.setFont(f);10. g.setColor(Color.red);11. showStatus(Java(4);12. g.drawString(嗨!你好!, 70, 100);13. 14.2022/1/1410Applet架構 Applet不是從main()開始執行,它有自己的一套特殊運作機制 四個重要的方法: init() start() stop() destroy()2022/1/1411Apple

6、t架構 Init():當applet被啟動時,init()是最先被執行的方法,而且它只會被執行一次,所以,可將初始值放在此處 Start():它在init()執行後會執行一次,但是當網頁被離開後,再回來時,start()會被再執行,所以,applet的主程式碼會放在start() Stop():用來停止applet動作,或是網頁要跳去另一個網頁時,會呼叫start()方法 Destroy():當確定這個applet不會再用到時,可以呼叫destroy()2022/1/1412Applet架構Init()Start()Stop()Destroy()2022/1/1413範例:Ch04_03.ja

7、va1. import java.applet.Applet;2. import java.awt.*;3. public class Ch04_03 extends Applet4. String message = 啟動 / ;5. public void init()6. message += 進入 init() / ;7. 8. public void start()9. 10. message += 進入 start() / ;11. 12. public void paint(Graphics g)13. setBackground(Color.yellow);14. Font f

8、 = new Font(標楷體, Font.BOLD, 20);15. g.setFont(f);16. g.setColor(Color.red);17. message += 進入 paint() / ;18. g.drawString(message, 10,10);19. 20.2022/1/1414Repaint()和update()方法 當applet要進行重新繪製視窗畫面時,applet先呼叫repaint()方法,repaint()再呼叫update()方法,update()方法再呼叫paint() 在一般情況下,我們不用去覆寫repaint()和update() 如果,要在程

9、式某個地方,更新或重繪畫面時,只要呼叫repaint() Repaint(long tm)可以強迫在tm毫秒內執行重繪2022/1/1415範例:Ch04_04.java1.import java.applet.Applet;2.import java.awt.*;3.public class Ch04_04 extends Applet implements Runnable4. Font f = new Font(標楷體, Font.ITALIC, 24);5. Thread t;6. String str;7. int m, n = 0;8. public void init()9. s

10、tr = 歡迎光臨 ;10. 11. public void start()12. t = new Thread(this);13. t.start();14. 15. 16. public void paint(Graphics g)17. setBackground(Color.cyan);18. g.setFont(f);19. if(n+)%2 = 1)20. g.setColor(Color.green); 21. else22. g.setColor(Color.red); 23. g.drawString(str, 30,50);24. 25. public void run()

11、26. while(true)27. try28. t.sleep(200); /每0.2秒執行一次 29. 30. catch(InterruptedException e)31. 32. repaint();33. 34. 35. 2022/1/1416練習一:跑馬燈修改Ch04_04.java,製作由左向右移動的跑馬燈2022/1/1417標籤屬性CODEBASE:(非必要)指定applet所在的URL,預設是html所在的位置CODE: (必要)指定要執行的applet名稱*.classALT: (非必要) 當使用者的瀏覽器不支援applet時,要出現的提示語NAME: (非必要) 用

12、來applet取一個名字,如此同一個網頁中的applet會知道有其他applet存在WIDTH: (必要) 用來設定applet顯示範圍的寬度HEIGHT: (必要) 用來設定applet顯示範圍的高度ALIGN: (非必要) 調整applet在網頁上的位置VSPACE: (非必要) 控制applet垂直間距的像素值HSPACE: (非必要) 控制applet水平間距的像素值2022/1/1418設定標籤內的參數 param name=參數名稱value=參數值 將applet視為方法,所以在html呼叫applet時,可以將一些參數傳給applet2022/1/1419取得參數值getPar

13、ameter()String s = getParameter(String n)/n 是標籤內的name參數名稱 getParameter()方法,可以用來抓取從HTML中param標籤name屬性所代表的value屬性值2022/1/1420範例:Ch04_05.html1. 2. 3. Ch04_05.html參數傳遞 4. 5. 6. 8. 9. 10. 11. 12. 13.2022/1/1421範例:Ch04_05.java1.import java.applet.Applet;2.import java.awt.*;3.public class Ch04_05 extends A

14、pplet implements Runnable4. Font f = new Font(標楷體, Font.ITALIC, 24);5. Thread t;6. String str;7. int m, n = 0;8. int m_x, m_y;9. public void init()10. str = getParameter(msg); 11. m_x = Integer.parseInt(getParameter(x);12. m_y = Integer.parseInt(getParameter(y);13. 14. public void start()15. t = new

15、 Thread(this);16. t.start();17. 18. 2022/1/1422Applet繪圖方法說明setBackground(Color顏色)設定背景顏色setForeground(Color 顏色)設定前景色drawString(String 字串, int X座標, int 座標)輸出字串drawImage(Image 影像, int 座標, int 座標)畫一個影像drawLine(int 起點X, int 起點Y, int 終點X, int 終點Y)畫一條直線drawRect(int 上, int 左, int 寬, int 高)fillRect(int 上, in

16、t 左, int 寬, int 高)畫一個空心長方形畫一個實心長方形drawRoundRect(int 上, int 左, int 寬, int 高, int X角半徑, int Y角半徑)fillRoundRect(int 上, int 左, int 寬, int 高, int X角半徑, int Y角半徑)畫一個空心圓角長方形畫一個實心圓角長方形drawOval(int 上, int 左, int 寬, int 高)fillOval(int 上, int 左, int 寬, int 高)畫一個空心橢圓畫一個實心橢圓draw3DRec(int 上, int 左, int 寬, int 高)畫

17、一個的長方形drawArc(int 上, int 左, int 寬, int 高, int 起始角度, int 移動角度)fillArc(int 上, int 左, int 寬, int 高, int 起始角度, int 移動角度)畫一個弧形畫一個扇形drawPolyLine(int 座標X, int 座標Y, int 端點數)畫多條線段drawPolygon(int 座標X, int 座標Y, int 端點數)fillPolygon(int 座標X, int 座標Y, int 端點數)畫一個空心多邊形畫一個實心多邊形2022/1/1423顏色常數(java.awt.color)http:/

18、java.applet.*;2.import java.awt.*;3.public class Ch04_06 extends Applet4.5. public void init()6. 7. setBackground(Color.yellow);8. setForeground(Color.blue);9. 10. 11. public void paint(Graphics g)12. 13. g.drawRoundRect(20, 30, 80, 90, 0, 0);/長方形14. g.drawRoundRect(140, 30, 80, 90, 50, 50);15. g.dr

19、awOval(260, 30, 90, 90);16. g.drawLine(380, 30, 480, 120);17. 18. 2022/1/1425加入控制項到applet 文字方塊:Textfield 文字方塊物件 = new Textfield(int 字數);add(文字方塊物件);文字方塊物件.addActionListener(this); 標籤方塊:Label 標籤方塊物件 = new Label(String 字串); add(標籤方塊物件); 命令按鈕:Button 命令按鈕物件 = new Button(String 字串);add(命令按鈕物件);命令按鈕物件.add

20、ActionListener(this);2022/1/1426範例:Ch04_07.java攝氏轉華氏1.import java.applet.*;2.import java.awt.event.*;3.import java.awt.*;4.public class Ch04_07 extends Applet implements ActionListener5. Label lblCelsius, lblFahrenheit;6. TextField txtCelsius, txtFahrenheit;7. Button btnTransfer;8. public void init(

21、)9. lblCelsius = new Label(攝氏);10. lblFahrenheit = new Label(華氏);11. txtCelsius = new TextField(20);12. txtFahrenheit = new TextField(20);13. btnTransfer = new Button(攝氏轉華氏);14. add(lblCelsius);15. add(txtCelsius);16. add(lblFahrenheit);17. add(txtFahrenheit);18. add(btnTransfer);19. btnTransfer.addActionListener(this);20. 21. 2022/1/1427範例:Ch04_08.java紅綠燈控制1.import java.applet.*;2.import java.awt.event.*;3.import java.awt.*;4.public class Ch04_08 extends Applet implements ActionListener5.6. Button btnRed, btnYellow, btnGreen;7. int firstX = 65, firstY = 60;8. int secondX =

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论