Использование IDE

В

данной главе представлен обзор IDE-среды JBuilder: набора взаимосвязанных инструментов под названием AppBrowser. Здесь также описываются некоторые полезные возможности JBuilder, наподобие автоматизации процесса создания класса.

В следующей главе будет дан общий обзор всех возможностей продукта, не вхо­дящих в AppBrowser, а остальные главные возможности JBuilder, такие как редактор, конструктор пользовательского интерфейса, отладчик и т. д., будут описаны далее в различных главах книги. Некоторые из этих возможностей на самом деле являются частью AppBrowser. В этой главе я хочу дать лишь обзор этих возможностей, а под­робное их исследование привести позднее в других главах.

Если вы еще не знакомы с JBuilder, то эта глава будет для вас одной из самых важ­ных. Она ознакомит с основной структурой этого мощного инструмента програм­мирования.

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

Определение терминов: IDE и AppBrowser

Сейчас уже пора начать разрабатывать словарь терминов для описания среды JBuilder. Данный раздел посвящен выработке этой терминологии. После этого, ис­пользуя наши совместные знания, можно будет описывать различные инструменты, содержащиеся в IDE JBuilder.

Вполне естественно, что первым по списку идет термин IDE. IDE значит "Integrated Development Environment" — "Интегрированная среда разработки". Часть этого термина, "среда разработки", означает, что IDE является программой, с помо­щью которой можно разрабатывать приложения, аплеты, Web-службы и другие ана­логичные инструменты. Часть "интегрированная" означает, что JBuilder имеет встроенный набор средств разработки, самые важные из которых — редактор и от­ладчик.

Однако в составе IDE имеются и другие важные средства, в том числе браузер кода, различные мастера и контекстно-зависимая справочная система. В справоч­ной системе имеется дополнительное расширение Codelnsight, позволяющее на этапе разпаботки без обращения к справке автоматически находить методы и клас­сы JDK или пользовательские объекты.

примечаниеО Codelnsight будет подробно рассказано в главе 7, "Использование редактора". Краткое введение в это средство находится в данной главе, ближе к концу Раздела "Автоматизация: создание класса".

Компания Borland знаменита разработками своих IDE. Правда, раньше она раз­рабатывала IDE в основном для платформы Windows Но поскольку JBuilder полно­стью написан на Java, то его относительно легко перенести на другие платформы. И в самом деле, главный архитектор JBuilder указывает, что такой перенос исключительно прост. Если он готов и работает на одной платформе, то он практически без изменений будет работать и на других платформах. JBuilder является замечательным примером того, что можно сделать на Java, обладая достаточным мастерством и подготовкой.

AppBrowser

Теперь, когда мы разобрались с термином IDE, следующим шагом будет AppBrowser. В официальной документации Borland используются оба термина, и IDE, и AppBrowser. Временами различие в документации между этими двумя эле­ментами пропадает, и, вероятно, группа сбыта использует их взаимозаменяемо.

В данной книге я буду называть IDE весь JBuilder, кроме компилятора, а AppBrowser — набор из четырех взаимосвязанных окон: Панель проекта, панель структуры, панель содержимого и Панель сообщений. Панель содержимого управляет­ся закладками просмотра файла.

Поверх IDE находится меню. Сразу под ним расположен набор пиктограмм, на­зываемых вместе линейкой инструментов. Основные элементы линейки инструмен­тов позволяют открывать и закрывать проекты, сохранять файлы и проекты, и ком­пилировать и выполнять проект.

Под линейкой инструментов находится AppBrowser. Он поделен на пять частей, как показано на рис. 4.1. Название каждой из этих частей нужно знать, поскольку эти названия будут постоянно встречаться на протяжении всей книги.

Область справа, там, где отображается исходный код, HTML-файлы и средства визуального конструирования, называется Панелью содержимого, или иногда Редак­тором. При работе в режиме конструирования здесь же появляется конструктор пользовательского интерфейса.

примечаниеНа протяжении всей книги я буду часто называть область справа от па­нелей проекта и структуры панелью содержимого. В различные моменты времени в ней может находиться редактор, конструктор пользовательского интерфейса, редактор колонок, BeanExpress или многие другие инструменты. Но часто она будет называться просто панелью содержимого.

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

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

меню,линейки
инструментов
,панель 
структуры
панель,
сообщений
,панель
проекта
,авааия5ве1жю!звяжеезез!5^ -iɪaɪi
file gιlΛ seanfi view project run team ,wbards loots zfinduw help —
- 
,* i ⅛ ɪ-i-i ~ 3≈,d ⅛ б ’ «i u β ∕ * jl « Γ
- ∣⅛j i
,закладка
файла
,ai-⅛) imports
й ⅛ framel i ¾ jframe frame 10
l ‘ r⅜, rum rot? cwinrtrwafpsrantaaflnr
л
,содержимого,uh sutilitiess )buildec∖jdkl.3. isbinsjavi
i ftat-*"inrr<κl w>⅛∙'Γ∙h ∙4 √⅜vvr4>-<-ιΛ(⅛∕-f ∖un∙*4 ∙-}^∕3*7cl<∙
и - z'- i
,"c:adocuments end
⅛ ⅛s⅛ ’ j «.»1 ⅜*m4 ’ <и» fc⅝Λ ? ам«“
,закладки
просмотра
файла
,m χ processfinibb
х
,icioseo project uπtttted75 ∣ρx,u⅛⅛

Рис. 4.1. AppBrowser Состоит из нескольких компонентов, названия которых играют
большую роль в этой книге

Панель сообщений расположена внизу IDE, а Закладки просмотра файлов находят­ся между панелью сообщений и панелью содержимого.

примечаниеПанель проекта можно отобразить или скрыть, нажав Ctrl+Alt+P. Панель струк­туры можно отобразить или скрыть, нажав Ctrl+Alt+S. (Иногда эта возможность отображения панели структуры работает не так, как надобно. Если что-то не так, нажмите указанную комбинацию клавиш, и затем в панели проекта выберите дру­гой класс.) Панель сообщений можно отобразить или скрыть, нажав Ctrl+Alt+M. Комбинация Ctrl+Alt+Z отображает или скрывает все три панели одновременно. Эта комбинация очень полезна, когда вы хотите предоставить редактору как можно больше места на экране. Вам, как разработчику, настоятельно рекомендуется запом­нить все эти комбинации клавиш.

Внешний вид AppBrowser можно перенастроить вручную, перемещая мышью границы окон. При этом панель содержимого, панель проекта, панель структуры и панель сообщений могут вообще пропасть. Если вы не можете найти какую-либо часть IDE, то, возможно, она удалена с экрана таким способом. В этом случае, чтобы снова ото­бразить ее, нужно опять поработать мышью. Подведите курсор к границе, щелкните ле­вой кнопкой и тяните. Чтобы не загромождать экран, на многих иллюстрациях в этой Книге IDE сжимается либо так, либо с помощью указанных выше горячих клавиш.

Исследование простого проекта

Сейчас можно открыть сам JBuilder и создать элементарный аплет, чтобы можно было пользоваться IDE. Если вы не помните, как создать аплет, обратитесь к главе 3. Ко да аплет будет создан, IDE будет выглядеть так, как показано на рис. 4.2.

Если гы просматриваете файл с исходным Java-кодом, на панели структуры ото­бражаются список заметок на будущее (todo), классы, операторы импорта, методы и

примечаниеДанные. Пиктограммы, обозначающие тип отображаемых данных, показаны на па­нелях структуры и содержимого.

В определении того, что означает каждая пиктограмма на панели струк­туры и на панели содержимого, очень помогает справочная система JBuiIder. Чтобы найти соответствующие разделы справки, нужно выбрать пункт меню Help ∣ JBuiIder Environment. Перейдите на страницу указателя справочной системы и введите слова "structure рапе", а затем нажмите Enter. Вы увидите список пиктограмм вместе с их опи­саниями.

На рис.’ 4.2 имя файла, наподобие Appletl. java, высвечивается на панели проекта. На панели структуры можно увидеть, что Appletl является именем одного из классов выбранного файла. Класс Appletl содержит методы getAppletlnfo(), getParameter() и т. д. Пока не обязательно понимать, что означают все эти слова, просто отметьте тот факт, что можно увидеть файлы проекта, и можно просматривать классы, объявлен­ные в этих файлах.

Если на панели проекта выбрать HTML-файл, панель структуры пропадет, и на панели содержимого вы сможете увидеть содержимое HTML-файла, в том числе все содержащиеся в нем аплеты. Чтобы сделать это, дважды щелкните на AppIetLhtmI. При этом панель структуры пропадет, и изменятся закладки просмотра файла. На­пример, закладки Source, Design, Bean и т. д. на рис. 4.2 изменятся на View, Source и History, как показано на рис. 4.3. Это происходит потому, что JBuilder приспосабли­вает свой вид к типу данных, отображаемых на панели содержимого.

В JBuilder встроен собственный браузер HTML-кода, внешний вид которого по­казан на рис. 4.4. Если при выбранном HTML-файле щелкнуть на закладке Source под панелью содержимого, то вы увидите исходный текст HTML-файла, а панель структуры появится снова, и на ней будут показаны HTML-дескрипторы

Когда JBuilder выглядит как на рис. 4.4, с помощью панели структуры можно пе­ремещать HTML-код в панели содержимого. Например, если вы щелкнете в панели структуры на дескрипторе Ьг, то в панели содержимого (в редакторе) вы попадете в то место, где находится этот дескриптор.

Fito Edit Search Vtew Protocl Run Team Wttatee Tools W∙nαm" Hmp

— 2T j — ——∙? ** ~ г-, ——_— __ — •——*~ ~—

uvoct java. awe. ∙:
uvort java. awt. event.,; uport j ava. applet. *;
* cftltla: <∕p>
’ <p>bescs,∙iρtιoπ: <,'p>
, <p>copyn⅛⅛t: copyrighc √p>coapany: <∕p>
bautbor ihiascrlbes w
O ⅛ ð ∙ U b S ⅛ ∙ . ⅛ ⅛ k » d 2

