| |
rosoft Visual J++,
позволяет автоматически создавать исходные тексты шаблонов таких
комбинированных приложений.
Структура комбинированных приложений
Рассмотрим структуру комбинированного приложения Combi, полные исходные
тексты которого мы привели ниже в этой главе.
Главный класс комбинированного приложения
Класс Combi создан на базе класса Applet, что необходимо для обеспечения
работы этого приложения под управлением навигатора Internet:
public class Combi extends Applet
{
. . .
public static void main(String args[])
{
. . .
}
public String getAppletInfo()
{
. . .
}
public void init()
{
. . .
}
public void paint(Graphics g)
{
. . .
}
}
Обратите внимание, что наряду с методами, которые обычно определяются
аплетами, такими как getAppletInfo, init и paint, в классе комбинированного
приложения определен метод main. Если приложение запускается как аплет, метод
main не получает управления. Если же приложение запущено автономно, этот метод
первым получает управление и выполняет все необходимые инициализирующие
действия.
Главное из этих действий - создание окна на базе класса Frame для размещения
в нем аплета, создание аплета и вызов функций инициализации аплета. Ниже мы
привели исходный текст метода main приложения Combi, созданный для нас системой
Java Applet Wizard:
public static void main(String args[])
{
CombiFrame frame = new CombiFrame("Combi");
frame.show();
frame.hide();
frame.resize(
frame.insets().left + frame.insets().right + 320,
frame.insets().top + frame.insets().bottom + 240);
Combi applet_Combi = new Combi();
frame.add("Center", applet_Combi);
. . .
applet_Combi.init();
applet_Combi.start();
frame.show();
}
Прежде всего, метод main создает объект frame класса CombiFrame,
определенного в нашем приложении на базе класса Frame (окно фрейма). Напомним,
что класс Frame, который был нами описан в 30 томе “Библиотеки системного
программиста”, позволяет приложениям Java создавать окна, напоминающие окна
обычных приложений Windows.
Метод show отображает окно фрейма.
Далее в методе main выполняется изменение размеров окна фрейма, перед чем
окно скрывается методом hide. Для изменения размеров окна применяется метод
resize, которому через первый и второй параметры передаются новые значения,
соответственно, ширины и высоты окна.
Размеры окна устанавливаются с учетом размеров внешней рамки и заголовка
окна, для чего применяется метод insets. Поля left и right объекта класса
Insets, ссылку на который возвращает метод insets, содержат ширину,
соответственно, левой и правой части рамки окна. Поле top содержит высоту
верхней части рамки окна с учетом заголовка, а поле bottom - высоту нижней
части рамки окна.
Далее метод main делает нечто интересное - он создает аплет класса Combi:
Combi applet_Combi = new Combi();
Когда приложение Java встроено в документ HTML как аплет, объект аплета
создается автоматически навигатором при просмотре этого документа и добавляется
в окно навигатора. В случае автономного приложения мы сами должны создать аплет
и добавить его в окно фрейма.
Добавление аплета в окно фрейма выполняется методом add:
frame.add("Center", applet_Combi);
В 30 томе “Библиотеки системного программиста” мы использовали этот метод
для добавления компонент в окно контейнера, которым, в частности, является окно
фрейма.
Создав аплет, мы должны вызвать методы init и start, как это происходит при
инициализации аплета, встроенного в документ HTML:
applet_Combi.init();
applet_Combi.start();
Перед завершением своей работы метод main отображает окно фрейма, внутри
которого теперь находится окна аплета:
frame.show();
Класс фрейма для комбинированного приложения
Теперь о классе CombiFrame.
Определение этого класса выглядит достаточно просто:
class CombiFrame extends Frame
{
public CombiFrame(String str)
{
super (str);
}
public boolean handleEvent(Event evt)
{
swit
|
|