Назад
Вперед
2.6. Аплет с окном Frame
В примере демонстрируется способ создания окна
Frame в аплете Java.
Исходный текст примера
Архив проекта для Java WorkShop 2.0
Демонстрация
(ваш браузер должен уметь работать с аплетами
Java)
Немного теории
В примере "Консольное
приложение с окном Frame" мы создавали окно
класса Frame. Аналогичным способом окно Frame может
создавать и аплет Java, встроенный в документ HTML.
Однако есть небольшое отличие, касающееся
обработки события Event.WINDOW_DESTROY.
Консольное приложение обрабатывало такое
событие, завершая работу виртуальной машины Java.
Аплет так поступать не может, потому что эта
операция для него запрещена. Вместо этого аплет
просто скрывает ненужное больше окно.
Описание примера
В нашем примере аплет создает небольшое окно
класса Frame сразу после своей инициализации (рис.
1).
Рис. 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.
Назад Вперед |