ι⅛l ½ I JPunfltle0254PM ∙ Λ ADPletI I

1 untitled25.jρx j ffi fl> Untltted2S

рис. 4.2. среда jbuilderc
загруженным в нее проектом, который содержит простой аплет. обратите внимание, что панель сообщений скрыта
I Appletl. html I Appletljava

J if⅛i Imports *jtypleM ⅜ typ∣et : AppleMO

I * SettypletlnfdO j * getParameter(String key. String de∣ r ⅜ getParameterinfoθ J * InltO ⅜ IsStandaIone > JbinltO

Аналогичная возможность доступна и при просмотре исходного Java-φaιma. Что­бы посмотреть, как это делается, откройте Appletljava.

Когда вы выделите на панели содержимого исходный Java-файл, пощелкайте на элементах в панели структуры. Например, щелкните на getParameterlnfo() в Appletljava. Текст в панели содержимого сдвинется, если необходимо, и вы увидите выделенное определение этого метода, как показано на рис. 4.5.

ɪiθj ×j
a
Если вы хотите найти в панели структуры некоторый элемент кода, поместите в панель структуры курсор и начните вводить имя этого элемента. Появится окно ин­крементного поиска, используемое JBuilder для перемещения выделения на панели структуры на различные элементы.

I JBu⅛fer ? — T:.’,’DO<nn)en»«aftd:

File Edit Search View Project Run Team Wizards Tools Window Help O t5 ‘ % √ ⅛ι #4 J∣ava awt ~"¾

-=≥ ’ ♦! z — if ’ — <f,

6 ∣J 2] 5P — x ⅛⅛ Apple» j X <J Apple» J × ⅛S uπlιt1ed25 j

.Jl untιtled25 jpx jŋ fsetings∕mar0∣e∕jbprojecUuntιtled25∕classes’Aρplet1 .h

* i? ‘Project Source>

+ O untltled25 untιlled√5 Appletl will appear below in a Java enabled browser

рис. 4.3. при просмотре вывода html-файла панель структуры пропадает⅛5 Apple» .Iitml ⅛ Apple» java d⅛ MyCIassjava ⅛5 untιtled25 Mml

I -/tz. tlt4e. lttC KXsajmettz and Sett∙∩gs∕m9rgιe⅛aprθ)ectAjnlltled2SfclasseslApριel1 Jirml j√ιewJsource] Historyf

Closed project: MyFirstProjectjpx

