Электронная библиотека книг Александра Фролова и Григория Фролова.
Shop2You.ru Создайте свой интернет-магазин
Библиотека
Братьев
Фроловых
[Назад]

Библиотека примеров приложений Java

Оглавление
Консольное приложение

Простейший аплет
Аплет с параметрами
Комбинированное приложение
Консольное с окном Frame
Аплет с окном Frame
Комбинированное с окном Frame
Библиотека классов
Аплет с обработкой событий
Консольное с обработкой событий

Назад Вперед

2.6. Аплет с окном Frame

В примере демонстрируется способ создания окна Frame в аплете Java.

Исходный текст примера

Архив проекта для Java WorkShop 2.0

Демонстрация
(ваш браузер должен уметь работать с аплетами Java)

Немного теории

В примере "Консольное приложение с окном Frame" мы создавали окно класса Frame. Аналогичным способом окно Frame может создавать и аплет Java, встроенный в документ HTML. Однако есть небольшое отличие, касающееся обработки события Event.WINDOW_DESTROY.

Консольное приложение обрабатывало такое событие, завершая работу виртуальной машины Java. Аплет так поступать не может, потому что эта операция для него запрещена. Вместо этого аплет просто скрывает ненужное больше окно.

Описание примера

В нашем примере аплет создает небольшое окно класса Frame сразу после своей инициализации (рис. 1).

pic1.gif (2199 bytes)

Рис. 1. Окно Frame window

Обратите внимание, что в нижней части окна имеется предупреждающая надпись. Она информирует пользователя о том, что окно создано не локальной программой, а аплетом, загруженным с сервера Web. Пользователь не должен вводить в таком окне критичную информацию, например, номера кредитных карточек и тому подобное - эта информация передается по сети Internet или Intranet и может быть перехвачена.

Если пользователь переходит к просмотру другой страницы, окно Frame window исчезает, а при возврате к странице, содержащей наш аплет, - возникает вновь. Окно Frame window можно закрыть, пользуясь стандартными органами управления, расположенными в области заголовка.

Рассмотрим исходные тексты аплета.

Класс AppletFrame

Класс AppletFrame является главным в нашем аплете. В нем определено поле frame класса FrameWindow, а также методы init, destroy, getAppletInfo и paint.

Метод init вызывается при инициализации аплета. В его задачу входит создание окна как объекта класса FrameWindow, определенного в нашем приложении:

public void init()
{
  frame =  new FrameWindow("Frame window");
  frame.show();
}

Заголовок создаваемого окна передается конструктору в качестве единственного параметра.

Созданное окно отображается методом show.

Что касается метода destroy, то он убирает окно FrameWindow как только пользователь покидает страницу с аплетом:

public void destroy()
{
  frame.hide();
}

Для сокрытия окна применяется метод hide.

Класс FrameWindow

Исходный текст класса FrameWindow аналогичен исходному тексту этого же класса из примера "Консольное приложение с окном Frame".

Единственное отличие заключается в способе обработки события Event.WINDOW_DESTROY:

public boolean handleEvent(Event evt)
{
  if(evt.id == Event.WINDOW_DESTROY)
  {
    setVisible(false);
    return true;
  }
  else
    return super.handleEvent(evt);
}

Здесь мы только убираем окно с экрана, не завершая работу виртуальной машины Java. Заметим, что мы использовали метод setVisible в параметром false. Он используется в JDK версии 1.1 вместо устаревшего метода hide.

Назад Вперед

[Назад]