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

JavaScript 與 Java Applet 跨語言整合應用實戰

     編輯:Java 程式設計入門

為何要整合 JavaScript 與 Java Applet?

在 Web 開發中,JavaScript 啟動快、編寫簡單、與文件結合緊密,但功能受限;Java Applet 功能強大、靈活度高,卻編寫複雜且無法直接在文件中修改。將兩者結合,可發揮各自優勢,達成最佳效果。

第一階段:直接存取 Applet 公開變數

Java Applet 端:HelloWorld1.java

import java.awt.*;
import java.applet.*;
public class HelloWorld1 extends Applet {
    public String text = "Hello World!"; // 必須宣告為 public
    public void paint(Graphics g) {
        g.drawString(text, 20, 20);
    }
}

HTML 與 JavaScript 整合:example.html

<html>
<head><title>範例</title></head>
<body>
<script language="JavaScript">
<!--
function SetText() {
    document.app.text = "世界你好!"; // 直接修改 public 變數
    document.app.repaint(); // 必須呼叫 repaint() 刷新顯示
}
//-->
</script>

<applet code="HelloWorld1.class" width="100" height="28" name="app">
</applet>
<form>
    <input type="button" value="請點擊這裡" onclick="SetText()">
</form>
</body>
</html>

原理解析:Java 預設屬性為 private,需宣告 public 讓 JavaScript 存取。repaint() 是繼承自 Applet 父類別的方法,負責觸發重繪。

第二階段:透過公開方法封裝存取(推薦做法)

直接修改內部變數屬於破壞封裝,較佳做法是提供公開方法。

改良版 Applet:HelloWorld2.java

public class HelloWorld2 extends Applet {
    String text = "Hello World!"; // 移除 public,恢復封裝
    public void paint(Graphics g) {
        g.drawString(text, 20, 20);
    }
    // 提供公開方法供外部呼叫
    public void SetString(String newString) {
        text = newString;
        repaint(); // 內部自動刷新,外部無需呼叫
    }
}

改良版 HTML:example2.html

<script language="JavaScript">
<!--
function SetText() {
    document.app.SetString("世界你好!"); // 呼叫公開方法
    // 不再需要手動呼叫 repaint()
}
//-->
</script>
<applet code="HelloWorld2.class" width="100" height="28" name="app"></applet>

關鍵比較與最佳實務

方案優點缺點建議
直接存取變數簡單直接破壞封裝、需手動 repaint、易造成狀態不一致僅供教學測試
公開方法封裝符合 OOP 封裝原則、內部自動管理狀態、安全可靠略增加程式碼量生產環境首選

瀏覽器對同名 Applet 常使用快取,開發測試時建議更換類別名稱(如 HelloWorld1 → HelloWorld2)避免載入舊版本。

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