о jbuilder - tr∕d<κurnen⅛ and-ini ×ιfile edit search view project run
d ɪj ≤ ’ ⅛a∣ a > √ *
team wizards iools window help ⅜ ffi x 44 ⅜⅛ ⅞4 a ⅛⅛ 21рис. 4.4. html-браузер. обратите внимание, что панель структуры видна, а html-текст в файле синтаксически проанализирован_♦! s/ ’ -cf - >
tsj cs3» s3 .£) ∙2p untltled25jpx jl untitled25.jpx
, ⅛ r⅛ untitled2ti
i⅛ няяйяяяя1
s⅛∣ apple» java
- ⅛ apple» ⅜ apple» ∣ ∣clttsd>
<head>
<title>
html test page
⅜ mml ⅜ head
⅛ * title
"htmltestpage"
♦ /head ⅜ body
"untitled25Λppletl will appear ..." *br
я ⅜ applet
≠ codebase=""
<∕title>
<∕λead>
<body>
untitled25.applecl will appear <applet
codfcfcase «
■ code - **untιεied∕s.applet
naι∙-fc = eitestappler/'
∕ -ill ι
j*apple» .htrn∣ i :i
view; source {htetoiy ∣

рис. 4.5. панель структуры действует в качестве средства навигации. щелкнув на getparameterinfoo в панели структуры, вы увидите реализацию этого метода,fife ed.t search view proieci run τ⅛am rvɪzards tools wfn-fe* help,untltled25 jpx j* untitled25 ⅛ appletl html & appietijava,//get applet inforjaetion
public sttlng getappletlnfо()
,return "applet information",ffi ⅛⅛∣ imports b- ⅜ appletl
• ∙‰ applet
appletl 0
....... ⅜ getappletlnfoq
• getparameter(stri∩!
,//get parameter info
public string[][] qetparaneterinfо()
,ΓsΓ,appletljava source ,ot,jburfder-cvdocumentsandsettbigs/administrator/,s -,iijetratameterlnfoc'
примечание

примечаниеОказывается, с помощью панели структуры можно не только перемещаться по исходному файлу. Например, на ней можно просматривать заметки на будущее, о чем вы узнаете в главе 7. В панели структуры можно конструировать интерфейс /’ пользователя с помощью специального конструктора. В частности, если щелкнуть на закладке Design, перейти в режим конструирования и поместить на аплет эле­менты управления вроде JButton или JTextField, то с помощью панели структуры можно перемещаться от одного элемента управления к другому.

В силу широкой функциональности панели структуры и использования ее столькими различными средствами JBuiIder, полное обсуждение ее использования Разбросано по многим разделам данной книги, в данной главе и главах 6 и 7.

Панель сообщений

Под панелями проекта, структуры и содержимого находится панель сообщений. В ней появляются сообщения об ошибках и сообщения JBuilder.

В панель сообщений также выводится информация о классе при запуске прило­жения из IDE. Если вы в своем приложении выводите информацию на стандартный вывод, то она отображается именно здесь При компиляции проекта все сгенериро­ванные сообщения об ошибках и предупреждения выводятся в панель сообщений. Когда вы будете отлаживать свой проект, в панели сообщений появится интерфейс отладчика. Перечисленные возможности — это еще не все функции панели сообще­ний, в которые также входят управление версиями, тестирование модулей, коррек­тировка связей в коде и другие различные задачи.

примечаниепримечание

и
file j≡<jti search wew project run team
d ^α s'%b⅛⅜j
ii⅛3 z; ’ ⅛"* ζ⅛ *"[⅛<' ⅜
,jbulwer 7 - cizoocumaits ant lsattmgsfmargie⅛projβ<t/ j--b>*' ⅛ у,-∣pi j×r,щей® tool® ⅛∣∣j<w нив
∙4kj⅛m∣∣ava.awt ~ 2⅛k -⅜ "a⅛
,рис. 4.6. £ панели сообщений видно, что jbuilder установлен в каталоге
∖home∖ccalvert∖jb, и что текущей версией jdk является 1.3.1
,¾ )s i⅛: ®untttled2sjpx
ɪl untitled2s.jpx
«project source»
ι⅛ untilled25 s⅜t appletl .html
i <& appletl .java -¾ untltled25.html
’+' .3⅛ imports ⅛ ⅛ appletl
⅛ applet *⅛ applet! o
aetappietlnfoo
* getparameter(string key. string def) getparameterlnfoo
* inlto
1 ¾: jsstanrialnnp. >zj
,iiqport java.awt. event.*; u¾jort java.applet. *;,public class appletl extends applet boolean isstandalone « false;
public string getpагамеter(string ke return isstandalone ? system.get
(getparameter(key) '= mull ?
)
,χι,
appieil.java
,modifled i !ιpθrι,source fpθ¾'an 1 bean ∣ uml j pcic∣ htstory∣'

Как уже упоминалось, можно управлять видимостью панели сообщений, нажимая Ctrl+Alt+M. Я еще раз предлагаю запомнить это сочетание клавиш. Для управ­ления видимостью панели сообщений можно пользоваться и пиктограммой на линейке инструментов JBuiIder. Пользователи более старых версий могут выгрузить из http: //homepages. borland. com∕bstone/index. htmɪ программу, позволяющую добавить такую же пиктограмму в вашу линейку инструментов. Упомянутый URL-адрес — это домашняя страница Блэйка Стоуна (Blake Stone), главного архитектора JBuiIder. По­скольку он разработал эту программу, вы можете без опаски добавить ее в свою среду разработки. Данный инструмент разработан с помощью интерфейса JBuiIder OpenTooIs API, Который позволяет строить расширения к JBuiIder, (речь о нем пойдет в главе 32).

На линейке инструментов, расположенной под строкой меню, находится пик­тограмма в виде зеленого треугольника. (На рис. 4.6 эта пиктограмма видна чуть сдвинутой влево под словом Edit.) Если щелкнуть на этом треугольнике, JBuilder скомпилирует и запустит ваш проект. Проделайте это сейчас в отношении создан­ного аплета. Рисунок 4.6 примерно соответствует результату компиляции, показан­ному в IDE. Обратите внимание, что под редактором появилась панель сообщений, содержащая описание того, как JBuilder запустил ваше приложение. В ней показа­ны параметры, передаваемые javaw, в том числе путь класса, версия Borland команды Appietviewer И главный класс проекта.

Для расширения пути класса, возможно, в проект понадобится добавить еще одну библиотеку. Об этом написано в главе 27, в разделе "Установка пути класса: Библиотечные файлы JBuiIder».

Глядя на рис. 4.6, обратите внимание, что виден оператор, использованный для запуска Javaw. Очевидно, что это просто стандартная команда для запуска аплета средствами Sun JDK. Смысл этого в том, что JBuilder не отходит далеко от JDK, ис-

примечание

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

На рис. 4.6 имеется ссылка на класс AppletTestbed компании Borland. Если вы сами наберете в командной строке этот текст, указав appletv±ewer фирмы Sun, а не AppletTestBed, то команда выполнится точно так же, если только вы Находитесь в нужном каталоге.

Закладки просмотра файла

Закладки просмотра файла находятся в нижней части панели содержимого. Если панель сообщений не скрыта, то закладки содержимого будут как раз над ней, как показано на рис. 4.6.

По умолчанию в панели содержимого отображается исходный код. Если щелк­нуть на закладке Design, то становится видимым конструктор пользовательского интерфейса (см. рис. 4.7). В этом режиме вы можете использовать средства визуаль­ного проектирования JBuilder. Обратите внимание, что на рис. 4.7 в панели конст­руктора пользовательского интерфейса помещены элементы JButton, JTextPane и JSIider, а в панели структуры расположены ссылки на эти объекты Конструктор пользовательского интерфейса будет подробно рассмотрен в главе 6. А пока просто запомните, что он существует, и попытайтесь слегка уяснить его функции.

Закладка просмотра файла справа от закладки Design называется Bean. Эта зак­ладка позволяет увидеть атрибуты JavaBean-файла и дает доступ к части JBuilder, на­зываемой BeansExpress. BeanExpress подробно рассматривается в части VII, "JavaBean-компоненты". На рис. 4.8 приведен фрагмент BeansExpress.

C помощью средств этой панели можно модифицировать bean-объект только в JBuilder редакций SE и Enterprise. В этих редакциях продукта можно создать Ьеап — объект, воспользовавшись мастером создания JavaBean (через пункт меню File ∣ New I JavaBean). Затем можно настроить его внешний вид в конструкторе пользовательс­кого интерфейса и изменить его свойства на странице Bean панели содержимого.

Рис. 4.7. Конструктор пользовательского интерфейса находится в панели содержимого, над закладками просмотра файла и справа от панелей структуры и проекта. Инспектор кода находится справа от конструктора

Закладка, следующая после Bean, отображает UML-диаграмму текущих выбран­ных объектов. Закладка UML (сокращение от Unified Modeling Language — Унифи­цированный язык моделирования) отображает диаграммы пакетов и классов и об­легчает визуализацию структуры кода. Это средство уровня Enterprise, не доступное в остальных версиях продукта. Оно рассматривается в главе 31, "Корректировка свя­зей и UML".

За закладкой UML находится закладка Doc. Здесь появляется документация, гене­рируемая с помощью средства Javadoc. Если вы не в курсе, что это значит, не огор­чайтесь. Детальное рассмотрение этой темы находится в главе 21. Просто знайте, что есть возможность получить очень подробную документацию вашего кода с по­мощью утилиты Javadoc, поставляемой в рамках Sun JDK, и JBuilder выполнит этот процесс за вас. В панели Doc будет отображаться документация на файл, открытый

в редакторе.,рис. 4.8. открытие страницы beansexpress. основные функции beansexpress сосредоточены на страницах properties, beaninfo, events и property editors *wwrd⅛ ɪoew vvinflo* help,urtbtt ♦ φ appttttj
⅛ - searidatikj ■ •-*—
ft beanname hopleti j peckape iultmβd25 ɪ superclass: ∣*ra,app∣atΛppttt
,3p untlt∣ed25.∣px ; =⅛ Λ untltled2s i⅛ appletlhtml ≈⅛ applett lava
f□bexΞ2.¾
f is ⅛g imports s⅛∙ ⅜ applett 1 ¾ applet
* applett o j * betappietinfoo •«
■ * gelparameter(strln⅛-
,cenenw,dee⅛r>. 8abn∣t⅜b j dot htttoiyl,jbutlder l∙ documeias and settingvadmtfrirtrtitor/- -

рис. 4.9.
браузер uml
доступен
только в
jbuilder
редакции
enterprise
file edit search mew project run teem ∙v⅝ard* tooie window πwιja
d tsis∙⅛⅛ er <⅛s « ` чае Γ*⅛bi sari ⅝ι p -stf ∙ a - *'-» « & jlmmtljiawclmi

SourceJ 9∙β⅛o∣ Bew; umlJ Doc? нипопМ BuHdeueceeded Bundtraktsecond.

На рис. 4.10 показан результат запуска мастера создания документации Javadoc со всеми значениями по умолчанию, сгенерировавшего Javadoc-документ для фай­лов этого проекта. Если в вашей версии JBuilder есть мастер создания Javadoc, то, скорее всего, вы сможете его успешно запустить, открыв его из меню Wizards и со­гласившись со всеми значениями по умолчанию, щелкнув на кнопке Finish на пер­вой же его странице.

Справа от закладки Doc находится закладка History, очень полезная для управле­ния версиями. Хотя некоторые ее возможности доступны только в редакциях SE и Enterprise, сама страница доступна во всех версиях JBuilder. Страница Contents ото­бражает версии активного в данный момент файла и позволяет упорядочивать их различными способами.

Файлы, сохраненные в окне History, существуют на диске в каталоге Ьак, Создава­емом по умолчанию для каждого разрабатываемого проекта JBuilder. В той части книги, которая посвящена управлению проектом, вы узнаете, как при необходимос­ти изменять этот каталог. А пока вы можете пользоваться этой закладкой для про­смотра версий созданного вами файла.

Рисунок 4.11 слегка вводит в заблуждение, в том смысле, что обычно в окне History отображается не одна, а много резервных копий исходного файла. Эти резер­вные копии JBuilder создает автоматически при сохранении проекта.

C этой темой тесно связан инструмент сравнения файлов (Compare Files), кото­рый можно найти в JBuilder редакциии Enterprise, выбрав пункт меню File. Этот ин­струмент позволяет либо сравнить два файла, расположив их рядом, либо показать объединенный вариант с выделенными различиями. Чтобы понять, как он работает, вы можете воспользоваться только что созданным приложением.

Выберите пункт меню File ∣ Compare Files. Появится диалоговое окно, предлага­ющее выбрать старый файл. Выберите один из файлов из каталога Ьак, Вроде Appletl. java~1~. Теперь вам предлагается выбрать новый файл — выберите Appletl. java.

рис. 4.10. панель doc с частью javadoc-файла для appletljava

Вы увидите оба выбранных файла, расположенные рядом друг с другом. У каждо­го своя полоса прокрутки, и с каждым можно обращаться отдельно. Вы можете выб­рать, будут ли они разделены вертикальной или горизонтальной чертой, и необхо­дима ли синхронизация их движения. Теперь щелкните на закладке Diff View в верх­ней части панели. Вы увидите один файл с выделенными цветом различиями между этими двумя файлами. Это средство может оказаться весьма полезным при сравне­нии различных версий одного файла (см. рис. 4.12).

На рис. 4.12 показаны отличия файлов Appletljava до и после помещения эле­ментов управления, которые можно увидеть на рис. 4.7, отображающем конструктор пользовательского интерфейса. Были помещены элементы JTextPane, JButton и

Rfuilder C./исегз/cbarlic/Src JdVdZuntitledI fi/crc/uniitled WAppted java

File Edit Search View Project Run Team Wizards Joels Window Help

D β"6∙a⅛ feZ*]>’*⅛»∙rj⅞‰^⅜⅛⅛⅛’iɪʒ sa ⅜ ’ ∑fr — о — * *

Рис. 4.11. В верхней части панели History Показано, что существует только одна актуальная копия AppletlJava И одна резервная копия, сохраненная в каталоге Bak

Рис. 4.12. На экране Diff View Показаны различия между двумя файлами

F Rev. I______________ Label

Oate

Author

P k ro*ΛF>k

‘r26∕δi∙ i U5i PMPST

Cħ*nι<? 9

⅛λ~1 ~ ‰o al Backup

Γ∏23∕0211 .40:25 PM P8T

ICharlfeIi

….. ….. ……………………………. λ…………. ,………… . ……………….. _….. . …………….. ‘t…………… j

.∙l,γ⅜.∖⅞..4⅛i.. > Λ……… —λα-.∙ -=⅛ <λ-,∙’ZL ‘ʌ- ‘∙∙ >

⅜ AppIetI j1⅛ BftClassJ © ¾ 4

Revision content

Package untitledlθ;

Isipoit java. awt.*; import java. awt. event.*S Import java. applet.; import javax. swing *;

I . 1 T⅛ 3B⅞s-r⅛ara йгиек *>⅛"*⅛⅛⅛~r.

—1 ‘ ^!4⅛ .

Applet! Java January 26.2002 5:12:51 PM PST

Bul Ocornpleted with 3 errors. Build took 6 seconds.

…» <..~U

I:i

Oi Compαr.. F ite> " \ р<]

Sl 8ource V⅛w % Oflrvisw ]

Private void jbɪnit() throws Exception

-a

JButtonl. setText("jButtonl");

This. setSize (new Dimension (281, 226)) ;

JTextPanel. SetText CjTextPanel") ;

This getContentPane () . add (jTe×tPanel, BorderLayout. CENTER) this. getContentPane (, . add(jButtonl, BorderLayout-NORTH, ; this. getContentPane O. add (i Sliderl. BorderLayout-SOUTH) »

This. a.tCize (new Dimension(400.3uQj) ɪ I

■/Get Aρρl⅞t information

Public String getAppletlnfo ()

(

Return "Applet Information";

I

I ∙’ C⅛t pa raκ≈at « R i n F √>

Public String[] [] getParameterlnfo ()

*J JrifeufTerdIff

OHnromAppien.∣ava~1~to Appletljava 2 (Mftrence blocks found 12 1

JSlider. Часть кода, создающего экземпляры этих объектов, видна на рис. 4.12. Та­ким образом, здесь сравниваются версия Appletljava, содержащая эти элементы уп­равления, и версия без них.

Автоматизация: создание класса

К данному моменту у вас уже должны быть некоторые базовые знания о приме­нении AppBrowser и IDE JBuilder. В конце этой главы я хочу показать, как с помо­щью встроенных средств JBuilder создать класс. Эта задача даст вам представление о том, как компания Borland видит процесс разработки в рамках своих IDE.

Создание класса является лишь одной из многих задач, которые может автома­тизировать JBuilder. Выделяя эту одну возможность, я хочу не только показать, как работает данный конкретный инструмент JBuilder, но и предоставить пример стиля программирования, характерного для JBuilder.

Одна из наиболее глобальных целей данной книги — показать, как применять инструментальные средства JBuilder, а не просто использовать его как “наворочен­ный” редактор. Конечно, класс можно создать и вручную, введя весь его текст с кла­виатуры. Но JBuilder может помочь вам в автоматизации этой задачи. Вы не можете реально полностью использовать JBuilder, если не понимаете, как применять его средства автоматизации процессов, которые вы привыкли выполнять вручную.

Вот перечень части задач, которые могут быть автоматизированы с помощью од­ной или более версий JBuilder:

■ Создание класса.

■ Создание имен переменных или данных.

■ Создание методов чтения и записи данных.

■ Перемещение классов из одного пакета в другой.

■ Глобальное переименование пакета, члена данных или класса.

■ Вставка и форматирование операторов импорта в начале файла.

■ Вставка заглушек для методов в интерфейсе, который необходимо реализо­вать.

■ Генерация Javadoc-документации.

■ Создание инсталляционного пакета приложения

■ Создание обработчиков прерываний.

■ Создание BeanInfo и других средств спецификации JavaBean-компонент

Я пытаюсь показать, что автоматизация процесса создания класса — не изолиро­ванный пример, а скорее иллюстрация организации рабочего процесса в JBuilder. Но все-таки создание классов в JBuilder является одной из фундаментальных задач, которыми необходимо овладеть, если вы хотите понимать дальнейший текст книги. Так что этот пример иллюстрирует не только общий принцип, но и очень полезную конкретную задачу.

Для создания класса войдите в галерею объектов, выбрав пункт меню File ∣ New. На странице General выберите пиктограмму Class и щелкните на кнопке OK. Это приведет к запуску мастера создания класса (Class Wizard).

77

Мастер создания класса позволяет вы­полнить различные задачи, например, выбор имени класса и его предка и изме­нение имени пакета, в котором будет на­ходиться ваш класс. Поскольку вы добав­ляете класс в текущий пакет, то в поле па­кета оставьте значение по умолчанию. Но имя класса измените, в данном случае на MyCIass.

Для выбора базового класса создаваемо­го класса щелкните на кнопке с изображе­нием эллипсиса (т. е троеточия), и в диало­говом окне выбора базового класса выбери­те javax. swing. table-AbstractTableModel, как показано на рис. 4.13. Значения всех оп­ций внизу диалогового окна оставьте по умолчанию (см. рис. 4.14). В частности, проверьте, что отмечен флажок Override Abstract Methods (Переопределить абст­рактные методы). Затем щелкните на кнопке OK.

Browse I searcflI

CJasename; Jiavaxswing JDiaIog

‘ S сот demos

J Г* $ fonts

§ а &> images,]« ⅛f> lava IE ф javax

Ffi accessibility æ φ> naming

I fr⅛ rmi

J æ φ> sound

I E∙∙Cβ> swing

Γ⅛φ> beaninfo S-1®> border it. ∙φ> colorctιooser ffi∙φ event a Alechooser ffi∙ $> plaf a φ table

[ OK I Cantel j Help j

Рис. 4.13. Выбор предка для нового класса в диалоговом окне определения базового класса. Работа в таком диалоговом окне весьма характерна для JBuilder

ПРИМЕЧАНИЕ

В данной книге я довольно часто буду пользоваться термином "кнопка (с изображением) эллипсиса". Все читатели наверняка знают, как она выглядит, но, воз­можно, вы не привыкли называть ее кнопкой эллипсиса. Эллипсис — это символ троеточия:

Соответственно, кнопка эллипсиса — это кнопка, на которой нет никакого текста, кроме символа эллипсиса. Как вы знаете, кнопки подобного типа применяются для обозначения, что щелчок на ней вызовет какое-либо диалоговое окно. Обычно оно предназначено для выбо­Ра из ряда вариантов, например, имен файлов, цветов, текстовых строк и т. д.

BOaes Wizard

-×1

> ∙j A new Javactass

‘—* Fill In the Helds below to settoe package, name, base class, and other options tor toe Java dasswhlch will be created

Class information

∣untitled25 Class name JMyClass

Рис. 4.14. Мастер создания класса помогает определить свойства создаваемого класса

Base class: Jjavax swing tabIeAbstractTabIeModel

!.Options

I

J F Public

J Γ Oeneratemeinmetood P Generateheadercomments

F Genetatedefaultconstruetor

P OvOTde absttact method

примечаниеПо завершении работы в мастере создания класса обратите внимание, что в па­нели содержимого появилась новая закладка с именем MyCIass, что легко заметить на рис. 4.15. Вновь созданный класс виден в окне исходного кода и готов к работе с ним. Он появился на панели проекта в верхней левой части окна JBuilder, а также в панели структуры слева внизу. В панели структуры могут находиться сообщения об ошибках — что с ними делать, будет сказано позже В общем, вид AppBrowser силь­но изменился, чтобы было легче просматривать, понимать и работать с исходным кодом нового класса.

При виде обширных изменений в среде JBuiIder1 произошедших при со­здании класса, я хочу напомнить, что этот инструмент полностью разработан на Java. Весь разбор файлов, редактирование текста, изменение закладок, видоизменение средств Пользовательского интерфейса — в общем, все — сделано на Java.

Следующее, что можно сделать с классом — начать редактировать его и интегри­ровать в свою программу. Обсуждение этого процесса не входит в текущую главу. Но, возможно, вам будет интересно посмотреть на сгенерированный исходный код, приведенный в листинге 4.1. Методы этого класса, которые необходимо реализо­вать, автоматически представлены в виде заглушек. Все это сделано в соответствии с правилами наследования при работе с интерфейсами. Более глубоко наследование будет рассмотрено позднее в данной книге.

qjbuiider 7 - cizdocuments and settings/margie/jbproject/untitied25/wf,⅞fi(e edll search vtew project run team wizards tools window help,tu⅝*,=p untitled25 jpx ffi ⅛m «project source» cb q untltled25 appletl mml - <⅛ appletl java <& myciassjava s untitled25.html,package untitled25;,iιηport j avax. string, table. *;,iɪl ∙'∙∙⅛∕'* 'i∙* '
i
public class kyclass extends absttac
public kyclass() {
)
public int getcolunncount() {
∕**gtodo iepleuent this java:»:
> -s
public object getvalueat(int pari
/**0todo iiapleiaent this java⅞ ;i
}
⅜y
j⅛yc iassjava
,source i design ∣ bean ∣ uml ∣ ooc ∣ history ¾
13 fai errors
f> method does not return a value at line 10 q method does not return a value at line 13 lj, method does not return a value at line 16
β ⅛≥∣todo
в ёй imports
s ⅛ myciass
¾ abstracttablemodel ⅛ myciasso ⅜ betcoiumncounto ⅜- betrowcounto
 ⅜ getval⅜ιeawnt parm1.intparrn2)
,baveo jmooifiea files,

Рис. 4.15. B Проект добавлен вновь созданный класс MyClass, И теперь окна AppBrowser
Содержат информацию об этом новом классе

Листинг 4.1. Методы класса MyCIass, представленные в виде заглушек, объявлены в стандартном интерфейсе с именем TabIeModeI import javax. swing. table.*;

∕**

* <p>Title: <∕p>

* <p>Descriptιon. <∕p>

* <p>Copyright: Copyright (С) 2002 Charlie Calvert<∕p>

* <p>Company: Elvenware (www. eIvenware. com)<Zp>

* @author Charlie Calvert

* Sversion 1.0 */

Public class MyClass extends AbstractTedsleModel

1

Public MyClass ()

{

}

Public int getColumnCount ()

{

∕**Stodo: Реализуйте Этот Абстрактный Метод Javax. swing. table. AbstractTableModel

*Z

)

Public Object getValueAt(int parml, int parm2)

{

∕**Stodo: Реализуйте Этот Абстрактный Метод Javax. swing. table. AbstractTableModel

*/

}

Public int getRowCount()

{

∕**gtodo: Реализуйте Этот Абстрактный Метод Javax. swing. table. AbstractTableModel

*Z

}

Сгенерированный код, представленный в листинге 4.1, не откомпилируется ав­томатически. Дело в том, что все три метода класса должны возвращать значение, но JBuilder не сгенерировал для них операторы возврата. Компилятор Java считает ошибкой, если метод объявлен как возвращающий значение, но не делает этого. Для исправления этой проблемы измените методы так, чтобы каждый из них воз­вращал значение:

Public IntEtColumnCount()

1

∕**θtodo: Реализуйте этот абстрактный метод Javax.Swing.Table.AbstractTableModel *Z

Return O;

Public Object getValueAt(int parml, int parm2)

{

∕**θtodo: Реализуйте Этот Абстрактный Метод Javax. swing. table. AbstractTableModel *Z

Return null;

}

Public int getRowCount()

1

∕**θtodo: Реализуйте Этот Абстрактный Метод J avax. swing. table. AbstractTableModel */

Return O;

}

Если вы немного знакомы с языком Java, вы должны знать, что методы, подоб­ные getColuπmCount (), getValueAt () и getRowCount (), ДОЛЖНЫ Быть объявлены как абстрактные методы или как часть интерфейса, от которого наследован MyClass. В — данном случае все эти три метода являются методами интерфейса. Как просмотреть этот интерфейс, будет рассказано в следующем разделе.

Я сознательно предложил вам создать класс наследником довольно-таки слож­ного класса AbstractTableModel. У меня было для этого две причины:

■ Мы увидели, что JBuilder не просто создает простой потомок класса; он также анализирует этот класс и находит в нем абстрактные методы, которые необхо­димо переопределить.

■ Мы увидели, что средства JBuilder совсем не помогают тем, кто не знаком с Java, как-то "нечестно" создавать приложения. В частности, необходимо иметь кое-какие знания для того, чтобы решить, что делать с такими класса­ми, как этот наследник класса AbstractTableModel. JBuilder не помогает в написании кода, и его средства сможет правильно применять лишь тот, кто достаточно глубоко понимает Java. (Для тех из вас, кто не очень много знает об этом языке, я включил несколько глав по синтаксису Java в часть II, "Язык Java". Многие сложные аспекты языка будут также объясняться при их ис­пользовании.)

Я надеюсь, что после чтения этого раздела все читатели поняли, как создать но­вый класс, используя JBuilder. Те же, кто знает Java глубже, должны уже начать ви­деть, как с помощью средств JBuilder упростить работу с некоторыми средними и усовершенствованными возможностями языка Java.

Краткое введение в Codelnsight

В предыдущем разделе мы узнали, как в JBuilder создать объявление класса. Сге­нерированный класс оказался довольно сложным, отчасти потому, что реализует интерфейс, наследованный от класса-предка. JBuilder помогает справиться с этой сложностью. В частности, можно воспользоваться одним из многих его инструмен­тов, называемым CodeInsight, чтобы найти имя этого интерфейса и увидеть его объявление.

примечаниеНовички в Java и некоторые программисты среднего уровня могут не вполне понимать весь этот разговор об абстрактных методах, интерфейсах и реализаци­ях. Если дело только в этом, то можно особенно не беспокоиться. Более полное объяс­нение этих вопросов будет дано в главе 8. А пока пройдите через предложенный про­цесс и попытайтесь получить общее представление о том, что происходит. Сейчас моя главная задача — показать некоторые инструменты, предоставляемые JBuiIder. Глубокое Понимание пока не требуется.

Рассмотрим, как можно найти информацию об интерфейсе, наследуемом новым классом. Эти принципы показывают, как просматривать описание любого класса или данных, объявленных в вашей программе.

Поместите курсор над словом AbstractTabIeModeI в следующей строке текста, при­веденного в листинге 4.1:

Public Class MyClass Extends AbstractTableModel

Щелкните правой кнопкой мыши и в появившемся контекстном меню выбе­рите пункт Find Definition. Вы автоматически попадете на объявление класса AbstractTabIeModeI. Первая строка этого класса выглядит так:

Public abstract class AbstractTableModel implements TableModel, Serializable

Эта строка определяет, что AbstractTableModel Реализует интерфейс с именем TableModel. Подведите курсор к слову TabIeModeI и щелкните правой кнопкой мыши, чтобы появилось контекстное меню. В этом меню снова выберите пункт Fmd Definition. Вы попадете на объявление интерфейса TabieModel. Теперь вы можете просмотреть объявление интерфейса, задающего часть структуры созданного класса.

Этот прием можно использовать в отношении любой переменной, встречающей­ся в программе. Например, если в вашей программе есть переменная с именем mystring, вы можете щелкнуть на ней правой кнопкой мыши и попасть на объявле­ние именно этого идентификатора Неважно, что элемент объявлен в текущем мето­де как поле текущего класса, или как тип, объявленный в другом исходном файле, или как объявление поля в другом исходном файле — во всех случаях JBuilder ото­бразит требуемое объявление. Даже если нужный исходный файл недоступен, JBuilder все равно попытается восстановить общедоступные объявления этого файла и отобразит их для вас. Это очень мощный инструмент, и я пользуюсь им ежедневно.

Резюме

В данной главе представлен базовый обзор среды JBuilder, называемой AppBrowser. Некоторые его возможности рассматривались более глубоко, другие лишь были слегка затронуты. Большая часть этих возможностей будет рассмотрена более подробно позже в данной книге.

В конце главы был кратко рассмотрен процесс автоматизации создания класса в JBuilder. Цель этого обзора заключалась в том, чтобы продемонстрировать общий принцип разработки в JBuilder. Ведь он создан, чтобы помочь вам автоматизиро­вать множество задач, которые иначе пришлось бы выполнять вручную. Искусство правильного использования JBuilder во многом является искусством изучения этих средств автоматизации и введения в привычку использования их мощи.

Марджи Калверт

Обзор средств JBuiIder

В

данной главе описываются возможности JBuilder, не входящие в AppBrowser, а также некоторые базовые способы конфигурирования вашей системы. Практи­чески все команды, доступные в JBuilder, могут быть выполнены через систему меню. Поэтому обзор системы меню дает хорошее представление обо всех возмож­ностях продукта, не входящих в AppBrowser, в смысле определения, данного в нача­ле предыдущей главы. То есть здесь представлены все возможности продукта, не вхо­дящие в панель проекта, панель структуры, панель содержимого, панель сообщений или закладки просмотра файла.

Я постаралась разбить этот текст на четко очерченные разделы со своими подза­головками. Вы сможете быстро ориентироваться в этих страницах, останавливаясь подробнее на интересных вам разделах.

При написании этой главы я пыталась соблюсти баланс и не описывать очевид­ные моменты, но при этом не пропускать важные вещи. Я считаю читателей данной книги хорошо подготовленными пользователями, и поэтому не буду тратить время на описание использования достаточно понятных возможностей. C другой сторо­ны, мне не хотелось бы пропустить что-нибудь очень полезное для многих читате­лей данной книги.

Стыдно признаться, но о некоторых важных свойствах JBuilder я узнала лишь во время написания этой главы. Не повторяйте мою ошибку и не считайте, что вы мо­жете самостоятельно найти в IDE все важные инструменты. Всю главу можно про­читать минут за 15—20. Если вы не эксперт в JBuilder, вы наверняка найдете не­сколько разделов, описывающих такие инструменты, которые могут сэкономить вам немалое время. Ведь вам не хочется тратить свое время на ручную реализацию того, что может автоматизировать JBuilder.

Разделы в конце главы, описывающие настройку среды JBuilder, должны быть очень интересны большинству читателей. Здесь вы прочтете, как задавать синтак­сис, применяемый JBuilder при автоматической генерации кода, информацию об установке позиций табуляции и возвратов каретки, а также как настроить множе­ство других возможностей редактора и панели содержимого.

Все читатели книги должны обязательно ознакомится с возможностями, о кото­рых рассказывается в следующих разделах главы:

■ "Страница Test", где описывается тестирование программы с помощью инст­

Румента экстремального программирования под названием JUnit. Эта тема более глубоко освещается в отдельной главе.

. ɔ Чв*

Шт

S

,i^NBWj≈rθject⅛s

I⅛.N^θe⅛≤..

JS

I

К

FcSSpβ‘∏⅛

C⅛⅛>

J⅛’ Sropen

1

¾ <⅛snpa, e Ftee

<3 CioeeProjects

43 ⅛ose, Applatl JaMf

CtrteFS

Dostʃd P: ЕрГ Apptett-1TV

*;

Cjo⅛-

< +8Wtt+FA

____________

Bave ProjβcΓ⅛j∏rtro2eJp<

Save ProjeeiAs…

‘ Ц ¾⅛√-Λips⅛i-⅛v⅛

SayeAi…

£|l SbvsAII

CIrI-SnKbA

Peneme ‘AppietHSMf

PaoeLepuL.,

> p⅞nf⅜Y⅜H j⅜M⅛∙^ ______________________

¾⅛⅜,- -⅛ ⅛⅛

∙⅞θftwa≈Mrsr∙ RS

рис. 5.1. меню file содержит много мощных средств, в том числе часто используемую опцию reopen

■ "Меню Search", где описано мощное средство инкрементного поиска.

■ "Настройка среды JBuilder", где описываются опции форматирования кода, в том числе опции, использованные мной при написании кода для данной книги.

■ "Меню Tools", где вы узнаете, как из JBuilder вызвать свой любимый редактор, например, emacs. При вызове редактора открывается текущий исходный файл, и можно сразу же приступать к его редактированию. Изменения в этом файле автоматически попадают в JBuilder. Из этого меню можно вызвать лю­бой инструмент независимых разработчиков; я говорю лишь о редакторах, как о примере того, что можно сделать с помощью этого расширения IDE JBuilder. Например, я часто вызываю из JBuilder редактор системы Dreamweaver.

■ Также стоит заглянуть в краткий раздел "Open Tools API" в конце главы. Это введение в тему, подробно рассматриваемую в отдельной главе.

Меню File

Начнем с нескольких советов об использовании меню File, которое показано на рис. 5.1.

■ Иногда перед открытием нового проекта стоит закрыть текущий проект, если у вас нет веской причины держать одновременно открытыми новый и старый проекты. Чем больше памяти установлено в вашей машине, тем менее важен для вас этот вопрос. Чтобы закрыть проекты, выберите пункт меню File ∣ Close Projects. Выберите в диалоговом окне пункт АН, чтобы закрыть все проекты. Прочитайте также об опции Window ∣ New Browser, рассматриваемой в разде­ле "Меню Window" в конце этой главы.

■ Печатать файлы можно непосредственно из JBuilder (с помощью пункта File ∣ Print), рав­но как и настраивать расположение текста на листе (используя пункт File ∣ Page Layout).

Если у вас JBuilder редакции Enterprise, вы сможете также выводить на печать UML-ди — аграммы и развешивать их над своим столом.

■ Хорошей привычкой будет почаще приме­нять команду File ∣ Save АН. Этот пункт меню минимизирует риск утери данных. На ли­нейке инструментов имеются пиктограммы, которые становятся неактивными, если фай­лы только что сохранены. Если вы не по­мните, сохранили ли вы все свои файлы, просто взгляните на эти пиктограммы.

■ При работе с меню File четко давайте себе отчет, что вы делаете: создаете, открываете, сохраняете или закрываете файл, проект,

Класс или другой объект. Пункт File ∣ Save As сохраняет активный файл из па­нели содержимого. Проект таким способом не сохраняется.

■ При переименовании проекта с помощью пункта меню File ∣ Save Project As соблюдайте осторожность. Я предлагаю использовать вместо этого проводник Windows, диспетчер файлов Konqueror KDE или аналогичный инструмент для перемещения на жестком диске каталога вашего проекта со всеми вло­женными подкаталогами из одного места в другое. После этого JBuilder дол­жен автоматически проделать все остальное. Как уже упоминалось, эти воп­росы будут освещены глубже в части V, "Управление проектами".

Галерея объектов — версии Personal, SE и Enterprise

примечаниеЧтобы увидеть галерею объектов, выберите пункт меню File ∣ New. Галерея объек­тов содержит много очень полезных мастеров. Как правило, если вы собираетесь до­бавить в свой проект объект, содержащий в своей структуре повторяющийся шаб­лонный код, вам следует посмотреть, нет ли в галерее объектов мастера для его со­здания. Ниже следует краткий обзор страниц галереи объектов. Иллюстрации к нему созданы в JBuilder версии Enterprise.

В справочной системе JBuiIder есть полезное описание всех возмож­ностей JBuiIder, доступных из галереи объектов. Выберите пункт меню Help ∣ Help Topics и переключитесь на страницу указателя. Вверху этой страницы имеется поле, с помощью которого можно найти интересующую вас тему. Введите слова "Object Gallery", и JBuiIder отобразит список всех страниц галереи объектов с указанием редак­Ций, в которых доступны различные возможности.

Страница General (Общие)

На этой странице находятся мастера, с помощью которых можно создавать мно­гие из наиболее часто используемых объектов. В редакции Personal здесь вы найдете мастера для приложений и классов. Редакции SE и Enterprise дополнительно содер­жат мастера для создания множества других объектов. Поскольку вы будете пользо­ваться этой страницей при создании нового приложения, объекта Bean или класса, то вы будете часто посещать ее.

рис. 5.2. страница general

Страница Project (Проект)

На этой странице находятся различные опции создания и импортирования про­ектов. Эту страницу вы, по всей видимости, тоже будете посещать достаточно часто, поскольку вы будете создавать проект для практически любого кода, который будете писать. Мастер импорта проекта называется Project for Existing Code и доступен в редакциях SE и Enterprise. Мастера для соединения и импорта проектов из CVS, VSS или ClearCase присутствуют только в версии Enterprise.

Страница Web

На странице Web собраны объекты, так или иначе относящиеся к Internet. Вы уже должны были видеть эту страницу, когда использовали мастер создания аплета. В JBudder редакции Enterprise ярлыки других мастеров на этой странице вызывают мастер запуска работы в Web (Web Start Launcher Wizard) для облегчения создания Web-приложений, сервлетов и страниц JavaServer.

Рис. 5.4. Страница IVeb

Страница XML

Страница XML доступна только в редакции Enteiprise. На ней находятся ярлыки мастеров создания приложений Cocoon и преобразований DTD-отпределний в XML-документы и обратно. Кроме того, здесь находятся ярлыки Databinding, XML — DBMS и Sax Handler.

Рис. 5.5. Страница XML

Страница CORBA

Страница CORBA доступна только в редакции Enterprise и предназначена для разработки распределенных приложений. На ней находятся ярлыки Sample IDL, CORBA Client Interface, CORBA Server Interface, HTML CORBA Client и CORBA Server Application.

Рис. 5.6. Страница COXBA

Страница Build (Сборка)

На этой странице в редакциях SE и Enterprise находятся мастера создания архи­вов (Archive Builder), Javadoc-документации и архивов Native Executable. В главе 21, "Комментарии и Javadoc-документация", содержатся инструкции по использова-

*1Нию мастера создания Javadoc-документации для ваших проектов. Как применять утилиту создания архивов Archive Builder, описано в главе 28, "Инсталляция апле­тов, приложений и исполняемых Java-программ". Мастер создания архивов Native Executable на самом деле создает такие же архивы, что и мастер создания архивов с типом Native Executable. Мастер внешних задач сборки (External Build Task Wizard) доступен только в редакции Enterprise.

(T) Object Gallery

Generali Project) Web] XMl) CORBA fa⅞⅞ Enterprise) Test∣

‘, vif’β ⅛ ‘h.

« , » JOJOl

ArttiNe BuIWer NativeExscutabIe Javador ExtsmalBuIId

IBtiUdor » Task

ʌ .J^»^ ⅜ ⅜⅜,’⅛

Ft

r h 1 * ¾ p —
i
,lt,⅛,, afitel | help |
1 ok i ci 
: - √ ∙ ʤ λ⅛‰√..∙∙-v-*⅛45∣: , ⅞∙ ∖'<- ■ ÷

,страница enterprise,рис. 5.7. страница build,страница enterprise, показанная на рис. 5.8, имеет дело с enterprise javabeans и содержит ярлыки ejb module, ejb module from descriptors, enterprise javabean 1.x, ejb 1 .x entity bean modeler, ejb 2.0 bean designer, ejb test client, ear и jms. они доступны только в jbuilder редакции enterprise.,рис. 5.8. страница enterprise

Страница Test (Тестирование)

Страница Test, показанная на рис. 5.9, присутствует только в редакции Enterprise, однако ниже будет показано, что некоторые ее возможности доступны из любой редакции JBuilder. Эта страница содержит ярлыки мастеров создания тесто-

рис. 5.9. страница test

вых стендов для ваших приложений: Test Case, Test Suite, JDBC Fixture, JNDI Fixture, Comparison Fixture и Custom Fixture.

Страница Test содержит оболочки для средства с открытым исходным кодом JUnit, очень популярного в сообществе экстремального программирования (extreme programming). Это средство будет подробно рассмотрено в части VI, "Тестирование, от­ладка и сопровождение". Поскольку JUnit является инструментом с открытым исход­ным кодом, для его использования не требуется какая-то специальная версия JBuilder. Возможности JBuilder, представленные в галерее объектов, упрощают использование JUnit, но их можно применять и вручную. Этот процесс будет описан в главе 30.

Теперь у вас должно быть общее представление о том, какие средства доступны через галерею объектов. Многие из этих возможностей будут описаны более под­робно в других местах данной книги. Но, ти, доступные только в разделах Enterprise сматриваются.

Меню Search (Поиск)

Меню Search, помимо стандартных средств поиска и замены, содержит еще ряд интересных инструментов. Здесь на­ходятся усовершенствованные средства поиска сразу во многих документах, а также инструменты просмотра классов, доступных вашему приложению.

Поиск в каталоге

с другой стороны, некоторые возможное- галереи объектов, в данной книге не рас-рис. 5.10. диалоговое окно поиска в каталогеСредство поиска в каталоге — это ис­ключительно полезная grep-образная утилита, позволяющая искать заданную строку во многих файлах проекта. Чтобы понять, как она работает, выберите пункт
меню Search ∣ Find in Path. Появится диалоговое окно. Оставьте значение пути поис­ка по умолчанию и наберите текст "java. awt". Результатом поиска этого текста будет отображение файлов вашего проекта, содержащих строку "java. awt". Результат ото­бражается в панели сообщений внизу окна AppBrowser. Я пользуюсь этим средством практически каждый день, а зачастую и много раз на день.

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

Это средство позволяет ввести несколько первых букв слова и найти следующее вхождение этого слова в коде. Например, если вы наберете is, в вашем коде будет найдено первое вхождение слова, начинающегося с букв "is". Если вы далее введете букву t, то JBuilder найдет первое вхождение слова, начинающегося с букв "ist". Средство подобного рода должно быть очень знакомо пользователям редактора emacs. По умолчанию в JBuilder этот инструмент может быть вызван с помощью комбинации клавиш Ctrl+E. Для просмотра всех элементов документа, соответству­ющих введенному вами тексту, нажмите Ctrl+E несколько раз.

Переход к строке

Пункт Go to Line меню Search позволяет найти в редакторе требуемую строку. По умолчанию для вызова этого инструмента используется комбинация клавиш Ctrl+G.

Однако не следует применять этот инструмент для поиска ошибок в коде. Если JBuilder находит в коде синтаксические ошибки, он помещает сообщения о них в панель сообщений. Просто щелкните на соответствующей строке панели сообще­ний, и вы попадете в то место кода, где обнаружена та или иная ошибка.

Поиск классов

j⅛j mate project5 untitled7 j,jρx~ ctrl*fs
ɔ e⅛bu∣,d propct untjtied7Θ.jpx,
Пункт Find Classes позволяет сразу увидеть классы, присутствующие в JDK, или в вашем проекте, или в любом JAR-файле или файле класса, используемом в проек­те. Если в диалоговом окне поиска классов вы выберете какой-либо файл, для кото­рого доступен исходный текст, он автоматически будет отображен в панели содер­жимого. Если исходный текст недоступен,

make "classdiaiogjava" ctrl+shift+f9rebuild "classdiaiogjava"JBuilder обычно выдает основные характеристики класса, показывая все, кроме реализации методов и объявления приватных данных этого класса.

⅛p? s⅛⅛~ .√ m0ξrffl⅛⅛lf:
<⅛⅜ add ftlac ∕ patteeas о new folder.
ferw⅛g½⅛
Комбинацией клавиш для вызова этого средства является Ctrl+— (т. е. Ctrl и “минус”).

л rfiftbst)Меню Project (Проект)

proiect properties^.
⅛ default project properties^
рис. 5.11. меню project содержит возможности, ежедневно используемые большинством разработчиков
Меню Project, показанное на рис. 5.11, позво­ляет управлять проектом и добавлять в него или удалять из него файлы В нем также присутствуют вызовы команд Make (откомпилировать) и Rebuild (перекомпилировать). Команда Rebuild Компи­лирует все файлы проекта, а команда Make Только измененные (т. е. исходные модули, в ко­
торых устарели файлы. class). Обычно чаще используется команда make, как более быстрая. Но иногда, когда проект невозможно заставить правильно работать, может помочь команда rebuild.

Выберите пункт меню Project ∣ Project Properties, в результате чего появится очень важное диалоговое окно свойств проекта, которое играет ключевую роль в управле­нии проектом. Здесь можно задать пути, опции выполнения, отладки и компиля­ции, стиль кода и принять множество других важных решений, касающихся вашего проекта. В то время как диалоговое окно свойств проекта (Project Properties) задает установки текущего проекта, диалоговое окно свойств проекта по умолчанию (Default Project Properties) позволяет принять решения, попадающие в каждый вновь создаваемый проект.

В следующем разделе, рассказывающем о настройке среды JBuilder, описывается большая часть этого диалогового окна. Другие его важные разделы обсуждаются в ча­сти V, "Управление проектами".

Настройка среды JBuiIder

при ivleu ahizleВ основном, я стараюсь следовать общепринятым соглашениям, касающимся программирования на Java. Однако в некоторых моментах я слегка отклоняюсь от нормы. К счастью, в JBuilder есть возможность настройки того, какая информация будет отображаться в диалоговом окне свойств проекта.

Я не считаю, что мой стиль является самым лучшим. Я просто хочу, что­бы вы знали, как я настроила свою среду программирования. Если вы сделаете те же изменения, что и я, то вам будет проще понять мои примеры. Если вам нравятся другие на­стройки, то я надеюсь, что вы не сочтете мои личные предпочтения чересчур отталкива­ющими. В любом случае, мои решения приняты на основе моего понимания того, как пи­Сать максимально понятный и простой для чтения код.

В меню Project выберите пункт Default Project Properties и перейдите на страницу Code Style (Стиль кода), которая показана на рис. 5.12?

Patrs Oenerall RttnI-BuBa 1-⅛⅛WcrtSMal Edltofl ɪl Ser. e ] Braceeexample:

Public void «С®()

Γ∏a Опте F<

T [<? Necane *

P⅛ntHant∣ani 6a⅜ff⅜⅛∙u

E

Ilcl Ж»» F«® 1

Г Jyionytndus adapter pxiv*⅞a void jbɪnta(l I

Рис. 5.12. Конфигурирование JBuilder <L **■»’ —I ,D8Frt J

С помощью страницы Code Style PWWEoo∙ ɪ «•V А4жр«жс <

WefciHIjroftosn Ra-∙ Ratable Rack=⅛A Г Ueegeahstnstanllalet.)

reset j…. -⅛-. j.

J, OK 1 !««el Help |

Страница Code Style поделена на две большие части с названиями Braces (Фигур­ные скобки) и Event Handling (Обработка событий). В разделе Braces я предпочитаю опцию Next Line (На следующей строке), хотя, похоже, большинство программистов на Java работает с опцией End of Line (В конце строки). Если конкретно, то эта опция указывает JBuilder генерировать код такого вида:

Void Foo()

{

}

А вот если вы выберете опцию по умолчанию, код будет выглядеть так:

Void Foo () {

}

примечаниеОба способа правильны Вы можете выбрать тот, который вам больше по душе. Лич­но я считаю, что первый стиль легче читается, но, скорее всего, это вопрос привычки.

Существуют инструменты, называемые форматировщиками исходного кода (source code beautifier), которые могут автоматически форматировать ваш код в любом из вышеприведенных стилей. Я использую форматировщик, встроенный в про­дукт Visual Slick Edit, но вы наверняка сможете найти в Internet кучу бесплатных формати — ровщиков. Некоторые из них встроены в инструмент с открытым кодом JBuiIder Open Tools, который можно добавить в IDE. В данном случае могут оказаться полезными и ин­струменты с открытым исходным кодом, речь о которых идет в главе 31, "Корректировка Связей и UML",.

На странице Code Style я также предпочитаю использовать стандартный (Standard), а не анонимный (Anonymous) адаптер для обработки событий. Мне нра­вится этот вариант, поскольку мне его легче читать, и я считаю, что вам будет проще его понимать.

примечаниеЗдесь не место для обсуждения стандартных и анонимных адаптеров. Эта тема глубоко раскрывается в главе 14, "Обработка событий".

Многим читателям будет интересно узнать, как в редакторе установить позиции табуляции, и как задать, будет ли JBuiIder использовать возвраты каретки и пере­воды строки в стиле Windows, или Unix, или Мае. Ответы на оба эти вопроса вы найдете В начале главы 7, "Использование редактора".

Меню Run (Выполнить)

Команда Run указывает JBuilder, чтобы он скомпилировал проект и запустил его на выполнение. Меню Run содержит много средств отладки, которые подробно описываются в части VI, "Тестирование, отладка и сопровождение".

Меню Team (Команда)

Это меню предоставляет доступ к системам управления версиями, наподобие CVS, непосредственно из JBuilder. C помощью команд этого меню можно коорди­нировать усилия членов команды разработчиков, выполняющих один проект. Дан­ный вопрос более подробно рассматривается в главе 26, "Командная разработка".

Меню Team доступно только в редакции Enteqjrise. Но, опять-таки, CVS является проектом с открытым исходным кодом, и вы можете пользоваться им независимо от того, располагаете ли вы редакцией Enterprise. В этой версии просто легче пользо­ваться CVS. На самом деле, может оказаться, что она реализует наилучший из дос­тупных интерфейсов к CVS.

меню wizards (мастера)
некоторые из элементов меню wizards присут-ствуют и в галерее объектов. все мастера этого меню доступны в редакциях jbuilder se и enterprise. чрез-вычайно полезная утилита создания архивов archive builder обсуждается в частях v и viii книги средство javadoc обсуждается в главе 21, "комментарии и javadoc-документация". перекрытие методов, реали-зация интерфейсов и строки ресурсов обсуждаются в главе 7, "использование редактора". мастер использо-вания модулей данных (use datamodule wizard) под-робно рассматривается в части viii, "базы данных".
• у implement interface f⅛ override methods.
ɪʒ) use datamoduie..
resource strings
,Γ3 archive duilder.. *’
⅛ native executable builder.
javadoc.
external build task
рис. 5.13. меню wizards

Меню Tools (Инструменты)

C помощью меню Tools можно конфигурировать IDE, редактор, библиотеки, па­нель инструментов и палитру компонентов. Все эти инструменты присутствуют в JBuiIder редакции Personal

C помощью опции IDE вы можете:

■ Настроить внешний вид и поведение IDE в стиле Windows, Metal или Motif.

■ Изменить внешний вид и поведение закладок панели содержимого.

■ Изменить цвет сообщений об ошибках.

■ Включать и выключать звуковые эффекты.

■ Конфигурировать выходные данные и поведение Web, XML и UML.

■ Конфигурировать конструктор EJB.

примечаниеПросматривать и в некоторой степени настраивать типы файлов, восприни­маемых редактором.

Редактор JBuiIder распознает множество различных типов файлов, от ис­ходных Java-файлов и XML — и HTML-файлов до графических файлов с типами JPG, GIF и PNG. Он обеспечивает, если это возможно, соответствующее выделение цветом синтак­сиса и показывает изображения известных ему графических форматов. Некоторые типы распознаваемых им файлов вызывают искреннее удивление, например, файлы ис­Ходного кода на C и C++. .

Опции настройки редактора имеют богатые возможности выбора:

■ Можно настроить цветовую схему редактора.

■ Можно выбрать шрифт и размер шрифта для отображения текста в редакторе.

■ Здесь также можно конфигурировать позиции табуляции (возвраты каретки и переводы строки конфигурируются в меню свойств проекта (Project Properties)).

■ Здесь же можно выбрать тип раскладки клавиатуры, который вам больше нра­вится: CUA, emacs, Visual Studio, Brief или две раскладки для программистов на Macintosh.

■ Здесь могут быть сконфигурированы и другие опции, например, настройки поиска, сохранения, "интеллектуальных клавиш". Опции "интеллектуальных клавиш" влияют на способ работы редактора при нажатии клавиш Tab, Home и End. Например, можно задать, будет ли нажатие клавиши Ноте переме­щать курсор в начало строки или к первому символу строки, отличному от пробела. Клавиша End выполняет те же действия в конце строки. "Интеллек­туальная" клавиша Tab перемещает курсор по заранее установленным пози­циям табуляции или до отступа в начале предыдущей непустой строки.

примечаниеВ редакторе есть встроенные шаблоны кода (Code Templates), позволяющие быстро и легко вставить фрагменты кода. Эта возможность описана в главе 7.

Если некоторые опции редактора выглядят для вас слишком уж вычур­ными, придерживайтесь значений по умолчанию. Если поведение редактора раздражает вас, просмотрите опции редактора (Editor Options) на первой странице диалогового окна, доступного через меню Tools ∣ Editor Options. Кроме того, прочитайте в следую­щем разделе информацию по поводу добавления в меню инструментов, созданных не­Зависимыми разработчиками.

Опция Tools I Configure JDK очень важна для всех пользователей JBuilder редак­ции Personal. Здесь можно изменить JDK, который использует JBuilder. Редакция Personal может использовать лишь один JDK, так что если вы хотите вместо JDK 1.3.1 использовать JDK 1.4.0, вам необходимо переключить JDK с помощью диало­гового окна Configure JDK (Конфигурирование JDK), которое показано на рис. 5.14. Это диалоговое окно появляется при выборе пункта меню Tools ∣ Configure JDK.

jeκeews,name:,jjsva 1.31-й24,jotfbeire ρaft∙
' ' " ʌ ''' ~ i< ⅞:
г n**.rdebu.∣v ⅛h reside
,[gmiitiesqbuiideiqdkl .3.1 fdemoqfcajava2duava2demo.∣aι] [gmiitiesqbuiiderqdki.3.1 ijreaibai bnjaij jg jutllitieeobuilderqdki .3.1 oreaityjawsjai] [gmlltlesfjbuiideiqdkl jlflrealbiitjai] [gmlitietyjbullderqdkljdfjreaibfsunrsasignjaij igmlltletyjbuiiderjjdkt .3.1 aibfdtjaij igmiitiesfibuiiderfjdki .3.1aityhtmlconveiter.jai] igmlitiesfjbuliderqdki .3.1 /iltiftooisjarl
( }t ont∣gure jdk <,∙" ⅛⅛l√s. 
; cjproject a quserhome
:ь »1 
j∙ (⅛ java 1.4.0-bs2 ,qjbuiider
рис. 5.14.
диалоговое окно конфигу-рирования jdk
■mow
*г
select directnry
3 23 23'l⅛ - x
droctory:; sji2rel.4.0
⅛aκe,wsaκa
o∣re.τoιy ,,; ⅛3 program files t ∖<laccessories ⅛ л adaotec ⅛ г л common flies 8 ~ i compius applications ⅜ —j dlrectx ⅛ ~'l hewlett-packard ⅛ isj ħp deshjet 940c series ⅛ _j installshleld installation inromnation * _j internet explorer i ejintuit
⅛ sjjava 
' æ - 11ияия ⅝ sjmessenger i sjmicrosoflfrontpage ⅛ „ i micmsnflbrjintnehunafir
ι>β⅛κtoρ
ноте
рис. 5 л5. диалоговое окно выбора каталога
proiecl
⅛βmpiββ
.ɪi

okMet,

Щелкните на кнопке Change справа от поля JDK Home Path (Домашний каталог JDK) и найдите каталог, в котором находится требуемый JDK. В результате откроет­ся диалоговое окно Select Directory (Выбор каталога), показанное на рис. 5.15.

примечаниеПодтвердите свой выбор, щелкнув на кнопке OK, и щелкните на кнопке OK еще раз, чтобы завершить этот процесс. Если вы хотите убедиться, что все правильно, выберите пункт меню Project ∣ Project Properties. В поле JDK должен отображаться выбранный вами JDK.

Вы не сможете переключить JDKf если требуемый JDK не установлен. Новые или старые JDK можно выгрузить из сайта Http://java. sun. com. Как правило, установка JDK является простой инсталляцией "в лоб". Другими словами, процесс уста­новки настолько прост, что вы сможете справиться с ним с помощью собственного лба (ткнув им в клавишу Enter). В файле index. html на инсталляционном компакт-диске JBuiIder Содержатся некоторые замечания по поводу JDK и системного реестра Windows.

В дополнение к основным возможностям, представленным в меню опций редак­тора и IDE (Editor and IDE Options), меню Tools в редакциях Enterprise и SE предос­тавляет средства для просмотра JavaBean-объектов и работы с базами данных. Неко­торые средства, в том числе Enterprise Deployment и Create EJB Client JAR, присут­ствуют только в JBuilder редакции Enterprise. О средствах работы с базами данных будет идти речь в части VIIl, "Базы данных".

Добавление в систему меню JBuiIder инструментов независимых разработчиков

Многие разработчики хотели бы для выполнения некоторых задач пользоваться своим любимым текстовым редактором. Например, вы можете быть хорошо знако­мы с emacs, Kate, Visual Slick Edit или любым другим редактором, и предпочитать выполнять некоторые задачи редактирования именно в этом инструменте.

Чтобы иметь доступ из JBuilder к стороннему редактору или другому инструмен­ту, например, Dreamweaver, выберите пункт меню Tools ∣ Configure Tools. После щел­чка на кнопке Add появится диалоговое окно, показанное на рис. 5.16.

,Γ^. service (tan be startsdfetopped from menu)
» % ■“ . ■- ⅛ ii ,-им
,parameters j,insert macro... ∣ ɪk cancel i help j

Рис. 5.16. Добавление в систему меню JBuilder Инструмента независимого разработчика

В поле Title введите имя добавляемого инструмента, а затем найдите этот инстру­мент с помощью кнопки эллипсиса рядом полем Program

примечаниеСейчас JBuilder уже настроен так, что он будет запускать инструмент независи­мого разработчика. Но в данном случае потребуется сделать нечто большее. Необ­ходимо, чтобы при запуске этого редактора открывался файл, выделенный в JBuilder. Для этого из списка доступных макросов выберите макрос FiIePath.

Если вы начнете пробовать различные доступные вам встроенные мак­росы, то увидите, что JBuiIder отображает в диалоговом окне команды, генерируемые макросами. C помощью этого средства просмотра вы сможете быстро ознакомиться со многими доступными мощными макросами, выполняемыми при запуске инструмента независимого разработчика. Но в данном случае вам нужно воспользоваться макросом FiIePath. Если вы имеете дело с Windows и требуется обработать путь, содержащий Пробелы, заключите макрос в кавычки: "(SFiIePath)".

Щелкните на кнопке OK, чтобы закрыть это диалоговое окно, и затем щелкните на кнопке Close, чтобы закрыть диалоговое окно конфигурирования инструментов. Если вы теперь откроете меню Tools, в нем будет присутствовать вновь добавленный элемент. Если вы выберете этот элемент, откроется указанный ранее редактор. Если вы можете передать этому редактору в качестве параметра имя файла, то редактор должен быть готов редактировать тот файл, который вы только что просматривали в JBuilder.

примечаниеПосле завершения работы со сторонним редактором JBuilder автоматически уч­тет все изменения, выполненные в среде редактора. На практике последняя воз­можность на некоторых платформах может оказаться несколько неустойчивой. В Windows все должно работать отлично, тем не менее, в некоторых дистрибутивах Linux и отдельных JDK я сталкивалась с небольшими проблемами. В подобного рода худших случаях самое простое, что можно сделать — закрыть файл, в котором вы работаете в JBuilder и открыть его снова через меню File ∣ Reopen. Сделанные вами изменения должны присутствовать в файле.

В данной книге есть несколько мест, в которых говорится, что какая-то возможность может не вполне работать на некоторых платформах. В Linux ситуация мо­жет осложниться очень быстро Например, некоторый JDK может не вполне корректно работать с конкретной версией Libc, GNOME или KDE. Если JBuiIder работает с неста­бильным JDK, то может произойти все что угодно. В чем же причина? В JDK? В Libc? В GNOME или KDE? А может, в JBuiIder? Зачастую очень трудно решить, кто прав, а кто ви­новат, и даже вообще можно ли кого-то в чем-то обвинять. По-моему, работа JBuiIder

Под Windows очень стабильна, особенно в его базовых возможностях, присутствующих в редакциях Personal и SE. В Linux я сталкивалась с проблемами применения Codelnsight под KDE2.0. Тем не менее, под KDE 3.0 Codelnsight работал великолепно. Если у вас возникнут проблемы подобного рода, я предлагаю вам зайти на форумы http:// Www. borland. com/forums, задать вопросы и поделиться собственным опытом. Доволь­но часто бывает так, что кто-то уже встречался с вашей проблемой и сможет рассказать вам решение или способ обхода проблемы. Стоит отметить, что JBuiIder под Linux рабо­тает все лучше и лучше с каждым выпуском новой версии JBuiIder, Libc, ядра Linux, GNOME и KDE. Как уже было сказано, сейчас я могу без проблем выполнять серьезную Работу в JBuiIder под Linux.

Меню Window (Окно)

Я пользуюсь меню Window, в основном, для переключения между различными проектами — если их у меня одновременно запущено несколько. Это также быст­рый и легкий способ переключаться между файлами в проекте без использования мыши.

Команда New Browser (Новый браузер) имитирует запуск еще одного JBuilder. Насколько я знаю, открытие нового браузера не требует столько же памяти, сколько нужно для запуска второго экземпляра JBuilder. Естественно, второй AppBrowser от­крывается очень быстро, в то время как запуск второго экземпляра JBuilder занима­ет значительное время. Если браузер открыт с помощью команды New Browser, то пункт меню File ∣ Exit закрывает все связанные экземпляры JBuilder. Это удобно для тех, кому необходимо работать с несколькими проектами одновременно или иметь два вида одного и того же проекта.

Обратите внимание, что с помощью элементов меню Window можно упорядочи­вать, разделять, минимизировать и восстанавливать окна браузеров.

Меню Help (Справка)

В JBuilder встроена великолепная справочная система, предоставляющая под­робную информацию о любой части IDE JBuilder и многих частях JDK. В меню имеются полезные темы наподобие окружения JBuilder, обучающие уроки и, в част­ности, справочники по языку Java, Swing и DataExpress. Если у вас возник вопрос по JBuilder, относящийся к любой теме этого меню, вы сможете увидеть соответствую­щую информацию, выполнив щелчок на этой теме.

Для более специальных вопросов выберите пункт меню Help ∣ Help Topics. Затем в диалоговом окне JBuilder щелкните на закладке Index и введите имя интересующей вас темы, например, editor. Вы увидите список тем, содержащих слово "editor". Вы­берите ту из них, которая вас интересует, и дважды щелкните на ней.

Open Tools API

Теперь, когда вы знаете, что можно делать с помощью IDE JBuilder, у вас все рав­но может быть список дополнительных возможностей, которые вы хотели бы вклю­чить в него. Инструмент Open Tools API как раз и предназначен для встраивания расширений в JBuilder. Это исключительно мощное c/едство, однако оно очень сложно, чтобы о нем можно было рассказать в этой главе. Оно обсуждается в главе 32, "Введение в Open Tools API".

Вне всяких сомнений, стоит ознакомиться с миром бесплатных, условно-бес­платных и коммерческих расширений для JBuilder, разработанных с помощью Open Tools API. Некоторые из этих расширений, например, AntRunner, уже давно стали частью моей ежедневной программистской практики. (Начиная с JBuilder 7, Ant встроен в редакцию Enterprise. Тем не менее, AntRunner полезен и пользователям редакций SE и Personal.)

примечаниеКак вы позже узнаете, добавление OpenTool в JBuilder практически сводится к копированию JAR-файла в соответствующий каталог и перезапуску JBuilder. Чтобы найти эти расширения, прочитайте соответствующие разделы книги, просмотрите онлайновые материалы, связанные с книгой, поищите JBuilder Open Tools с помо­щью Google, просмотрите репозиторий инструментов подобного рода на Http:// Codecentrai.Boriand.Com, А также добавочный диск, сопровождающий некоторые версии JBuilder.

Добавочный диск — это второй компакт-диск, входящий в состав ко­Робки с JBuiIder. Он содержит материалы от независимых разработчиков.

Резюме

В данной главе были кратко очерчены основные возможности IDE-среды JBuilder. Некоторые возможности были исследованы подробно, другие были лишь кратко упомянуты. Многие разделы этой главы просто отсылали вас к другим главам книги, содержащим более детальное описание

Основная цель данной главы — показать, что доступно вам как разработчику. JBuilder — это очень большой инструмент, и вполне возможно работать с ним года­ми, даже не подозревая о существовании какой-то его возможности, которая, тем не менее, может сэкономить немало часов рабочего времени. Надеюсь, что обзор, при­веденный в данной главе, ознакомил вас хотя бы с наиболее важными из этих воз­можностей.

Марджи и Чарли Калверт

Глава б

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *