Занятие первое
- Мастеры закладки New
- Мастеры закладки Panels
- Мастер закладки Menus
- Мастеры закладки Dialogs
- Мастеры закладки BeansExpress
- Мастер закладки Other
Для программиста любой проект- это совокупность файлов, логически связанных между собой одной целью. Среди них могут быть и файлы с исходными текстами на языке программирования, которые впоследствии превратятся в программу, и прочие файлы, необходимые для дальнейшей работы над проектом, и многое другое. JBuilder помогает программистам, ведущим проекты, графически отображать их в навигационной панели и отслеживать момент, когда отдельные файлы из проекта требуют сохранения или перекомпиляции.
Первое, что необходимо сделать при подготовке нового приложения, - создать его проект. Для этого вызовите мастер проектов командой File New Project. На экране возникнет диалоговая панель мастера создания проекта, в которую вы должны ввести необходимые для проекта данные.
После того как вы нажмете на кнопку Finish, JBuilder создаст в указанном вами каталоге новый проект и немедленно откроет его в своей среде. Взглянув на панель навигации (верхняя левая), вы увидите, что проект, который вы только что создали, не пустой. В нем уже есть файл в формате HTML, содержащий заготовки комментариев к проекту. Вы можете просмотреть и отредактировать его, если щелкнете на закладке Source.
На втором этапе устанавливаются опции проекта. Для этого щелкните правой кнопкой мыши на пиктограмме, обозначающей проект, и выберите из появившегося контекстного меню пункт Properties. Другой вариант - выберите команду меню File Project Properties.
Все опции проекта будут показаны в диалоговой панели с двумя закладками.
Рассмотрим опции на закладке Project:
Browser Source Path - маршруты в файловой системе, по которым среда JBuilder ищет файлы с исходным текстом; если файлы не найдены, среда JBuilder продолжает искать их в маршрутах, заданных в поле Compiler Source Path;
Compiler Source Path - маршруты, по которым компилятор проверяет, нужно ли перекомпилировать class-файлы; файлы, указанные в поле Browser Source Path, игнорируются;
Class Path - местоположение библиотечных файлов;
Out Path - каталог, в котором компилятор сохраняет class-файлы после компиляции исходных текстов проекта;
Include Debug Info - включает отладочную информацию в получаемые при компиляции class-файлы;
Show Warnings - включает показ предупреждающих сообщений и ошибок времени компиляции;
Show Deprecation - включает сообщения обо всех устаревших классах, методах, свойствах, событиях и переменных программного интерфейса Java, использованных в проекте;
Check Stable Packages - включает проверку "стабильных" пакетов, определяя, нужно ли произвести их перекомпиляцию; под "стабильными" пакетами подразумеваются библиотечные пакеты фирм, из которых ваш проект импортирует классы;
Make Packages Stable - если данная опция включена, то пакет, который получается в процессе компиляции проекта, проверяется однократно и помечается как "стабильный", что полезно при построении окончательного варианта пакета;
Obfuscate - если эта опция включена, то внутренние имена, использованные в вашей программе, шифруются, что делает ее менее подверженной дизассемблированию в исходный код; все внутренние имена программы изменяются;
Exclude Class - исключает заданный class-файл из процесса компиляции;
Encoding - определяет кодировку символов; если данная опция не установлена, будет использоваться локальная кодировка, заданная в вашей ОС по умолчанию;
Default - нажатие на эту кнопку устанавливает для всех опций значения по умолчанию.
Следующая закладка Run/Debug предназначена для установки аргументов командной строки, которые будут переданы программе или аплету во время запуска, и некоторые другие параметры:
Default Runnable File -список, из которого выбирается имя запускаемого файла проекта;
Command Line Parameters - параметры командной строки, задаваемые для утилиты сборки проектов bmj и компилятора Java bcj;
Java VM Parameters - параметры командной строки для виртуальной машины Java, на которой будет запущен проект;
Compile Project before Debugging - если эта опция включена, то перед запуском отладчика проект будет откомпилирован;
Send Run Output to Execution Log - эта опция посылает весь текстовый вывод программы в специальное окно протокола, которое можно открыть командой View Execution Log;
Send Run Output to Console Window - отправка всего вывода программы в консольное окно, открываемое в момент запуска программы;
Default - нажатие на эту кнопку приводит к тому, что все опции и поля будут установлены в значения по умолчанию.
Загрузка имеющегося проекта
Если вам нужно открыть имеющийся проект, можно дважды щелкнуть на пиктограмме проекта JBuilder в окне Explorer (Проводник). Автоматически будет запущен Borland JBuilder, и проект будет открыт в окне AppBrowser. В среде разработки JBuilder проект открывается командой File Open/Create. На экране возникнет диалоговая панель, в которой нужно выбрать требуемый проект.
Добавление и удаление файлов проекта
Для добавления файлов в проект воспользуйтесь уже знакомой диалоговой панелью Open/Create. Откройте ее командой File Open/ Create, выберите файл, который нужно добавить, отметьте флажок Add to Project и нажмите кнопку OK. Выбранный файл будет добавлен в текущий проект и открыт в окне AppBrowser.
Еще один способ добавления файла в проект - нажать в окне AppBrowser кнопку с изображением папки, на которой нарисован знак "плюс". На экране появится та же диалоговая панель Open/Create, в которой нужно выделить добавляемый файл и нажать кнопку OK.
Для удаления файла из проекта выделите нужный файл и нажмите кнопку с изображением папки со знаком "минус" или же выберите из меню File пункт Remove from Project.
Расширение проекта
Когда проект успешно создан, его нужно расширить, добавляя в него файлы с исходными текстами на языке Java и другие файлы, которые предусмотрены вашим проектом. Используйте команду File New, чтобы вызвать диалоговую панель с различными мастерами для создания новых элементов.
В диалоговой панели New несколько страничек с закладками и много разных мастеров. Кратко рассмотрим, как пользоваться каждым из них.
Мастеры закладки New
Application. Создает готовое Java-приложение с графическим окном-наследником класса java.awt.Frame, строкой статуса, меню и кнопками быстрого доступа. На первом шаге этого мастера появляется диалоговое окно, в котором вводится обязательная информация:
Package - пакет, в который будут добавлены классы приложения;
Class - имя класса приложения;
File - имя файла, в котором будет сохранен класс приложения.
Если отметить флажок Generate header comments, то в начало файла с исходным текстом будут добавлены комментарии с указанием авторства и некоторой другой стандартной информацией. На следующем шаге после нажатия кнопки Next, мастер отображает другую страницу, в которой вы вводите дополнительную информацию для создания окна приложения:
Class - имя класса главного окна приложения;
File - имя файла для сохранения класса главного окна;
Title - заголовок для главного окна приложения.
Несколько помечаемых кнопок отвечают за генерацию исходного текста для дополнительных элементов окна приложения:
Generate menu bar - добавить исходный текст для главного меню приложения;
Generate tool bar - добавить исходный текст для инструментальной области с командными кнопками быстрого доступа;
Generate status bar - добавить исходный текст для строки статуса;
Generate about box - добавить исходный текст для диалоговой панели с информацией о приложении;
Center frame on screen - расположить окно приложения по центру экрана.
Когда ввод информации завершен, нужно нажать на кнопку Finish. В результате JBuilder сгенерирует два файла с исходными текстами на языке Java, которые добавляются в новый проект.
Applet. Этот мастер создает аплет. На первом шаге мастера нужно ввести основную информацию о создаваемом аплете:
Package - пакет, в который будет добавлен класс аплета;
Class - имя класса аплета;
File - имя файла, в котором будет сохранен класс аплета.
Стиль аплета определяется тремя помечаемыми кнопками:
Generate header comments - в начале файла с исходным текстом будут добавлены комментарии с указанием авторства и некоторой другой стандартной информацией;
Can run standalone - создать метод main(), чтобы аплет мог запускаться как самостоятельное приложение без встраивания его в HTML-страницу; это особенно полезно при отладке класса аплета;
Generate standard methods - генерировать методы аплета show(), close() и dispose().
На втором шаге предполагается задание параметров аплета, которыми можно управлять из HTML-страницы. В результате внутри тега APPLET будут сгенерированы теги PARAM и текст для обработки этих параметров аплетом.
Таблица, в которую вы вводите данные, состоит из нескольких полей:
Name - имя параметра, которое будет использоваться в HTML-странице;
Type - тип переменной в аплете, которая ответственна за хранение значения параметра;
Desc - комментарий к параметру;
Variable - имя переменной в аплете, в которую будет записано значение параметра;
Default - значение по умолчанию, которое присваивается переменной параметра.
Звездочкой в таблице параметров обозначаются поля, в которых обязательно должна присутствовать информация. Поле типа - раскрывающийся список, перечисляющий имеющиеся типы переменных.
JBuilder генерирует специальный метод для извлечения значений параметров, переданных аплету Web-страницей
public String getParameter(String key, String def) { return isStandalone ? System.getProperty(key, def) : (getParameter(key) != null ? getParameter(key) : def); }
и фрагмент исходного текста, извлекающий значение параметра или устанавливающий значение параметра по умолчанию:
try { counter = Long.parseLong( this.getParameter("COUNTER", "1000")); } catch (Exception e) { e.printStackTrace(); }
На третьем шаге мастера создания аплета генерируется Web-страница, из которой будет запускаться полученный аплет. Для создания такой страницы нужно отметить кнопку Generate HTML. Далее вам предстоит заполнить следующие поля:
Title - заголовок HTML-страницы;
Name - имя аплета для внутреннего использования тегом APPLET;
Codebase - универсальный адрес ресурса (URL), где располагается аплет, включающий имя сервера, и каталог, откуда аплет загружается на компьютер пользователя;
Width - ширина окна аплета в пикселах;
Height - высота окна аплета в пикселах;
HSpace - определяет свободное пространство в пикселах, которое должно быть оставлено слева и справа от окна аплета;
VSpace - определяет свободное пространство в пикселах, которое должно быть оставлено сверху и снизу от окна аплета;
Align - задает выравнивание аплета внутри HTML-страницы.
Сгенерированный и откомпилированный аплет не выполняет никакой полезной функции, но может быть запущен.
Project. С этим мастером вы уже познакомились, когда мы разбирали процесс создания нового проекта вызовом команды File New Project. И эта команда, и запуск мастера делают одно и то же.
Frame. Для создания окна приложения можно использовать мастер Frame, который создает класс-наследник от библиотечного класса java.awt.Frame. Вам нужно заполнить поля всего одной диалоговой панели:
Package - пакет, в который будет добавлен класс окна;
Class Name- имя создаваемого класса окна;
File Name - имя файла, в котором будет сохранен класс окна.
Экземпляр получаемого класса нигде не создается, и даже не устанавливается заголовок окна. Поэтому, если вы хотите использовать его продуктивно, первое, что нужно сделать, - вызвать из программы конструктор сгенерированного мастером Frame класса окна:
BookFrame window = new BookFrame();
Лучше всего вставить эту строку в метод main(), который запускается виртуальной машиной Java cамым первым:
public static void main(String[] args) { BookFrame window = new BookFrame(); window.setSize(400, 200); window.setVisible(true); }
Две другие строки не менее важны. Первая изменяет размер окна до желаемого - без нее вы увидите только заголовок окна. Вторая строка выводит окно на экран, делая его видимым. Для размещения строки создания заголовка лучше всего подходит первая строка метода jbInit():
private void jbInit() throws Exception { this.setTitle("Book Frame Window"); xYLayout1.setWidth(500); xYLayout1.setHeight(300); this.setLayout(xYLayout1); }
Если вы проделаете все эти манипуляции, то получите ожидаемое - нормальное графическое окно приложения.
Dialog. Мастер Dialog предназначен для создания класса диалоговой панели. Мастер запросит у вас стандартные данные:
Package - пакет, в который будет добавлен класс диалоговой панели;
Class Name - имя создаваемого класса диалоговой панели;
File Name - имя файла, в котором будет сохранен класс диалоговой панели.
Созданная диалоговая панель - это просто пустой класс Java. Как и в случае с окном класса Frame, вызов диалоговой панели нужно производить вручную. Разместите в методе main() строку создания экземпляра класса BookDlg:
BookDlg dialog = new BookDlg(new Frame(), "Диалоговая панель BookDlg",true); dialog.show(); // Показать диалоговую панель на экране
В конструкторе класса нужно обратить особое внимание на его первый параметр. Им должна быть ссылка на окно-родитель диалоговой панели. В реальном приложении мы передали бы корректную ссылку, но в нашем примере для простоты передается ссылка на новое невидимое пустое окно. Второй параметр - это текст заголовка окна панели, а третий говорит о том, что создаваемое диалоговое окно модальное, т. е. выполнение приложения останавливается до тех пор, пока диалоговая панель не будет закрыта. Если установить этот параметр в false, то полученное окно диалоговой панели будет немодальным, т. е. независимым от главного окна приложения, самостоятельным. Таким окном, например, является диалоговая панель поиска из замены текстового процессора Microsoft Word.
Panel. Процесс создания панели практически ничем не отличается от создания диалоговой панели (см. выше Dialog). Заметим лишь, что запускать панель на выполнение как самостоятельный класс не рекомендуется. Использовать панели нужно в качестве визуального компонента для окон и аплетов, а также в качестве базового класса для новых компонентов.
Data Module. Модули данных, которые получаются в результате работы мастера Data Module, используются в качестве контейнеров для компонентов доступа к базам данных. Мы рассмотрим их, рассказывая о создании СУБД с помощью Borland JBuilder. Пока же достаточно знать, что мастер Data Module запрашивает стандартную информацию для записи класса файла:
Package - пакет, в который будет добавлен класс модуля данных;
Class Name - имя создаваемого класса модуля данных;
File Name - имя файла, в котором будет сохранен класс модуля данных.
Class. Каждый раз, когда вам потребуется создать новый класс, воспользуйтесь мастером Class. Он создаст новый класс, запишет его в файл и добавит этот файл в проект. В диалоговой панели, которую открывает мастер Class, есть четыре поля для ввода текста:
Package - пакет, в который будет добавлен новый класс;
Class Name - имя создаваемого класса;
File Name - имя файла, в котором будет сохранен созданный класс;
Extends - полное имя класса, от которого наследуется новый класс (по умолчанию это java.lang.Object).
Некоторые параметры устанавливаются помечаемыми кнопками:
Generate header comments - сгенерировать в начале файла с исходным текстом заголовок, в котором записываются комментарии: информация об авторстве, версии проекта и т. д.;
Public - сделать новый класс public;
Generate parameterless constructor - при включенной опции для класса будет создан пустой конструктор (по умолчанию без параметров);
Generate main function - внутри класса будет сгенерирован метод main(), внутри которого создается экземпляр класса, созданный мастером Class.
Внутри нового класса имеется специальное поле invokedStandalone. Оно не так уж необходимо, потому что не несет никакой функциональной нагрузки. Но его можно использовать в качестве флага, указывающего, что данный класс запущен как самостоятельное приложение. Это демонстрирует вторая строка метода main(). Впрочем, это может понадобиться в тех редких случаях, когда ваш класс должен работать и как класс для других приложений, и как самостоятельное приложение.
HTML. Этот мастер делает простейшую HTML-страницу, добавляя ее к проекту. Он крайне примитивен, поэтому вам придется самостоятельно даже переименовывать полученные файлы страниц HTML. Исходный текст страницы, получаемый в результате работы мастера HTML, минимален:
The Title The text
Мастеры закладки Panels
Tabbed pages. Этот весьма интересный мастер создает страницы с закладками Tabbed pages. Получаемый в результате работы этого мастера файл с исходным текстом на Java выполняет создание панели с тремя закладками по умолчанию и двумя кнопками - OK и Cancel.
Закладки переключаются, но обработчики нажатия кнопок пустые, рассчитанные на то, что вы сами добавите в них требуемый текст. Чтобы увидеть всю эту конструкцию из панелей, закладок и кнопок, вы, как обычно, должны создать окно-контейнер (Frame, Applet, Dialog и т. д.) и добавить в него соответствующий исходный текст:
window.add( new TabbedPages() );
Обратите внимание на то, что эта строка должна быть расположена где-то до появления окна на экране:
window.setVisible(true);
иначе вы обнаружите мерцание при добавлении всех компонентов в окно.
Dual list box. Этот мастер создает исходный текст, реализующий панель с двумя списками, кнопками OK и Cancel и четырьмя кнопками для переноса элементов из одного списка в другой.
Двойной список должен быть добавлен в окно-контейнер, и с ним также нужно начинать работать из окна визуального дизайнера.
Мастер закладки Menus
StandardMenu. Мастер создает класс StandardMenu, в котором производятся все стандартные действия по созданию и инициализации пунктов меню. В результате вы получаете полноценное меню, состоящее из трех пунктов: File, Edit и Help. Они содержат стандартные подпункты, принятые в основных коммерческих приложениях. Чтобы воспользоваться меню, полученным в результате работы мастера StandardMenu, сначала вставьте в исходный текст окна-контейнера, унаследованного от класса java.awt. Frame, строчку, которая добавит меню в окно:
window.setMenuBar(new StandardMenu());
Далее в панели навигации выберите файл StandardMenu.java и откройте визуальный дизайнер. Добавьте нужные пункты меню и удалите ненужные, после чего приступайте к созданию обработчиков событий от меню.
Мастеры закладки Dialogs
About Box. Мастер About Box предоставляет возможность создать панель с информацией о вашем приложении. После запуска этого мастера в вашем проекте появляется новый файл AboutBox.java с исходным текстом класса диалоговой панели About. Отредактируйте его изображение в визуальном дизайнере как вам нравится. Чтобы показать диалоговую панель на экране, воспользуйтесь такой строкой текста:
AboutBox about = new AboutBox(window, "About", true);
Первый параметр конструктора, который ссылается на главное окно программы, не может быть проигнорирован, иначе будет возбуждена исключительная ситуация.
Вызывать диалоговую панель About лучше всего из обработчика пункта меню Help About:
about.show();
Standard Dialog1 и Standard Dialog2. Мастер Standard Dialog1 создает обычную диалоговую панель с единственной панелью и кнопками OK и Cancel, располагающимися в нижней части окна. И напротив, мастер Standard Dialog2 размещает кнопки в правой части окна. Зайдя в визуальный дизайнер, вы можете отредактировать полученную диалоговую панель и обработчики нажатия кнопок. Вызов диалоговой панели уже знакомым вам методом show().
Password Dialog. Как вы, наверное, уже догадались, мастер Password Dialog создает исходный текст диалоговой панели для ввода пароля. Это простая диалоговая панель с единственным отличием: текст, который набирает пользователь, заменяется строкой специальных символов, чтобы посторонние не могли увидеть тот текст, который вы набираете.
Мастер закладки Data Modules
Employee Data. Это единственный мастер, представляющий собой готовый модуль данных. Он предназначен для создания базы данных служащих и настроен на базу данных примера, поставляемого вместе с локальной копией сервера InterBase. Используйте его как шаблон для создания своих собственных модулей данных. Вам понадобится перенастроить его на свою задачу, изменив имена баз данных и некоторые другие параметры. В остальном Employee Data - это готовое промежуточное звено для клиент-серверного приложения.
Мастеры закладки BeansExpress
Мастеры этой закладки составляют набор BeansExpress, с помощью которого возможно быстрое создание компонентов JavaBeans:
New Bean - этот мастер создает новый пустой компонент JavaBeans;
OK Cancel Bean - создает новый компонент JavaBean с кнопками OK, Cancel, Help;
DB Bean - мастер создания простейшего компонента JavaBeans для баз данных с сеткой просмотра записей и навигационными кнопками;
Bean Info - запуск данного мастера вызывает диалоговую панель Paste Snippet с примерным исходным текстом для класса BeanInfo, в котором хранится информация о компоненте JavaBeans;
New Event Bean - этот мастер также вызывает диалоговую панель с заготовкой исходного текста для создания нового компонента-события.
Мастер закладки Other
Example Snippet. Мастер Example Snippet - это диалоговая панель с примером простейшего исходного текста создания и инициализации визуального класса-наследника от BevelPanel. Он примечателен тем, что предоставляет рабочий фрагмент текста, общего практически для всех визуальных классов. Следовательно, создание нового такого класса упрощается до предела. Запустив мастер, вы изменяете исходный текст, как вам требуется, и, нажав кнопку OK, создаете новый файл с новым классом. Внутри полученного исходного текста уже имеются методы инициализации и установки экранных размеров, строки импорта необходимых компонентов и обработчик исключительной ситуации, возникающей в процессе создания экземпляра класса.
Как ознакомиться с иерархией классов
Среда JBuilder предоставляет пользователю инструмент просмотра иерархии выбранных классов. Если вы укажете на файл с определенным классом и нажмете правую кнопку мыши, то возникнет локальное меню, в котором нужно выбрать команду Class Hierarchy. Откроется дополнительная закладка Hierarchy в окне AppBrowser. В навигационной панели будет показана вся иерархия выбранного класса вплоть до предка всех Java-классов java.lang.Object.
Вы можете изучить устройство классов и их предков, что во многих случаях оказывается весьма полезным, а завершив работу с иерархией, закройте закладку Hierarchy. Для этого щелкните на ней правой кнопкой мыши и выберите пункт меню Drop Hierarhy tab.
Завершая занятие, как всегда рекомендую использовать на практике пройденный материал. Следующие занятия потребуют от вас этого умения.