| Назад
    Вперед 10.4. Обращение к полю другого аплетаПример демонстрирует использование интерфейса
    AppletContext и метода getApplet. Аплет получает и
    отображает значение, записанное в поле другого
    аплета, расположенного на той же странице HTML. Исходный текст первого аплета,
    получающего содержимое поля Исходный текст второго аплета,
    содержимое поля которого определяется первым
    аплетом Архив проекта для Java WorkShop 2.0  Демонстрация(ваш браузер должен уметь работать с аплетами
    Java JDK 1.1)
 Немного теорииПолучив тем или иным способом ссылку на другой
    аплет, расположенный в том же документе HTML, наш
    аплет может получать значения полей другого
    аплета.  Для того чтобы аплет мог получить значения
    полей из других аплетов, эти поля должны быть
    определены как public.  Описание примераПример состоит из двух аплетов, расположенных в
    одном документе HTML (рис. 1).   
 Рис. 1. В одном документе HTML мы расположили два
    аплета  Первый аплет создает в своем окне однострочное
    поле редактирования, где вы можете вводить любые
    текстовые строки.  Второй аплет содержит такой же однострочный
    редактор и кнопку Get text. Если нажать на эту кнопку,
    второй аплет получит текст из редактора первого
    аплета и скопирует его в свой редактор.  Исходный текст первого аплета TextEditИсходный текст первого аплета предельно прост.  В его главном классе мы определили поле txtf
    класса TextField:  import java.applet.*;
import java.awt.*;
public class TextEdit extends Applet
{
  public TextField txtf;
  . . .
}Обратите внимание, что поле txtf определено как
    public. Это необходимо для того чтобы другой аплет
    смог получить содержимое поля.  Метод init класса TextEditМетод init класса TextEdit просто создает текстовое
    поле и добавляет его в окно аплета:  public void init()
{
  txtf = new TextField("Enter text", 35);
  add(txtf);
  setBackground(Color.yellow);
}Дополнительно метод init изменяет фон окна на
    желтый.  Метод getAppletInfo класса TextEditМетод getAppletInfo возвращает строку описания
    аплета TextEdit:  public String getAppletInfo()
{
  return "Name: TextEdit";
}Исходный текст второго аплета GetValueВ исходный текст второго аплета GetValue мы
    импортировали описание класса первого аплета
    TextEdit, что необходимо для обращения к
    определенному там полю txtf:  import java.awt.*;
import java.applet.*;
import java.util.*;
import java.awt.event.*;
import TextEdit;
public class GetValue extends Applet
  implements ActionListener
{
  TextField txtf;
  Button btnGetText;
  TextEdit appletTextEdit;
  . . .
}Кроме того, в главном классе мы определили свое
    поле txtf, поле btnGetText для хранения ссылки на кнопку
    Get text и поле appletTextEdit для хранения ссылки на аплет
    TextEdit.  Метод init класса GetValueПри инициализации аплета GetValue его метод init
    создает однострочный редактор txtf класса TextField и
    добавляет его в окне аплета:  txtf = new TextField("", 35);
add(txtf);В окне этого редактора будет отображаться
    строка, извлеченная из поля txtf аплета TextEdit.  Далее метод init создает кнопку, добавляет ее в
    окно аплета и подключает обработчик событий:  btnGetText = new Button("Get text");
add(btnGetText);
btnGetText.addActionListener(this);Ссылка на аплет TextEdit получается методом init при
    помощи метода getApplet, который мы уже использовали
    в этом разделе библиотеки примеров:  AppletContext ac;
ac = getAppletContext();
appletTextEdit = 
  (TextEdit)ac.getApplet("TextEdit");В заключение метод init устанавливает желтый
    цвет фона окна аплета GetValue:  setBackground(Color.yellow); Метод actionPerformed класса GetValueЕсли ссылка на аплет TextEdit получена успешно,
    метод actionPerformed при нажатии на кнопку Get text
    извлекает текст из редактора аплета TextEdit и
    сохраняет ее в строке s класса String:  if(appletTextEdit != null)
{
  if(e.getSource().equals(btnGetText))
  {
    String s =
      appletTextEdit.txtf.getText();
    . . .
  }
}Далее метод actionPerformed записывает полученный
    текст в "свое" поле txtf, определенное в аплете
    GetValue:  txtf.setText(s);   Метод getAppletInfo класса GetValueМетод getAppletInfo возвращает текстовое описание
    аплета GetValue:  public String getAppletInfo()
{
  return "Name: GetValue";
}
 Назад Вперед |