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

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

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

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

Назад Вперед

2.8. Приложение со своей библиотекой классов

Приложение демонстрирует способ создания своей библиотеки классов package.

Исходный текст аплета

Исходный текст библиотеки

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

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

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

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

Библиотека классов или пакет (package) используется в приложениях Java для решения проблемы конфликта имен классов, интерфейсов и методов. Обычно они объединяют классы сходного назначения. Все стандартные библиотеки классов Java разработаны как пакеты и поставляются в исходных текстах вместе с JDK и Sun Java WorkShop.

Вы можете создать свою библиотеку классов, разместив в первой строке исходного текста оператор package:

package some.pack.name;

Здесь после оператора package располагается имя библиотеки. Обычно оно состоит из нескольких строк, разделенных точкой. Для исключения конфликта имен вы можете добавлять к имени библиотеки префикс, например, доменный адрес сервера Web вашей фирмы или просто название фирмы.

В результате компиляции проекта библиотеки классов получается файл с расширением имени class. Его необходимо разместить в каталоге, где находятся все локальные библиотеки классов Java. Этот каталог определяется переменной среды с именем CLASSPATH.

Для использования классов и интерфейсов, определенных в библиотеке, вы должны включить в исходный текст приложения оператор import, например:

import some.pack.name.*;

В данном случае импортируются все классы и интерфейсы, определенные в библиотеке some.pack.name. Заметим, что вне библиотеки возможно использование только таких классов и интерфейсов, которые определены как public.

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

В качестве основы для нашего примера мы взяли аплет, описанный в разделе "2.6. Аплет с окном Frame". В исходном тексте этого аплета наряду с главным классом определен класс FrameWindow, отвечающий за работу окна с названием Frame Window.

Пример состоит из двух проектов, один из которых является проектом аплета, а другой - проектом библиотеки, состоящей из одного класса FrameWindow.

Проект аплета

Исходный текст аплета содержит только определение класса PackDemo. Что же касается класса FrameWindow, то он импортируется наряду со стандартными классами, как это показано ниже:

import java.applet.Applet;
import java.awt.*;
import frolov.test.frame.FrameWindow;

В последней строке приведенного выше фрагмента кода мы импортируем класс FrameWindow типа public, расположенный в созданной нами библиотеке классов frolov.test.frame.

Описание исходного текста класса PackDemo мы здесь не приводим, так как этот класс полностью повторяет класс AppletFrame из раздела "2.6. Аплет с окном Frame".

Проект библиотеки

В начале файла исходного текста класса FrameWindow мы определили название библиотеки, указав его в операторе package до операторов import:

package frolov.test.frame;

import java.applet.Applet;
import java.awt.*;

Таким образом мы объявили, что в результате компиляции исходного текста должна получиться библиотека классов.

Обращаем ваше внимание на несколько важных моментов, которые следует учитывать при создании собственных библиотек классов.

  • Чтобы приложение могло использовать класс, определенный в библиотеке, этот класс должен быть объявлен как public

В нашем примере таким является класс FrameWindow:

public class FrameWindow extends Frame
{
  . . .
}
  • Если в исходном тексте определен класс public, то имя файла исходного текста должно совпадать с именем этого класса

Наш класс называется FrameWindow, поэтому его исходный текст расположен в файле FrameWindow.java.

  • Имя проекта Java WorkShop также должно совпадать с именем класса public
  • Подготавливая проект библиотеки классов в Java WorkShop, вы должны указать тип проекта как Package и задать путь к каталогу, куда  Java WorkShop запишет CLASS-файл библиотеки

На рис. 1 мы показали страницу General блокнота параметров проекта библиотеки классов.

pic1sm.gif (1979 bytes) Рис. 1. Страница General блокнота параметров проекта

Для того чтобы увидеть рисунок в увеличенном виде, сделайте щелчок мышью по изображению

Здесь указано имя проекта FrameWindow и имя библиотеки frolov.test.frame. Тип проекта определяет переключатель Package, находящийся во включенном состоянии.

На рис. 2 показана страница Build этого же блокнота.

pic2sm.gif (1706 bytes) Рис. 2. Страница Build блокнота параметров проекта

Для того чтобы увидеть рисунок в увеличенном виде, сделайте щелчок мышью по изображению

Обратите внимание на поле Root directory of class hierarchy. Здесь указан полный путь к каталогу, в который будет записана библиотека.

Так как наша библиотека называется frolov.test.frame, то в каталоге pkg, заданном на рис. 2, будет создано дерево каталогов:

frolov-+
       -> test-+
               -> frame

Файл FrameWindow.class таким образом окажется в следующем каталоге:

f:\jws\FrameWindow\pkg\frolov\test\frame

Назад Вперед

[Назад]