Druzya.org
Возьмемся за руки, Друзья...
 
 
Наши Друзья

Александр Градский
Мемориальный сайт Дольфи. 
				  Светлой памяти детей,
				  погибших  1 июня 2001 года, 
				  а также всем жертвам теракта возле 
				 Тель-Авивского Дельфинариума посвящается...

Библиотека :: Компьютеры и Программирование :: А.В. Фролов, Г.В. Фролов - Microsoft Visual J++
<<-[Весь Текст]
Страница: из 275
 <<-
 
умента HTML параметры, желательно (но вовсе не 
обязательно) определить метод getParameterInfo. Этот метод возвращает массив 
строк описаний параметров, в котором находятся имена и типы параметров, а также 
строки описаний параметров.
   Для примера мы привели фрагмент исходного текста приложения TEXTOUT, 
описанного нами в 30 томе, посвященном разработке приложений Java:
public String[][] getParameterInfo()
{
  String[][] info =
  {
    { PARAM_Str1, "String", "Text string to write" },
    { PARAM_Str2, "String", "Text string to write" },
    { PARAM_Str3, "String", "Text string to write" },
      . . .
    { PARAM_Font1, "String", "Text font" },
    { PARAM_Font2, "String", "Text font" },
    { PARAM_Font3, "String", "Text font" },
      . . .
    { PARAM_Type1, "String", "Font type" },
    { PARAM_Type2, "String", "Font type" },
    { PARAM_Type3, "String", "Font type" },
  };
  return info;    
}
   Вызывая метод getParameterInfo для найденного аплета, аплет-инспектор может 
многое узнать о его параметрах. Эти знания нужны, в частности, для получения 
значений параметров.
   Получение значений параметров аплета
   Для получения значения заданного параметра найденного аплета вы можете 
воспользоваться методом getParameter:
String sParameter = currentApplet. GetParameter(“name”);
   Здесь мы получаем значение параметра с именем NAME.
   Обращение к полям и методам других аплетов 
   Теперь вы научились искать аплеты, расположенные в текущем документе HTML, 
получая список ссылок на соответствующие объекты. Однако для того чтобы 
получить доступ к полям и методам найденных аплетов, вы должны сделать еще одну 
вещь. Нужно импортировать в аплет, который занимается поиском, описание класса 
аплета, к полям и методам которого будет выполняться обращение.
   Поясним это.
   Все аплеты, как вы знаете, происходят от класса Applet. Они добавляют в этот 
класс свои поля и методы, а также переопределяют методы из базового класса.
   В процессе поиска аплетов метод nextElement возвращает ссылку на объект, 
принадлежащий к классу Object, который мы можем преобразовать к классу Applet:
Applet currentApplet = (Applet)(eApplets.nextElement());
   Однако такое преобразование сможет открыть нам доступ только к тем полям и 
методам, которые определены в базовом классе. Для того чтобы получить доступ к 
полям и методам класса найденного аплета, мы должны преобразовать значение, 
полученное от метода nextElement, к ссылке на класс этого аплета.
   Как это можно сделать?
   Рассмотрим конкретный пример, использованный нами в приложении Inspector, 
полные исходные тексты которого вы найдете ниже.
   Это приложение управляет работой аплета Audio, описанного в предыдущей главе 
и предназначенного для проигрывания звукового файла. В классе Audio определено 
поле auClip, в котором хранится ссылка на интерфейс AudioClip:
public class Audio extends Applet
{
  private String m_ClipName = "kaas.au";
  private final String PARAM_ClipName = "ClipName";
  AudioClip auClip;
  . . .
}
   Аплет Inspector получает доступ к полю auClip и вызывает методы, 
предназначенные для управления проигрыванием звукового файла. Таким образом, 
аплет Inspector пользуется полем auClip, определенным в другом аплете.
   Чтобы это стало возможным, в исходном тексте аплета Inspector импортируется 
класс Audio, как это показано ниже:
import java.applet.*;
import java.awt.*;
import java.util.*;
import Audio;
   Когда в процессе поиска аплетов аплет Inspector обнаруживает аплет Audio, он 
сохраняет ссылку на этот аплет в поле appAudio, выполняя явное преобразование 
типов:
Audio appAudio = null;
  . . .
if(appName.equals("Name: Audio"))
{
  appAudio = (Audio)currentApplet;
}
   Теперь, пользуясь значением из поля appAudio, можно обращаться к полю auClip,
 определенному в аплете Audio:
appAudio.auClip.play();
   Приложение Inspector
   Аплет Inspector располагается в одном документе HTML с приложениями Audio и 
Rectangles, которые уже были описаны в нашей книге (рис. 6.1).

Рис. 6.1. Документ HTML, в котором расположены три аплета - Inspector, Audio и 
Rectangles
   В верхней части окна аплета Inspector расположены кнопки, дублирующие 
одноименные кнопки аплета Audio. С их помощью можно заставить аплет Audio 
проигрывать файл в однократном режиме или в цикле, а также остановить 
проигрывание.
   В нижней части аплета Inspector отображается список имен аплетов, найденных 
в текущем документе HTML. Для списка используются первые строки описаний 
аплетов, полученные методом getAppletInfo.
   Исходные те
 
<<-[Весь Текст]
Страница: из 275
 <<-