Spec-Zone .ru
спецификации, руководства, описания, API
След: Развертывание
Урок: Апплеты Java
Раздел: Выполнение Больше С Апплетами
Вызов Методов Апплета От Кода JavaScript
Домашняя страница > Развертывание > Апплеты Java

Вызов Методов Апплета От Кода JavaScript

Код JavaScript веб-страницы может взаимодействовать с апплетами Java, встроенными на странице. Код JavaScript может выполнить операции, такие как следующее:

Спецификация LiveConnect описывает детали о том, как код JavaScript связывается с кодом Java.

Эта тема исследует код JavaScript к передаче апплета Java, используя Математический пример апплета. MathApplet class и поддержка Calculator class обеспечивает ряд открытых методов и переменных. Код JavaScript веб-страницы вызывает и оценивает эти общедоступные элементы, чтобы передать данные и получить вычисленные результаты.

Математический Апплет и Связанные Классы

Вот исходный код для MathApplet class. getCalculator метод возвращает ссылку на Calculator помощник class.

 
package jstojava;
import java.applet.Applet;

public class MathApplet extends Applet{

    public String userName = null;
         
    public String getGreeting() {
        return "Hello " + userName;
    }
    
    public Calculator getCalculator() {
        return new Calculator();
    } 
}

Методы в Calculator class, которому позволяют пользовательский набор, два значения, добавляют числа, и получают числа в диапазоне.


package jstojava;

public class Calculator {
    private int a = 0;
    private int b = 0; // assume b > a
    
    public void setNums(int numA, int numB) {
        a = numA;
        b = numB;
    }
    
    public int add() {
        return a + b;
    }
    
    public int [] getNumInRange() {    
        int x = a;
        int len = (b - a) + 1;
        int [] range = new int [len];
        for (int i = 0; i < len; i++) {
            range[i]= x++;
            System.out.println("i: " + i + " ; range[i]: " + range[i]);
        }
        return range;
    }
}

getDate метод DateHelper class возвращает текущую дату.


package jstojava;
import java.util.Date;
import java.text.SimpleDateFormat;

public class DateHelper {
    
    public static String label = null;
        
    public String getDate() {
        return label + " " + new SimpleDateFormat().format(new Date());
    }

}

Развертывание Апплета

Разверните апплет в веб-странице, AppletPage.html Развертывая апплет, удостоверьтесь, что Вы определяете идентификатор для апплета. Идентификатор апплета используется позже, чтобы получить ссылку на объект апплета.

<script src=
  "http://www.java.com/js/deployJava.js"></script>
<script>
    <!-- applet id can be used to get a reference to
    the applet object -->
    var attributes = { id:'mathApplet',
        code:'jstojava.MathApplet',  width:1, height:1} ;
    var parameters = {jnlp_href: 'math-applet.jnlp'} ;
    deployJava.runApplet(attributes, parameters, '1.6');
</script>

Затем, добавьте некоторый код JavaScript к AppletPage.html веб-страница. Код JavaScript может использовать идентификатор апплета, поскольку ссылка на апплет возражает и вызывает методы апплета. В примере, показанном затем, кодовые наборы JavaScript общедоступные задействованные переменные апплета, вызывает открытые методы, и получает ссылку на другой объект, на который ссылается апплет (Calculator). Код JavaScript в состоянии обработать примитивный, массив, и объектные типы возврата. Код JavaScript может также вызвать методы от классов или объектов в других пакетах, используя Packages ключевое слово.

<script language="javascript">
    function enterNums(){
        var numA = prompt('Enter number \'a\'?','0');
        var numB = prompt(
            'Enter number \'b\' (should be greater than number \'a\' ?','1');
        // set applet's public variable
        mathApplet.userName = "John Doe";

        // invoke public applet method
        var greeting = mathApplet.getGreeting();

        // get another class referenced by applet and
        // invoke its methods
        var calculator = mathApplet.getCalculator();
        calculator.setNums(numA, numB);

        // primitive datatype returned by applet
        var sum = calculator.add();

        // array returned by applet
        var numRange = calculator.getNumInRange();

        // "Packages" keyword; check Java console log
        // for this message
        mathApplet.Packages.java.lang.System.out.
            println("Testing printing to System.out");

        // Set static field using "Packages" keyword;
        // static methods may be similarly invoked
        mathApplet.Packages.jstojava.DateHelper.label =
            "Today\'s date is: ";

        // Create an instance of a class and invoke
        // method using "Packages" keyword
        var dateHelper =
            new mathApplet.Packages.jstojava.DateHelper();
        var dateStr = dateHelper.getDate();
        <!-- ... -->
</script>

Математический апплет выводит на экран следующие результаты на веб-странице когда число a = 0 и b = 5:

Results of JavaScript to Java Communication

Hello John Doe

a = 0 ; b = 5

Sum: 5

Numbers in range array: [ 0, 1, 2, 3, 4, 5 ]

Today's date is: 1/13/09 10:12 AM //shows current date

Открытый AppletPage.html в браузере, чтобы просмотреть Математический апплет.


Отметьте:  

Если Вы не видите, что апплет работает, Вы должны установить, по крайней мере, Java Комплект разработчика SE (JDK) 6 обновлений 10 выпусков.



Отметьте:  

Если Вы не видите, что пример работает, Вы, возможно, должны были бы включить интерпретатору JavaScript в своем браузере так, чтобы сценарий Инструментария Развертывания мог функционировать должным образом.


Проверьте ограничения безопасности, установленные для апплетов, вызванных кодом JavaScript.

Загрузите исходный код для Методов Апплета Вызова От Примера кода JavaScript, чтобы экспериментировать далее.


Проблемы с примерами? Попытайтесь Компилировать и Выполнить Примеры: FAQ.
Жалобы? Поздравление? Предложения? Дайте нам свою обратную связь.

Предыдущая страница: Вызов Кода JavaScript От Апплета
Следующая страница: Обработка Состояния Инициализации С Обработчиками событий