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

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

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

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

Назад Вперед

2.4. Комбинированное приложение

Приведены исходные тексты приложения, способного работать как автономно, так и в ивде аплета.

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

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

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

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

Существует возможность создания комбинированных приложений Java, способных работать как автономно, так и в виде аплетов под управлением браузера.

Главный класс такого приложения должен быть унаследован от класса Applet, как это делается для обычных аплетов. Чтобы приложение могло работать автономно, в нем дополнительно необходимо определить статический метод main. Этот метод получит управление сразу после инициализации приложения, запущенного в консольном режиме.

Заметим, что метод init вызывается только тогда, когда приложение работает в режиме аплета.

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

Наше комбинированное приложение выполняет очень простую работу: оно отображает в коне (аплета или консольном) свое название и текущий режим работы.

Когда приложение запущено автономно, в консольном окне появляется строка "Combi application: console mode" (рис. 1).

pic1.gif (3245 bytes)

Рис. 1. Сообщение в консольном окне

Если же приложение работает как аплет, в его окне появляется сообщение "Combi application: applet mode" (рис. 2).

pic2.gif (1198 bytes)

Рис. 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.

Назад Вперед

[Назад]