| <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" |
| "http://www.w3.org/TR/html4/loose.dtd"> |
| |
| <html> |
| <head> |
| <meta http-equiv="content-type" content="text/html; charset=UTF-8"> |
| <!-- -*- xhtml -*- --> |
| <title>Руководство по началу работы с подключаемыми модулями для платформы NetBeans 6.0 и 6.1</title> |
| <meta name="AUDIENCE" content="NBUSER"> |
| <meta name="TYPE" content="ARTICLE"> |
| <meta name="EXPIRES" content="N"> |
| <meta name="developer" content="gwielenga@netbeans.org"> |
| <meta name="indexed" content="y"> |
| |
| <meta name="description" |
| content="A guide describing how to implement a Google Toolbar Module into NetBeans IDE."> |
| <link rel="stylesheet" type="text/css" href="../../../netbeans.css"> |
| </head> |
| |
| <!-- Copyright (c) 2005 Sun Microsystems, Inc. All rights reserved. --> |
| <!-- Use is subject to license terms. --> |
| |
| <body> |
| <h1><a name="top"></a>Начало работы с подключаемыми модулями в среде NetBeans</h1> |
| |
| <p>Добро пожаловать в руководство по разработке подключаемых модулей в среде NetBeans! |
| |
| </p><p>В этом документе представлена простая процедура быстрого знакомства с процессом разработки подключаемого модуля NetBeans на примере создания новой панели инструментов в среде IDE NetBeans. После прочтения этого руководства читатель получит общее представление о создании, сборке и установке подключаемых модулей в среде IDE NetBeans. |
| |
| </p><p>После изучения этого руководства можно перейти к другой <a href="https://netbeans.org/kb/trails/platform.html"> учебной карте по платформе NetBeans</a>. Учебная карта содержит подробные руководства, в которых рассматривается широкий спектр интерфейсов API среды NetBeans для разнообразных приложений. Если процедура создания простейшего приложения "Hello World" читателю уже знакома, можно пропустить этот документ и перейти сразу к учебной карте. |
| |
| </p><p><b>Содержание</b></p> |
| |
| <img src="../../images/articles/60/netbeans-stamp60-61.gif" class="stamp" width="114" height="114" alt="Содержимое на этой странице относится к среде IDE NetBeans 6.1" title="Содержимое на этой странице относится к среде IDE NetBeans 6.1"> </p> |
| <ul class="toc"> |
| <li><a href="#creating-module-project">Создание проекта модуля</a></li> |
| <li><a href="#coding-module">Написание кода модуля</a> |
| <ul> |
| <li><a href="#creating-action">Создание действия</a></li> |
| <li><a href="#creating-panel">Создание формы панели JPanel</a></li> |
| <li><a href="#resolving-errors">Поиск и устранение ошибок</a></li> |
| <li><a href="#overriding">Переопределение getToolbarPresenter()</a></li> |
| </ul> |
| </li> |
| <li><a href="#compiling">Компиляция, установка и использование модуля</a> |
| </li><li><a href="#sharing-plugin">Разрешение совместного использования модуля</a></li> |
| </ul> |
| |
| <p><b>Для работы с этим руководством требуется программное обеспечение и ресурсы, перечисленные в следующей таблице. </b></p> |
| |
| <table> |
| <tbody> |
| <tr> |
| <th class="tblheader" scope="col">Программное обеспечение или ресурс</th> |
| <th class="tblheader" scope="col">Требуемая версия</th> |
| </tr> |
| <tr> |
| <td class="tbltd1">Среда IDE NetBeans</td> |
| <td class="tbltd1">версия <a href="http://download.netbeans.org/netbeans/6.1/final/">версия 6.1</a> или<br> |
| версия 6.0</td> |
| </tr> |
| <tr> |
| <td class="tbltd1">Комплект для разработчика на языке Java (JDK)</td> |
| <td class="tbltd1"><a href="http://java.sun.com/javase/downloads/index.jsp">версия 6</a> или<br> |
| версия 5</td> |
| </tr> |
| </tbody> |
| </table> |
| |
| <p class="tips">Дополнительно, в целях поиска и устранения ошибок, можно <a href="https://netbeans.org/files/documents/4/570/GoogleToolbar.zip">загрузить готовые примеры</a> и изучить исходный код. |
| |
| </p><p>Панель инструментов, создаваемая в этом руководстве, выглядит следующим образом:</p> |
| |
| <img src="../../images/tutorials/google/60/googlebar-2.png" border="1" |
| alt="Панель инструментов Google c примером строки поиска"> |
| |
| <p></p><p>При нажатии пользователем клавиши "Enter" на панели инструментов открывается обозреватель по умолчанию среды IDE. Текст из поля на панели инструментов будет передан в поисковую систему Google, а результаты будут представлены в открытом обозревателе. Для создания панели инструментов будут использоваться <a href="https://netbeans.org/download/dev/javadoc/">интерфейсы API среды NetBeans</a>, позволяющие расширить возможности среды IDE. В частности, будет создано действие, вызываемое кнопкой на панели инструментов. Затем будет создана панель JPanel платформы Swing, содержащая элементы графического интерфейса <tt>JLabel</tt> и <tt>JTextField</tt>. После этого мы переопределим метод <tt><a href="http://www.netbeans.org/download/dev/javadoc/org-openide-util/org/openide/util/actions/CallableSystemAction.html#getToolbarPresenter()">getToolbarPresenter()</a></tt> действия так, чтобы панель JPanel отображалась на панели инструментов, а не как кнопка. |
| |
| <!-- ===================================================================================== --> |
| |
| <br> |
| </p><h2 class="tutorial"><a name="creating-module-project"></a>Создание проекта модуля</h2> |
| |
| <p>При разработке модуля необходимо убедиться в правильной настройке структуры проекта. В среде IDE NetBeans предусмотрен мастер создания проектов модулей, при помощи которого можно определить все базовые файлы, необходимые для модуля.</p> |
| |
| <ol> |
| <li>Выберите "File > New Project" (Ctrl+Shift+N). В области "Categories" выберите "NetBeans Modules". В области "Projects" выберите "Module". Нажмите кнопку "Next".</li> |
| <li>На экране "Name and Location" введите <tt>GoogleToolbar</tt> в поле "Project Name". В поле "Project Location" укажите любой каталог на компьютере. Установите переключатель "Standalone Module" и флажок "Set as Main Project". Нажмите кнопку "Next".</li> |
| <li>На экране "Basic Module Configuration" замените <tt>yourorghere</tt> в поле "Code Name Base" на <tt>myorg</tt>; чтобы основа названия кода выглядела как <tt>org.myorg.googletoolbar</tt>. |
| </li><li>Укажите местоположение пакета локализации и файла layer.xml, которые должны находиться в пакете с именем <tt>org/myorg/googletoolbar</tt>. Например, введите в поле "XML layer" строку <tt>org/myorg/googletoolbar/layer.xml</tt>. Нажмите кнопку "Finish".</li> |
| </ol> |
| |
| <p>Средой IDE будет создан проект <tt>GoogleToolbar</tt>. Проект содержит все исходные файлы и метаданные проекта, например, сценарий сборки Ant. Проект открывается в среде IDE. Логическую структуру проекта можно просмотреть в окне "Projects" (Ctrl+1), а структуру файлов – в окне "Files" (Ctrl+2). |
| |
| <br> |
| |
| |
| <!-- ===================================================================================== --> |
| |
| <br> |
| </p><h2><a name="coding-module"></a>Написание кода модуля</h2> |
| |
| <p>Для создания кода модуля необходимо выполнить следующее:</p> |
| |
| <ul> |
| <li><a href="#creating-action">Создание действия</a></li> |
| <li><a href="#creating-panel">Создание панели JPanel</a></li> |
| <li><a href="#resolving-errors">Поиск и устранение ошибок</a></li> |
| <li><a href="#overriding">Переопределение getToolbarPresenter()</a></li> |
| </ul> |
| |
| <div class="indent"> |
| <h3 class="tutorial"><a name="creating-action"></a>Создание действия</h3> |
| |
| <ol> |
| <li>Щелкните правой кнопкой мыши узел проекта и выберите "New > Action" (если пункт "Action" отсутствует, выберите "Other", а затем в мастере создания файлов в поле "Categories" выберите "NetBeans Module Development"). Нажмите кнопку "Next".</li> |
| <li>На экране "Action Type" не изменяйте значения по умолчанию, в соответствии с которыми средой IDE будет создано действие, обеспечиваемое подклассом <tt>CallableSystemAction</tt>, как показано ниже: |
| |
| <br><br> |
| <img boder="1" src="../../images/tutorials/google/60/action-wiz-1.png" alt="Мастер создания действий: первый экран"> |
| |
| <br><br> |
| Нажмите кнопку "Next". |
| |
| </li><li>На экране "GUI Registration" выберите "Edit" в раскрывающемся списке "Category". Раскрывающийся список "Category" позволяет указать место отображения действия в редакторе сочетаний клавиш в среде IDE. Затем снимите флажок "Global Menu Item" и установите флажок "Global Toolbar Button". В раскрывающемся списке "Toolbar" выберите "Edit", а затем в раскрывающемся списке "Position" выберите "Find... - HERE", как показано ниже: |
| |
| <br><br> |
| <a href="../../images/tutorials/google/60/action-wiz-2.png" title=" Щелкните для УВЕЛИЧЕНИЯ "> <img src="../../images/tutorials/google/60/action-wiz-2-small.png" border="1" |
| alt="Мастер создания действий: второй экран"></a> |
| |
| <br><br> |
| Нажмите кнопку "Next". |
| |
| </li><li><p>На экране "Name and Location" введите <tt>GoogleAction</tt> в поле "Class Name" и <tt>Google Action</tt> в поле "Display Name". Найдите значок размером 16x16 пикселей. В принципе, этот значок использоваться не будет, поскольку вместо него будет отображаться форма панели JPanel, которая будет создана в следующем разделе. Тем не менее, мастер создания действий требует выбора какого-либо значка. При этом значок может иметь любой размер, так как фактически он использоваться не будет. Нажмите кнопку "Finish".</p> |
| <p><b class="notes">Примечание:</b> К пакету <tt>org.myorg.googletoolbar</tt> в окне "Projects" добавляется <tt>GoogleAction.java</tt>.</p></li> |
| </ol> |
| |
| <h3 class="tutorial"><a name="creating-panel"></a>Создание панели JPanel</h3> |
| |
| <ol> |
| <li>Щелкните правой кнопкой мыши узел проекта и выберите "New > Other". В области "Categories" выберите "Java GUI Forms". В области "Projects" выберите "JPanel Form". Нажмите кнопку "Next".</li> |
| <li>На экране "Name and Location" введите <tt>GooglePanel</tt> в поле "Class Name" и выберите пакет из раскрывающегося списка. Нажмите кнопку "Finish". <tt>GooglePanel.java</tt> добавляется к пакету и открывается в режиме проектирования в редакторе исходного кода.</li> |
| <li>Переместите курсор в правый нижний угол панели JPanel, выделите панель и переместите курсор для изменения размера панели, ширина и длина которой должны напоминать панель инструментов (см. ниже). |
| |
| <br><br> |
| <img src="../../images/tutorials/google/60/jpanel-2.png" border="1" alt="Панель JPanel после изменения размеров"></li> |
| |
| <li>Перетащите элементы "JTextField" и "JLabel" из окна "Palette" (Ctrl+Shift+8) непосредственно на панель JPanel, а затем измените размеры этого элемента и элементов так, чтобы они соответствовали друг другу. Наконец, щелкните элемент "JLabel" и измените его текст <tt>Google:</tt>, затем удалите текст по умолчанию, установленный в элементе "JTextField". Теперь панель JPanel должна выглядеть следующим образом: |
| |
| <br><br> |
| <img src="../../images/tutorials/google/60/jpanel-3.png" border="1" |
| alt="Панель JPanel с элементами "JTextField" и "JLabel""></li> |
| |
| <li>Проверьте, что открыто окно "Property Inspector" (выберите "Window > Navigating > Inspector"), затем щелкните правой кнопкой мыши элемент "JTextField" и выберите "Events > Key > keyTyped". После этого метод в исходном коде <tt>GooglePanel.java</tt> будет создан метод <tt>jTextField1KeyTyped()</tt>, отображаемый в редакторе исходного кода, как показано ниже: |
| |
| <br><br> |
| <img src="../../images/tutorials/google/60/jpanel-4.png" border="1" |
| alt="Созданный метод JTextField1KeyTyped() в исходном коде"></li> |
| |
| <li>В окне "Source" редактора исходного кода c <tt>GooglePanel.java</tt> заполните метод <tt>jTextField1KeyTyped()</tt> следующим образом (добавляемый текст представлен <strong>полужирным шрифтом</strong>): |
| |
| <pre class="examplecode"> |
| private void jTextField1KeyTyped(java.awt.event.KeyEvent evt) { |
| <strong>int i = evt.getKeyChar(); |
| if (i==10){//The ENTER KEY |
| // Вывод на экран URL-адреса Google. |
| try{ |
| URLDisplayer.getDefault().showURL |
| (new URL("http://www.google.com/search?hl=en&q="+jTextField1.getText()+"&btnG=Google+Search")); |
| } catch (Exception eee){ |
| return;//Все не так уж сложно! |
| } |
| }</strong> |
| }</pre> |
| </li> |
| </ol> |
| |
| <p>При необходимости щелкните правой кнопкой мыши в редакторе исходного кода и выберите "Format" (Alt+Shift+F).</p> |
| |
| <h3 class="tutorial"><a name="resolving-errors"></a>Поиск и устранение ошибок</h3> |
| |
| <p>Обратите внимание, что несколько строк кода подчеркнуты красным, что указывает на ошибки. Это вызвано тем, что требуемые пакеты еще не были импортированы. Установите курсор на значок лампочки в столбце, расположенном непосредственно слева от красной линии <tt>URLDisplayer</tt>. Появится всплывающая подсказка с пояснением причины ошибки: |
| |
| <br><br> |
| <img src="../../images/tutorials/google/60/tooltip.png" border="1" |
| alt="Всплывающая подсказка с описанием ошибки в URLDisplayer в редакторе исходного кода"></p> |
| |
| <p>Для устранения ошибки необходимо создать класс <tt>HtmlBrowser.URLDisplayer</tt>, содержащийся в доступном из проекта пакете <a href="https://netbeans.org/download/dev/javadoc/org-openide-awt/org/openide/awt/package-summary.html"> <tt>org.openide.awt</tt></a>. Для этого выполните следующие действия:</p> |
| |
| <ol> |
| <li>Щелкните правой кнопкой мыши узел проекта в окне "Projects" и выберите "Properties". В появившемся диалоговом окне "Project Properties" выберите "Libraries" в области "Categories". Затем нажмите кнопку "Add" в разделе "Module Dependencies". Появится диалоговое окно "Add Module Dependency".</li> |
| <li>В текстовом поле "Filter" в верхней части диалогового окна "Add Module Dependency" постепенно вводите название <tt>URLDisplayer</tt>, обращая при этом внимание на то, как сокращается список возвращаемых модулей, до тех пор, пока в нем не останется только <a href="https://netbeans.org/download/dev/javadoc/org-openide-awt/overview-summary.html">UI Utilities API</a>: |
| |
| <br><br> |
| <img src="../../images/tutorials/google/60/add-module-dependency.png" |
| alt="Диалоговое окно "Add Module Dependency" с выбором "UI Utilities API""> |
| |
| <br><br> |
| Нажмите кнопку "OK" и затем еще раз нажмите кнопку "OK" для закрытия диалогового окна "Project Properties".</li> |
| <li>Щелкните правой кнопкой мыши в редакторе исходного кода и выберите "Fix Imports" (Alt+Shift+F). В появившемся диалоговом окне "Fix All Imports" будут представлены предполагаемые пути к нераспознанным классам: |
| |
| <br><br> |
| <img src="../../images/tutorials/google/60/fix-all-imports.png" |
| alt="Диалоговое окно "Fix All Imports" с предполагаемыми путями к нераспознанным классам"> |
| |
| <br><br> |
| Нажмите кнопку "OK". Средой IDE будут созданы следующие операторы импорта для <tt>GooglePanel.java</tt>: |
| |
| <pre> |
| import java.net.URL; |
| import org.openide.awt.HtmlBrowser.URLDisplayer; |
| </pre> |
| |
| Также обратите внимание на то, что в редакторе исходного кода исчезли все указания на наличие ошибок.</li> |
| </ol> |
| |
| <h3 class="tutorial"><a name="overriding"></a>Переопределение getToolbarPresenter()</h3> |
| |
| <p>Поскольку только что созданная панель JPanel фактически будет использоваться для отображения панели инструментов Google, необходимо переопределить метод <a href="https://netbeans.org/download/dev/javadoc/org-openide-util/org/openide/util/actions/CallableSystemAction.html#getToolbarPresenter()"> <tt>getToolbarPresenter()</tt></a> в классе действия. Для этого в коде <tt>GoogleAction.java</tt> выполните следующее:</p> |
| |
| <ol> |
| <li>Под объявлением класса объявите и установите следующую переменную: |
| <pre class="examplecode"> |
| GooglePanel retValue = new GooglePanel(); |
| </pre></li> |
| <li>Определите метод <tt>getToolbarPresenter()</tt> для возврата переменной <tt>retValue</tt>: |
| |
| <pre class="examplecode"> |
| public java.awt.Component getToolbarPresenter() { |
| return retValue; |
| } |
| </pre> |
| </li> |
| </ol> |
| </div> |
| |
| <!-- ======================================================================================= --> |
| |
| <br> |
| <h2><a name="compiling"></a>Компиляция, установка и использование модуля</h2> |
| |
| <p>Для компиляции и установки модуля в среде IDE NetBeans используется сценарий сборки Ant. Сценарий сборки был создан автоматически при создании проекта модуля в разделе <a href="#creating-module-project">Создание проекта модуля</a> выше. Поскольку модуль теперь готов к компиляции и добавлению в среду IDE, можно воспользоваться поддержкой Ant в среде IDE NetBeans для выполнения этих действий:</p> |
| |
| <ol> |
| <li>В окне "Projects" щелкните правой кнопкой мыши узел проекта <tt>GoogleToolbar</tt> и выберите "Install/Reload" в поле "Target Platform". Модуль компонуется и устанавливается в новом экземпляре среды IDE (целевой платформе). При стандартной настройке целевая платформа по умолчанию соответствует версии текущей среды IDE. После открытия целевой платформы новый модуль можно протестировать.</li> |
| <li>После успешной установки модуль добавляет новую кнопку на панель инструментов "Edit" в среде IDE. |
| |
| <p><b class="notes">Примечание:</b> Эта кнопка панели инструментов не отображается в виде значка. Вместо этого на экран выводится панель JPanel, созданная ранее в разделе <a href="#creating-panel">Создание панели JРanel</a>: |
| |
| <br><br> |
| <img src="../../images/tutorials/google/60/googlebar.png" border="1" |
| alt="Панель инструментов Google, встроена в панель инструментов "Edit" среды IDE"></p></li> |
| |
| <li>Введите строку поиска в текстовом поле: |
| |
| <br><br> |
| <img src="../../images/tutorials/google/60/googlebar-2.png" border="1" |
| alt="Панель инструментов Google c примером строки поиска"></li> |
| |
| <li>Нажмите "Enter". Запускается обозреватель IDE по умолчанию. URL-адрес Google и строка поиска передаются в обозреватель, и осуществляется поиск. После получения результатов поиска они будут представлены в обозревателе.</li> |
| </ol> |
| |
| <br> |
| <h2 class="tutorial"><a name="sharing-plugin"></a>Разрешение совместного использования модуля</h2> |
| |
| <p>После создания работоспособного модуля, расширяющего возможности среды IDE, его можно предоставить и другим разработчикам. В среде IDE NetBeans можно быстро создать двоичный файл модуля NetBeans (.nbm), который является универсальным средством, позволяющим другим разработчикам экспериментировать с собственными версиями среды IDE (фактически эти действия уже выполнялись в разделе <a href="#installing-sample">Установка примера</a>. Для создания двоичного файла модуля выполните следующие действия:</p> |
| |
| В окне "Projects" щелкните правой кнопкой мыши узел проекта <tt>GoogleToolbar</tt> и выберите "Create NBM". Будет создан новый файл NBM, который можно просмотреть в окне "Files" (Ctrl+2): |
| |
| <br><br> |
| <img src="../../images/tutorials/google/60/create-nbm.png" border="1" |
| alt="Новый файл NBM в окне "Files""></li> |
| |
| |
| <br> |
| <div class="feedback-box"><a name="feedback"></a> <a href="https://netbeans.org/about/contact_form.html?to=3&subject=Feedback:%20Google%20Toolbar%20Module%20Tutorial"> Мы ждем ваших отзывов</a></div> |
| <br style="clear:both;" /> |
| <!-- ======================================================================================== --> |
| |
| <h2><a name="nextsteps"></a>Дополнительная информация</h2> |
| |
| <p>Руководство по быстрому началу работы с подключаемыми модулями в среде NetBeans завершено. В этом документе была рассмотрена процедура создания подключаемого модуля, добавляющего панель поиска Google к среде IDE. Для получения дополнительной информации о создании и разработке подключаемых модулей см. следующие материалы: |
| </p><ul> |
| <p></p><li><a href="https://netbeans.org/kb/trails/platform.html">Другие связанные руководства</a></li> |
| <p></p><li><a href="https://netbeans.org/download/dev/javadoc/">Документация Javadoc по интерфейсам API в среде NetBeans</a></li> |
| </ul> |
| |
| <hr> |
| <!-- ======================================================================================== --> |
| |
| |
| </body> |
| </html> |