Назад
Вперед
2.4. Комбинированное приложение
Приведены исходные тексты приложения,
способного работать как автономно, так и в ивде
аплета.
Исходный текст примера
Архив проекта для Java WorkShop 2.0
Демонстрация
(ваш браузер должен уметь работать с аплетами
Java)
Немного теории
Существует возможность создания
комбинированных приложений Java, способных
работать как автономно, так и в виде аплетов под
управлением браузера.
Главный класс такого приложения должен быть
унаследован от класса Applet, как это делается для
обычных аплетов. Чтобы приложение могло работать
автономно, в нем дополнительно необходимо
определить статический метод main. Этот метод
получит управление сразу после инициализации
приложения, запущенного в консольном режиме.
Заметим, что метод init вызывается только тогда,
когда приложение работает в режиме аплета.
Описание примера
Наше комбинированное приложение выполняет
очень простую работу: оно отображает в коне
(аплета или консольном) свое название и текущий
режим работы.
Когда приложение запущено автономно, в
консольном окне появляется строка "Combi application:
console mode" (рис. 1).
Рис. 1. Сообщение в консольном окне
Если же приложение работает как аплет, в его
окне появляется сообщение "Combi application: applet
mode" (рис. 2).
Рис. 2. Сообщение в окне аплета
Обратимся к исходному тексту аплета.
Главный класс имеет следующую структуру:
public class Combi extends Applet
{
static String szAppName;
public static void main(String args[])
{
. . .
}
public void init()
{
. . .
}
public String getAppletInfo()
{
. . .
}
public void paint(Graphics g)
{
. . .
}
}
Как видите, наряду с набором методов, обычных
для аплетов, здесь определен статический метод
main. Кроме того, мы определили статическое поле
szAppName, доступ к которому возможен из статического
метода main без создания объекта класса Combi.
Метод main
Когда приложение работает в консольном режиме,
оно выводит сообщение в консольное окно при
помощи метода System.out.println. Вызов этого метода
расположен внутри метода main:
szAppName =
"Combi application: console mode";
System.out.println(szAppName);
Заметим, что в режиме алпета метод main не
вызывается.
Метод init
Если запустить приложение как аплет, в дело
включается метод init. Он, также как и метод main,
инициализирует поле szAppName, после чего
устанавливает для окна аплета цвет фона и
изображения:
szAppName =
"Combi application: applet mode";
setBackground(Color.yellow);
setForeground(Color.black);
В консольном режиме метод init не вызывается.
Приложение инициализируется методом main.
Метод getAppletInfo
Так же как и во всех наших примерах, метод
getAppletInfo возвращает текстовую строку названия
приложения:
public String getAppletInfo()
{
return "Name:" + szAppName;
}
Метод paint
В задачу метода paint, который получает
управление только в режиме аплета, входит
рисование сообщения в окне аплета:
public void paint(Graphics g)
{
g.drawString(szAppName, 10, 30);
}
Эта процедура выполняется при помощи метода
drawString, определенного в классе Graphics.
Назад Вперед |