Microsoft Visual J++. Создание приложений и аплетов на языке Java

         

Простейший аплет


Аплетами называются приложения Java, которые выполняются под управлением виртуальной машины Java, встроенной в навигатор, такой как Microsoft Internet Explorer или Netscape Navigator. Аплет встраивается в документ HTML и выглядит как окно заранее заданного размера. Он может рисовать в своем окне (и только в нем) произвольные изображения или текст.

Двоичный файл с исполняемым (а точнее говоря, интерпретируемым) кодом Java располагается на сервере WWW. В документе HTML с помощью оператора <APPLET> организуется ссылка на этот двоичный файл.

Когда пользователь загружает в навигатор документ HTML с аплетом, файл аплета переписывается с сервера WWW на рабочую станцию пользователя. После этого навигатор начинает его выполнение.

Возможно, вам не понравится такая идея, как запуск чужого аплета на своем компьютере - мало ли чего этот аплет может там сделать. Однако аплеты, в отличие от обычных приложений Java, сильно ограничены в своих правах. Например, они не могут читать локальные файлы и тем более в них писать. Есть также ограничения и на передачу данных через сеть: аплет может передавать данные только тому серверу WWW, с которого он загружен. В крайнем случае вы можете совсем отказаться от использования аплетов, отключив возможность их загрузки соответствующей настройкой навигатора. Но мы пока не будем этого делать, так как аплеты являются предметом изучения в нашей книге.

Давайте создадим простейший аплет, воспользовавшись для этого системой автоматизированной разработки шаблонов аплета Java Applet Wizard, встроенной в Microsoft Visual J++.

Запустите систему Microsoft Visual J++ и выберите из меню File строку New. В появившейся на экране диалоговой панели New выберите строку New Project Workspace. Затем вам нужно выбрать тип проекта Java Applet Wizard, как это показано на рис. 2.7.

Рис. 2.7. Выбор типа проекта Java Applet Wizard

В поле Name введите имя приложения HelloAp, а в каталоге Location укажите путь к каталогу, в котором будут созданы файлы проекта. Затем нажмите кнопку Create. Вслед за этим на экране появится по очереди несколько диалоговых панелей, в которых вы должны описать создаваемый аплет.


Первая такая диалоговая панель показана на рис. 2.8.



Рис. 2.8. Выбор типа приложения, названия класса и степени подробности создаваемых комментариев к исходному тексту

В поле How would you like to be able to run your program включите переключатель As an applet only. При этом создаваемое приложение сможет работать только под управлением навигатора.

Имя класса аплета нужно указать в поле What would you like to name your applet class. Оставьте имя HelloAp, которое там есть по умолчанию.

Состояние переключателей в поле Would you like to generate source file comments влияет на то, насколько подробно будут комментироваться создаваемый исходный текст приложения, и будет ли он комментироваться вообще.





Если включить переключатель Yes, please, в исходный текст будут добавлены комментарии. Если же включить переключатель No, thank you, никаких комментариев не будет.

При включении переключателя Explanatory comments в исходный текст будут включены комментарии, объясняющие назначение отдельных фрагментов кода. Переключатель TODO влияет на то, будут ли отмечены места исходного текста, в который вы должны вставить свой код, наполняющий аплет реальной жизнью.

Завершив заполнение первой диалоговой панели, нажмите кнопку Next и переходите к следующей панели, показанной на рис. 2.9.



Рис. 2.9. Запрос на создание документа HTML и определение размера окна аплета

Система Java Applet Wizard может создать для вас образец документа HTML, в который будет включен разрабатываемый вами аплет. Для этого во второй диалоговой панели вы должны включить переключатель Yes, please, расположенный в поле Would you like a sample HTML file.

Начальные размеры окна, создаваемого в документе HTML для аплета, определяются в полях Width in pixels и Height in pixels (соответственно, ширина и высота). Заметим, что аплет может изменять размеры своего окна, о чем мы еще будем говорить.

Третья диалоговая панель показана на рис. 2.10.



Рис. 2.10. Вопросы, связанные с мультизадачностью, анимацией и обработкой сообщений от мыши



В этой панели вы должны указать, будет ли ваш аплет создавать задачи. Наш первый аплет однозадачный, поэтому в поле Would you like your applet to be multi-threaded вы должны вклюить переключатель No, thank you.

На вопрос Would you like support for animation вы сможете ответить утвердительно только в том случае, если ваш аплет мультизадачный.

Три переключателя, расположенные в поле Which mouse event handlers would you like added, позволят вам автоматически добавить обработчики сообщений от мыши. Пока не включайте их, так как мышью мы займемся позже.

Следующая, четвертая диалоговая панель показана на рис. 2.11.



Рис. 2.11. Определение параметров, передаваемых аплету

С помощью этой диалоговой панели вы можете указать, какие параметры должны передаваться аплету через документ HTML при запуске. Нажмите здесь кнопку Next, не добавляя никаких параметров.

В пятой диалоговой панели (рис. 2.12) вам дается возможность отредактировать информацию, описывающую ваш аплет.



Рис. 2.12. Редактирование информации, описывающей аплет

Эта информация будет возвращаться методом getAppInfo, определенным в классе аплета. При необходимости измените строки описания и нажмите кнопку Next.

Финальная диалоговая панель показана на рис. 2.13.



Рис. 2.13. Финальная диалоговая панель

Здесь вы можете последний раз перед созданием файлов проекта посмотреть на заданные вами параметры. Если нажать кнопку OK, проект будет создан. Для отказа от создания проекта нажмите кнопку Cancel.

В результате работы системы Java Applet Wizard будет создано два файла (не считая файла проекта). Это исходный текст аплета HelloAp.java (листинг 2.2) и исходный текст документа HTML HelloAp.html, в который включен создаваемый аплет (листинг 2.3).

Листинг 2.2. Файл HelloAp\HelloAp.java (комментарии переведены на русский язык)

//**********************************************************

// HelloAp.java:     Applet

//

//**********************************************************

import java.applet.*;

import java.awt.*;



//==========================================================

// Основной класс для аплета HelloAp

//

//==========================================================

public class HelloAp extends Applet

{

  // Конструктор класса HelloAp

  //---------------------------------------------------

  public HelloAp()

  {

    // Сделать: Добавьте сюда код конструктора

  }

  // Обеспечение информации об аплете:

  //

  //   Метод getAppletInfo возвращает строку, которая

  // описывает аплет. Вы можете приведсти такую информацию,

  // как имя автора и дата создания, а так же любые другие

  // сведения об аплете

  //------------------------------------------------------

  public String getAppletInfo()

  {

    return "Name: HelloAp\r\n" +

      "Author: Alexandr Frolov\r\n" +

      "Created with Microsoft Visual J++ Version 1.0";

  }

  // Метод init вызывается системой AWT при первой загрузке

  // или перезагрузке аплета. Вы можете переопределить этот

  // метод для выполнения еобходимой инициализации аплета,

  // например, инициализации структур данных, загрузку

  // изображений или шрифтов, создание окон фреймов,

  // установку системы управления внешним видом или

  // добавление элементов пользовательского интерфейса

  //------------------------------------------------------

  public void init()

  {

    // Если для размещения в окне аплета органов управления

    // вы используете класс "control creator", созданный

    // системой ResourceWizard, из метода init можно

    // вызывать метод CreateControls. Удалите вызов функции

    // resize перед добавлением вызова функции

    // CreateControls, так как эта функция выполняет

    // изменение размера окна аплета самостоятельно

    //--------------------------------------------------

    resize(320, 240);

    // Сделать: Добавьте сюда дополнительный код

    // инициализации

  }

  // Разместите здесь дополнительный код, необходимый



  // для “чистого” завершения работы аплета. Метод

  // destroy вызывается, когда аплет завершает работу

  // и будет выгружен из памяти

  //---------------------------------------------------

  public void destroy()

  {

    // Сделать: Добавьте сюда код завершения работы аплета

  }

  // Обработчик процедуры рисования окна аплета HelloAp

  //---------------------------------------------------

  public void paint(Graphics g)

  {

    g.drawString(

      "Created with Microsoft Visual J++ Version 1.0",

      10, 20);

  }

  //    Метод start вызывается при первом появлении на

  // экране страницы HTML с аплетом

  //---------------------------------------------------

  public void start()

  {

    // Сделать: Добавьте сюда дополнительный код,

    //   который должен работать при запуске аплета

  }

      

  //    Метод stop вызывается когда страница HTML с

  // аплетом исчезает с экрана

  //---------------------------------------------------

  public void stop()

  {

    // Сделать: Добавьте сюда дополнительный код,

    //   который должен работать при остановке аплета

  }

  // Сделать: Добавьте сюда дополнительный код

}

Листинг 2.3. Файл HelloAp\HelloAp.html

<html>

<head>

<title>HelloAp</title>

</head>

<body>

<hr>

<applet

    code=HelloAp.class

    id=HelloAp

    width=320

    height=240 >

</applet>

<hr>

<a href="HelloAp.java">The source.</a>

</body>

</html>


Содержание раздела