首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 程式設計入門

使用 Java Plug-in 在瀏覽器中運行 Java 2 Applet

     編輯:Java 程式設計入門

相較於舊版本,Java 2 引入了許多令人印象深刻的新特性。特別是 Swing 提供的用戶界面組件(如表格與樹形控制項)、2D 繪圖 API 以及增強的 JavaBean 支持,讓 JDK 1.1 顯得相形見絀。遺憾的是,當時沒有任何瀏覽器能完整支援 Java 2,這意味著那些令人興奮的新功能無法在瀏覽器中運行,甚至連明確的支援時間表都沒有。雖然在互聯網頁面上或許不必強求使用 Java 2,但在區域網路(LAN)環境下若無法善用這些新功能,確實令人惋惜。若您有同感,不妨嘗試使用 Java Plug-in(Java 插件)。

1. 基本原理與存在的問題

原本 Applet 的概念相當簡單:只需在網頁中加入 <APPLET> 標籤即可。瀏覽器遇到此標籤後,會下載對應的 Applet 類文件並啟動內建解釋器運行。在此過程中,瀏覽器扮演關鍵角色,必須具備運行 Java 的能力,而瀏覽器的虛擬機更決定了可接受的 Java 代碼版本。

Java 插件的核心目標是將「顯示網頁」與「運行 Java Applet」這兩項任務分離。瀏覽器專注於版面佈局(圖片、文字、Applet 等元素),而 Applet 的實際運行交由插件負責。這種機制 Navigator 和 IE 早已具備,Netscape 稱之為「瀏覽器插件」,Microsoft 則稱之為 ActiveX 控制項。雖然名稱不同,但兩者都能讓瀏覽器運行真正的 Java 2 代碼。

這一方法最大的優勢在於,IE 和 Navigator 皆可使用 Sun 的 Java 運行時環境,不再依賴瀏覽器自身的 Java 支持,也無需關心瀏覽器支援哪個 Java 版本。但缺點也明顯:一是用戶需下載並安裝 Java 插件;二是原本簡單的 <APPLET> 標籤不再足夠,需編寫更多 HTML 代碼來調用插件。

對於安裝問題,可從 Sun 官網(java.sun.com/products/plugin/index.html)預先下載安裝包,或讓瀏覽器在遇到 <EMBED> 或 <OBJECT> 標籤時自動下載。標籤差異稍顯複雜:Navigator 使用 <EMBED> 引入插件,IE 則使用 <OBJECT>。若您熟悉 HTML 且需引用 Java 2 Applet 的頁面不多,可手動將 <EMBED> 嵌入 <OBJECT> 內部,使頁面在兩大瀏覽器均能正常顯示。以運行 TestApplet 為例,替代原 <APPLET> 的 HTML 代碼如下:

<OBJECT classid=xxx
WIDTH=350 HEIGHT=150
codebase="https://java.sun.com/products/plugin
/1.2/jinstall-12-win32.cab#Version=1,2,0,0">
<PARAM NAME=CODE VALUE=TestApplet>
<PARAM NAME="type" VALUE="application/
x-java-applet;version=1.2">
<COMMENT>
<EMBED type="application/x-java-applet;version=1.2"
java_CODE=TestApplet WIDTH=350 HEIGHT=150
pluginspage="https://java.sun.com/products/plugin/
1.2/plugin-install.html"><NOEMBED></COMMENT>
</NOEMBED></EMBED>
</OBJECT>

更便捷的方法是使用 Sun 提供的 HTML Converter 工具,可自動將 <APPLET> 標籤轉換為上述調用插件的標籤。頁面數量較多時尤為推薦。下載地址:java.sun.com/products/plugin/1.2/converter.html

2. 具體過程示例

以下通過實例說明完整流程。假設有個使用 Swing 的 Applet,因此需要 Java 2 支持:

import java.awt.*;
public class TestApplet extends javax.swing.JApplet {
    private Font mFont = new Font("Serif", Font.PLAIN, 64);
    public void paint(Graphics g) {
        Graphics2D g2 = (Graphics2D)g;
        g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
            RenderingHints.VALUE_ANTIALIAS_ON);
        g2.setPaint(new GradientPaint(0, 0, Color.green,
            20, 10, Color.blue, true));
        Dimension d = getSize();
        g2.fillRect(0, 0, d.width, d.height);
        g2.setPaint(Color.red);
        g2.setFont(mFont);
        g2.drawString("ABCDEFG", 20, 84);
    }
}

原本使用 <APPLET> 的 HTML 頁面在瀏覽器中無法運行(可用 AppletViewer 查看效果):

<html>
<head></head>
<body>
<applet code=TestApplet width=350 height=150></applet>
</body>
</html>

接著使用 HTML Converter 將 <APPLET> 轉換為調用 Java 插件的標籤。下載安裝工具後,執行 java HTMLConverter,選擇待轉換文件即可(原文件會被覆蓋,建議備份)。轉換後在 Web 伺服器或本地打開頁面,若插件安裝正確即可看到 Applet 運行。雖過程稍繁瑣,但為了 Java 2 的豐富新特性,這點麻煩微不足道。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved