Глава 15 Live Connect. Преглед.

Главата съдържа следните раздели:

Какво е LiveConnect?

В браузъра Navigator LiveConnect ви позволява да използвате:

Активирайте LiveConnect

Java конзола

Конзолата на Java е прозорец на навигатор, който показва съобщения на Java. Ако използвате променливи на клас out или err в java.lang.System, за да отпечатате съобщение, съобщението се появява на конзолата. За да покажете Java Console, изберете Java Console от менюто Communicator.

Можете да използвате Java Console, за да показвате съобщения на потребителя или да проследявате стойностите на променливите в различни точки по време на изпълнение на програмата. Моля, обърнете внимание, че много потребители деактивират дисплея на конзолата.

Например, следният Java код отпечатва съобщението "Hello, world!" в java конзолата:

Работа с черупки

Таблица 15.1 Обекти на LiveConnect
Описание на обекта

Пакетен обект

Ако Java класът не е част от пакетите java, sun или netscape, имате достъп до него чрез обекта Packages. Например Redwood Corporation използва пакета redwood Java като контейнер за различни Java класове. За да създадете екземпляр на класа HelloWorld на пакета redwood, имате достъп до конструктора на този клас по следния начин:

Можете също да получите достъп до класовете на пакета по подразбиране (т.е. класове, които не наименуват изрично пакета). Например, ако класът HelloWorld е директно в CLASSPATH, а не в пакет, можете да получите достъп до него по следния начин:

Обектите на LiveConnect java, sun и netscape са съкращения на добре познати Java пакети. Например, можете да напишете:

вместо по-дългата версия:

Работа с Java Arrays

Препратки към пакети и класове

В повечето случаи не е нужно да се притеснявате за създаванетоJavaPackage и JavaClass обекти – Вие просто работите с Java пакети и класове, а LiveConnect прозрачно създава тези обекти.

JavaClass обектите не се преобразуват автоматично в java.lang.Class екземпляри, когато ги подадете като параметри към Java методи - трябва да обвиете java.lang.Class екземпляра. В следващия пример методът forName създава обвиващ обект theClass, който след това се предава на метода newInstance за създаване на масив.

Аргументи от тип char

Не можете да предавате низове от един знак към метод на Java, който изисква аргумент char. Трябва да подадете цяло число, съответстващо на Unicode стойността на знака към такива методи. Например, тук е присвояването на стойността "H" на променливата c:

Управление на Java аплети

Достъп до аплети

Например, разгледайте Java аплета "Hello World":

Следният HTML стартира и показва аплета и го наименува "HelloWorld" (в атрибута NAME):

Масивът аплети има свойство за дължина, document.applets.length, което указва броя на аплетите в документа.

Пример 1: Здравей свят

Например, можете да промените аплета HelloWorld по-горе:

  • замени своя init метод, така че да декларира и инициализира низа myString
  • дефинирайте метод setString, който приема аргумент от низ, присвоете този аргумент на обекта myString и извикайте метода repaint. (Методите за рисуване и повторно боядисване са наследени от java.awt.Component).

Изходният код на Java сега изглежда така:

  • добавете формуляр с текстово поле и бутон и
  • Нека създадем манипулатор onClick за бутона, който извиква метода setString от HelloWorld с низ от текстовото поле като аргумент.

HTML файлът изглежда така:

Пример 2: Аплет за мигащ цветен текст

По-сложен пример е аплет, който показва мигащ текст в различни цветове. Текстовото поле и бутонът ви позволяват да въвеждате нов текст. Този аплет е показан на фигура 15.1.

Фигура 15.1 Мигащ текстов аплет

преглед

Ето оригиналния HTML:

Този аплет използва публичния метод setString, за да посочи флаш текста. В HTML формуляр манипулаторът onClick на бутона ви позволява да промените низа "Hello, world!" чрез извикване на метода setString.

Тук colorText е името на HTML формата, а textBox е името на текстовото поле. Манипулаторът на събития предава стойността, която потребителят е въвел в текстовото поле, към метода setString на Java аплета.

Управление на Java плъгини

Ако това е първата добавка в документа, можете да получите достъп до нея по един от следните начини:

Ако добавката е свързана с Java класа netscape.plugin.Plugin, можете да получите достъп до нейните статични променливи и методи по същия начин, по който осъществявате достъп до променливи и методи.

Масивът за вграждане има свойство за дължина, document.embeds.length, което указва броя на добавките, вградени в документа.

Ръководството за добавки съдържа информация за:

  • извикване на Java методи от плъгини
  • извикване на плъгин методи от Java

За достъп до класовете на LiveConnect поставете .jar или .zip файл в CLASSPATH на JDK компилатора по един от следните начини:

  • създайте променлива на средата CLASSPATH, за да посочите пътя и името на .jar или .zip файла.
  • укажете местоположението на .jar или .zip файла, когато компилирате, като използвате командата -classpath в командния ред.

Например, в Navigator 4.0 за Windows NT, класовете се изпращат във файла java40.jar вдиректория Program\Java\Classes под директорията на навигатора. Можете да посочите променлива на средата в Windows NT, като отворите System от контролния панел и създадете дефинирана от потребителя променлива на средата CLASSPATH със стойност като тази:

Вижте документацията на Sun JDK за информация относно CLASSPATH.

Използване на класовете LiveConnect

Ако оцените javaDog.dogColor, ще видите, че той също има стойността "chocolate", защото методът getMember на Java конструктора задава свойството dogColor на gabby.color.

Например, можете да използвате try. catch за обработка на изключения на LiveConnect:

Тук операторът eval е неуспешен, ако foo не е дефиниран. Блокът catch изпълнява метода jsCodeFailed, ако операторът eval в блока try хвърля JSException; методът otherCodeFailed се изпълнява, ако блокът try изведе друга грешка.

Например, ако win е предварително декларирана променлива от тип JSObject, следният Java код присвоява манипулатора на прозореца на win:

Можете да използвате следните редове вместо myForm=win.eval("document.testForm"):

Пример: Здравей свят

Можете да постигнете същия ефект по следния начин:

ЗАБЕЛЕЖКА: Може да се наложи да презаредите HTML страницата, като изберете Отвори страница от менюто Файл, вместо да щракнете върху бутона Презареждане, за да сте сигурни, че аплетът е повторно инициализиран.

Извикване на дефинирани от потребителя функции

Можете също така да извиквате дефинирани от потребителя функции от Java аплет. Например, добавете следната функция към вашите HTML страници с аплета HelloWorld:

Тази проста функция ще покаже предупредителен диалогов прозорец, съдържащ името и версията на използвания клиентски софтуер. След това променете метода init във вашия Java код по същия начин, по който сменихте paint:

Преобразуване на типове данни

Върнатите стойности на методите netscape.javascript.JSObject винаги се преобразуват в екземпляри на java.lang.Object. Правилата за преобразуване на тези върнати стойности също са описани в тези раздели.

Тип параметри на Java Правила за преобразуване

Точната стойност се пренася в Java без закръгляване и загуба на точност или знак.

Създава се нов екземпляр на java.lang.Double, точната стойност се прехвърля в Java без закръгляване и загуба на точност или знак.

Стойностите се преобразуват в низове. Например,

  • 237 става "237"

  • Стойностите 0 и NaN се преобразуват в false.
  • Други стойности се преобразуват в true.
    • Стойностите са закръглени до плаваща точност.
    • Стойностите, които са твърде големи или малки, се закръглят до +безкрайност или -безкрайност.
    • Стойностите се закръглят с помощта на режима закръгляване до отрицателна безкрайност.
    • Стойностите, които са твърде големи или малки, дават грешка по време на изпълнение.
    • Стойностите на NaN се преобразуват в 0.

    Тип параметри на Java Правила за преобразуване

    Всички стойности се конвертират директно в техните Java еквиваленти.

    Създава се нов екземпляр на java.lang.Boolean. Всеки параметър създава нов екземпляр, а не единичен екземпляр от същия примитивен тип.

    Стойностите се преобразуват в низове. Например:

  • true става "вярно"
  • false става "false"
  • true става 1

  • false става 0
  • Тип параметър на JavaПравила за преобразуване>

    Всички стойности се преобразуват в числа, както е описано вECMA-262 спецификации.

    Всички стойности се преобразуват в числа.

    • Празният низ става false.
    • Всички останали ценности стават верни.

    неопределени стойности

    Тип параметри на Java Правила за преобразуване

    Стойността се преобразува в екземпляр на java.lang.String, чиято стойност е низът "undefined".

    Стойността става невярна.

    Стойността става NaN.

    Стойността става 0.

    Нулеви стойности

    Тип параметър на JavaПравила за преобразуване

    Всеки клас Интерфейс от всякакъв тип

    Стойността става нула.

    Стойността става 0.

    Стойността става невярна.

    JavaArray и JavaObject обекти

    Тип параметри на Java Правила за преобразуване

    Всеки интерфейс или клас, който е присвоен, съвместим с разширения обект.

    Черупката се отстранява от предмета.

    Обектът се разопакова, методът toString на разопакования Java обект се извиква и резултатът се връща като нов екземпляр на java.lang.String.

    Обвивката се отстранява от обекта и възниква една от следните ситуации:

    • Ако разопакованият Java обект има метод doubleValue, JavaArray или JavaObject се преобразува в стойността, върната от този метод.
    • Ако внедреният Java обект няма метод doubleValue, възниква грешка.

    Обвивката се отстранява от обекта и възниква една от следните ситуации:

    • Ако обектът е null, той се преобразува в false.
    • Ако обектът има друга стойност, тя се преобразува в true.

    • Ако разопакованият обект има метод booleanValue, оригиналният обектсе преобразува в върната стойност.
    • Ако разопакованият обект няма метод booleanValue, преобразуването е неуспешно.

    Интерфейс или клас е съвместим с присвояване, ако разопакованият обект е екземпляр на типа параметър на Java. Тоест следното твърдение трябва да върне истина:

    JavaClass обекти

    Тип параметри на Java Правила за преобразуване

    Черупката се отстранява от предмета.

    Обектът JavaClass е обвит в нов екземпляр на java.lang.JSObject.

    Обектът се разопакова, методът toString на разопакования Java обект се извиква и резултатът се връща като нов екземпляр на java.lang.String.

    Обвивката се отстранява от обекта и възниква една от следните ситуации:

    • Ако обектът е null, той се преобразува в false.
    • Ако обектът има друга стойност, тя се преобразува в true.

    • Ако разширеният обект има метод booleanValue, оригиналният обект се преобразува в върната стойност.
    • Ако разопакованият обект няма метод booleanValue, преобразуването е неуспешно.

    Тип параметър на JavaПравила за преобразуване

    Обектът е обвит в нов екземпляр на java.lang.JSObject.

    Обектът се разопакова, методът toString на разопакования Java обект се извиква и резултатът се връща като нов екземпляр на java.lang.String.

    Обектът се преобразува в стойност с помощта на логиката на оператора ToPrimitive, описан в ECMA-262. Подсказката PreferredType, използвана с този оператор, е Number.

    Обвивката се отстранява от обекта и възниква една от следните ситуации:

    • Ако обектът е null, той се преобразува в false.
    • Ако обектът има такивадруга стойност, тя се преобразува в истина.

    • Ако разширеният обект има метод booleanValue, оригиналният обект се преобразува в върната стойност.
    • Ако разопакованият обект няма метод booleanValue, преобразуването е неуспешно.

    Съдържание Назад Напред Индекс

    Нашите връзки към уеб страници, можете да копирате html кода на връзката