程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> Java Swing編程:Applet和JApplet

Java Swing編程:Applet和JApplet

編輯:關於JAVA

雖然現在已經不是Applet的時代了,applet過於強大導致客戶端的不安全性,還要求客戶端安裝JAVA運行環境,flash已經成為web應用的主流,現在每個游覽器基本都安裝了Flash播放器,但Applet可是Java語言的開端。

Applet和一般的Java程序最大區別就是沒有main函數入口,他是通過繼承Applet類。

這個類有5個特殊方法

init:初始化

start:啟動時執行

stop:停止

destroy:於init相對

paint:繪制界面

下面看具體代碼,eg

  1. public class HelloApplet extends JApplet
  2. {
  3. //初始化Applet的方法
  4. public void init()
  5. {
  6. setLayout(new FlowLayout());
  7. add(new JButton("XXX"));
  8. add(new JButton("YYY"));
  9. }
  10. //啟動Applet的方法
  11. public void start()
  12. {
  13. System.out.println("start方法");
  14. }
  15. //繪制Applet界面的方法
  16. public void paint(Graphics g)
  17. {
  18. super.paint(g);
  19. System.out.println("paint方法");
  20. g.drawLine(3 , 3 , 200 , 300);
  21. }
  22. //停止Applet的方法
  23. public void stop()
  24. {
  25. System.out.println("stop方法");
  26. }
  27. //銷毀Applet的方法
  28. public void destroy()
  29. {
  30. System.out.println("destroy方法");
  31. }
  32. public static void main(String[] args)
  33. {
  34. JFrame jf = new JFrame();
  35. JApplet panel = new HelloApplet();
  36. panel.setPreferredSize(new Dimension(300, 400));
  37. //顯式調用HelloApplet對象的init、start方法
  38. panel.init();
  39. panel.start();
  40. jf.add(panel);
  41. jf.pack();
  42. jf.setVisible(true);
  43. }
  44. }

其中我們把Applet當成容器來使用,把他加入JFrame,用main作為入口運行。

放到網頁中就不需要main,但要通過網頁掉用

調用方法如下

  1. <applet codebase="." code="HelloApplet" width=400 height=300 name="HelloApplet">
  2. <param name=name value="HelloApplet">
  3. </applet>

這個文件一般利用JDK目錄下的bin中的HtmlConverter來轉換,手動寫對不同游覽器還是挺吃力的。

下面再看個Applet動畫,eg

  1. public class ScApplet extends Applet
  2. {
  3. final String testStr = "Java真好玩,學習很有趣!";
  4. //用於保存字符串下一次出現的座標
  5. private int nextX;
  6. private int nextY;
  7. private Color nextColor;
  8. private Font nextFont;
  9. Java.util.Random rand = new Java.util.Random(System.currentTimeMillis());
  10. public void init()
  11. {
  12. Timer timer = new Timer(200 , new ActionListener()
  13. {
  14. public void actionPerformed(ActionEvent event)
  15. {
  16. //隨機生成下一次座標、顏色、字體大小
  17. nextX = rand.nextInt(400);
  18. nextY = rand.nextInt(300);
  19. nextColor = new Color(rand.nextInt(255) , rand.nextInt(255) , rand.nextInt(255));
  20. nextFont = new Font("Times" , Font.BOLD , rand.nextInt(60));
  21. //強制重繪
  22. repaint();
  23. }
  24. });
  25. timer.start();
  26. }
  27. //繪制Applet界面的方法
  28. public void paint(Graphics g)
  29. {
  30. g.setColor(nextColor);
  31. g.setFont(nextFont);
  32. g.drawString(testStr, nextX, nextY);
  33. }
  34. public static void main(String[] args)
  35. {
  36. JFrame jf = new JFrame();
  37. ScApplet panel = new ScApplet();
  38. panel.setPreferredSize(new Dimension(400, 300));
  39. panel.init();
  40. panel.start();
  41. jf.add(panel);
  42. jf.pack();
  43. jf.setVisible(true);
  44. }
  45. }

大家可以把玩下,其實還是挺好玩的。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved