Внимание! Это сайт переехал на www.simplecoding.org
Новые возможности
Структура программы
Управление поиском
Изменения в исходниках библиотеки
Создание графического интерфейса
Скачать
Структура программы
Теперь посмотрим на структуру программы (рис.4). Я изобразил её в виде диаграммы классов. Эта и следующая диаграмма составлены в соответствии с правилами UML (unified modeling language – унифицированный язык моделирования). Если вы не знакомы с UML, то не беспокойтесь, я постараюсь подробно все объяснить, да и сами диаграммы достаточно простые. Но, если вы планируете заниматься разработкой больших приложений, то все же советую почитать какую-нибудь книгу или статью о UML. Это значительно упростит и ускорит процесс разработки (проверено на собственном опыте).
Рис.4. Диаграмма классов
Давайте внимательно посмотрим на диаграмму. Все классы изображены в виде прямоугольников, в которых написаны их имена. Перед именем класса может идти имя объекта этого класса. Например, запись finder:FileFinder означает, что в программе есть объект с именем finder типа FileFinder.
Работа программы начинается с вызова метода main(…) (класс Main). Тут выполняется создание главного фрейма программы, на котором размещается основная панель (объект класса MainPanel) со всеми элементами управления.
Классы MainPanel и JPanel соединены сплошной линией с замкнутой стрелкой на конце. Это означает, что MainPanel является потомком JPanel. Таким образом, мы можем разместить MainPanel на фрейме и добавить на неё различные элементы управления (кнопки, надписи, текстовые поля и т.п.).
Теперь взгляните на интерфейс SearchListener. Он изображен также как обычный класс, только над его именем указано ключевое слово (стереотип) interface. Пунктирная линия с замкнутой стрелкой на конце означает, что класс MainPanel реализует интерфейс SearchListener, т.е. содержит все методы, объявленные в интерфейсе.
Теперь посмотрим на классы Thread, ResultsDialog и FileFinder. Все они соединены с классом MainPanel линиями, на одном конце которых находятся незамкнутые стрелки, а на другом – ромбики. Это обозначение можно расшифровать так: "MainPanel владеет объектами Thread, ResultsDialog и FileFinder". Рассмотрим подробнее назначение этих классов.
FileFinder. С этим классом вы знакомы по предыдущим статьям. Он содержит методы, с помощью которых выполняется поиск файлов. Кроме того, этот класс "использует" интерфейс SearchListener, что отражено на диаграмме с помощью пунктирной линии с разомкнутой стрелкой. В нашем случае это означает, что объект типа FileFinder содержит указатели на объекты типа SearchListener, и может вызывать их методы.
ResultsDialog. Этот класс является потомком JDialog, и представляет собой диалоговое окно с текстовым полем для отображения результатов поиска.
Как видите, состав программы довольно простой. Теперь посмотрим, каким образом все это работает.
Предыдущий раздел Читать дальше