六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

Java咖啡館:情人節的Applet(二)

[摘要]說到這里,大家很自然會把Applet跟Macromedia公司的Flash技術進行比較。沒錯,它們有很多相似之處,比如都是通過插件運行在瀏覽器中,能帶給瀏覽器更豐富的交互功能(比如在線游戲),甚至可以擴展到了高端手機中。相對而言,Flash的強項在于矢量動畫,而且非常輕便,一個插件1MB都不到;而...
說到這里,大家很自然會把Applet跟Macromedia公司的Flash技術進行比較。沒錯,它們有很多相似之處,比如都是通過插件運行在瀏覽器中,能帶給瀏覽器更豐富的交互功能(比如在線游戲),甚至可以擴展到了高端手機中。相對而言,Flash的強項在于矢量動畫,而且非常輕便,一個插件1MB都不到;而Applet是一個全功能技術,與J2EE技術結合起來將給你更大的想象空間,這是Flash技術不能比擬的。

編寫一個Applet只需要四個步驟:

  1.Import相應的類和包

  2.從Applet類繼承一個子類

  3.實現某些Applet的方法

  4.嵌入網頁運行

  如果你有些無法理解上面的術語,趕快翻開去年的Java咖啡館連載溫故而知新吧!

設計Applet

  或許有的朋友接觸過類似游戲,但那些網頁基本都是通過動態網頁技術,比如PHP、ASP、JSP等在服務器端繪制圖片然后顯示出來的。殺雞焉用牛刀,通過最簡單的Applet,然后再玩一些小技巧同樣能達到完美效果,并且不需要特殊的服務器來執行動態網頁,普通的靜態個人主頁空間里也能夠實現這個效果。

  首先讓我們完成這個Applet程序設計,也就是完成Applet編寫步驟的前三步。說穿了,這個Applet的工作只是讀取背景圖片然后繪制“老鼠愛大米”字樣。關鍵問題在于,“老鼠”和“大米”應該可以通過參數控制,比如替換成“帥哥”、“美女”等,這樣就可以當做一種服務提供給朋友,讓他們通過設定網頁參數達到不同的星辰效果,而不是讓他們手動修改源代碼。實際上,Applet可以通過getParameter()方法從HTML中獲取參數。

  還是讓我們通過源代碼來了解Applet吧。打開Eclipse,新建一個NewsApplet類,輸入如下代碼:

import java.applet.Applet;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.MediaTracker;

public class NewsApplet extends Applet {
    Image snapshot;

    String from, to;   public void init() {
        from = null == getParameter("from") ? "老鼠" : getParameter("from");
        to = null == getParameter("to") ? "大米" : getParameter("to");

        snapshot = getImage(getCodeBase(), "snapshot.jpg");
        MediaTracker tracker = new MediaTracker(this);
        tracker.addImage(snapshot, 0);

        try {
            tracker.waitForID(0);
        } catch (Exception e) {
            System.out.println("無法下載snapshot.jpg!");
        }
    }

    public void paint(Graphics g) {
        g.drawImage(snapshot, 0, 0, snapshot.getWidth(this), snapshot.getHeight(this), this);

        g.setFont(new Font("華文彩云", Font.BOLD + Font.ITALIC, 14));
        g.setColor(Color.white);

        g.drawString(from, 30, 90);
        g.drawString("愛", 50, 105);
        g.drawString(to, 70, 120);
    }
}

下面解釋一下代碼:

  首先,所有Applet程序都是從Applet類繼承而來的,所以用extends Applet表示這種繼承關系,這樣NewsApplet類便擁有了Applet類的所有能力。

  接著是三個成員變量,snapshot用來讀取snapshot.jpg圖片,也就是圖中顯示的海洋和椰子樹的圖片,這個圖片應該放在Eclipse項目的根目錄中,即與最終的class文件處于同一個目錄中;from和to用來記錄你和她的名字。

  然后是兩個方法,init()和paint()。每個applet可以實現許多方法,有的表明生命周期,有的負責繪圖和事件的觸發。比如NewsApplet類中的init()方法將會在Applet每次裝載的時候被調用,而paint()方法將會在每次重繪時候被調用。

  init()函數非常適合進行資源初始化,比如程序中首先通過getParameter()函數獲取網頁中提供的參數,然后用getImage()讀取圖像資源并且用MediaTracker的waitForID()方法確保圖片完成下載。

  paint()非常重要,它完成了所有的繪圖過程。在代碼中,首先通過drawImage()方法繪制圖像,然后再適當的位置把星辰的文字畫上去即可。





主站蜘蛛池模板: 日本久久伊人 | 亚洲动作片 | 日本成人激情 | 四虎精品影院在线观看视频 | 天堂网传媒| 日韩欧美国产一区二区三区 | 亚洲白嫩在线观看 | 亚洲日韩精品欧美一区二区一 | 青草视频在线观看免费 | 亚洲免费在线视频观看 | 特色一级黄色片 | 日韩a免费 | 亚洲第一黄色网址 | 亚洲精品成人久久久影院 | 午夜狠狠干 | 亚洲三级欧美 | 日本香蕉视频在线观看 | 婷婷综合久久中文字幕 | 天天看片天天爽_免费播放 天天看片天天爽 | 在线观看视频国产 | 欧美污视频 | 日韩高清在线高清免费 | 欧美性生活视频免费播放网址大全观看 | 五月婷婷综合在线视频 | 日本 欧美 在线 | 在线a久青草视频在线观看g | 日本亚欧乱色视频在线网站 | 青草久久影院 | 天天看天天干 | 青青青影院 | 一区二区三区在线播放视频 | 日韩不卡毛片 | 一本大道香蕉久97在线视频 | 天天插天天透 | 青草视频久久 | 视频一区在线 | 青草国产在线视频 | 亚洲无线视频 | 亚洲欧洲色天使日韩精品 | 日韩一级一欧美一级国产 | 深夜成人福利视频 |