Рейтинг користувача: 5 / 5

Активна зіркаАктивна зіркаАктивна зіркаАктивна зіркаАктивна зірка
 

РЕАЛІЗАЦІЯ ПРОГРАМ В СЕРЕДОВИЩІ IDE NETBEANS

МЕТОДИЧНІ ВКАЗІВКИ

до лабораторної роботи № 6

з дисципліни “Алгоритмізація та програмування, частина 2”

для студентів спеціальності 122 «Комп’ютерні науки та інформаційні технології»

Реалізація програм в середовищі IDE NetBeans: Методичні вказівки до лабораторної роботи № 6 / Укл.: В.А. Висоцька, Л.В. Чирун. – Львів: Видавництво Національного університету ”Львівська політехніка”, 2017. – 36 с.

Укладачі

                                      Висоцька В.А., канд. техн. наук, доц.

                                      Чирун Л.В., канд. техн. наук, доц.

                           

 

Відповідальний за випуск Литвин В.В., доктор техн. наук., проф.

Рецензенти     Верес О.М., канд. техн. наук, доц.

                          Берко А.Ю., доктор техн. наук., проф.


Мета роботи: Вивчення зовнішнього інтерфейсу та принципів побудови найпростіших програм в середовищі IDE NetBeans. Вивчення основних функцій та подій у середовищі NetBeans. Навчитись працювати із графічними зображеннями у середовищі NetBeans. Навчитись створювати базу даних в середовищі NetBeans. Вивчення структури файлів в Java і роботи з ними. Навчитись здійснювати документування програмного забезпечення

  1. Теоретичні відомості
  2. 1.Технології створення програмних продуктів в середовищі IDE NetBeans

NetBeans - це безкоштовне інтегроване середовище розробки програмного забезпечення з відкритим вихідним кодом. Проект NetBeans включає в себе IDE-середовище з відкритим вихідним кодом і платформу додатків. Дане середовище надає розробнику засоби, які необхідні для створення професійних корпоративних, настільних, мобільних та Інтернет-додатків на платформах C/C++, Java, PHP, Groovy і JavaScript. IDE NetBeans можна вільно завантажити з ресурсу https://netbeans.org/. що постійно пропонує нові версії системи.

Середовищем IDE NetBeans надається повна підтримка JavaFX 2.0, а також засобів для візуального налагодження користувацьких оболонок JavaFX і Swing. До додаткових можливостей можна віднести вбудовану в середовище IDE підтримку Git, нові функції для налагодження РНР та вдосконалені можливості із створення Maven і JavaEE.

  1. 1.1.Створення проекту IDE NetBeans

Для створення проекту IDE необхідно виконати такі дії:

  1. Вибрати "Файл" > "Новий проект" (CTRL+SHIFT+N). Далі у вікні майстра створення проекту розвернути категорію "Java" і вибрати "Застосування Java" й натиснути кнопку "Далі".

Puc.1. Вибір проекту

  1. На сторінці майстра "Ім'я і місце" розташування виконати наступні дії (Рис.2) :
  • введіть HelloWorldApp в поле "Ім'я проекту";
  • не встановлюйте прапорець "Використовувати окрему теку для зберігання бібліотек";
  • у полі "Створити головний клас" введіть helloworldapp.HelloWorldApp;
  • встановіть прапорець "Встановити як головний проект".
  1. Натиснути кнопку "Готово".

Після зазначених дій проект буде створений і відкритий в середовищі IDE. На екрані мають бути представлені наступні елементи:

  • вікно "Проекти", яке містить дерево елементів проекту, у тому числі початкові файли, бібліотеки, від яких залежить код тощо;
  • вікно редактора початкового коду з відкритим файлом HelloWorldApp;
  • вікно "Навігатор", яке можна використовувати для швидкого переміщення між елементами всередині вибраного класу.
  • вікно "Завдання", в якому перераховані помилки компіляції, а також інші завдання, відмічені ключовими словами, наприклад XXX і TODO.

Рис.2. Вікно налаштувань параметрів проекту

  1. 1.2.Компіляція і виконання проекту

Завдяки функції середовища IDE "Компіляція при збереженні" компілювати проект вручну для виконання в середовищі IDE не вимагається. При збереженні початкового файлу Java в середовищі IDE виконується автоматична компіляція.

Функція компіляції при збереженні відключається у вікні "Властивості проекту". Для цього необхідно клацнути по проекті правою кнопкою миші, вибрати пункт "Властивості"> вкладка "Компіляція". Для виконання програми необхідно вибрати команду "Виконати" > "Виконати головний проект" (F6). Якщо при компіляції виникли помилки, вони відзначаються спеціальними червоними символами в лівому і правому полях редактора початкового коду. Символи в лівому полі вказують на помилки у відповідних рядках, в правому - вказують на усі області файлу, в яких є помилки, у тому числі помилки, що не відображуються візуально, в рядках. Для отримання опису помилки можна навести курсор на мітку помилки, а з метою переходу до рядка з помилкою клацнути на спеціальному символі в правому полі. Після тестування програми для підготовки її до розгортання можна використовувати команду "Очистити і побудувати". При використанні команди "Очистити і побудувати" в середовищі IDE автоматично запускається сценарій збірки, що виконує наступні завдання, :

  • видалення заздалегідь скомпільованих файлів і інших результатів збірки;
  • повторна компіляція застосування і формування файлу JAR, що містить скомпільовані файли.

Для збірки прикладного продукту необхідно вибрати команду "Виконання > Очистити і створити головний проект" (SHIFT+F11). З метою перегляду вихідних файлів збірки можна відкрити вікно "Файли" і розвернути вузол HelloWorldApp. Компільований файл байтового коду HelloWorldApp. class знаходиться в підвузлі build/classes/helloworldapp. Розгорнутий архів JAR, HelloWorldApp, що містить .class, знаходиться у вузлі dist.

  1. 1.3.Створення інтерфейсу

Для створення інтерфейсу необхідно створити контейнер Java, в який будуть поміщені інші необхідні графічні елементи. Для зазначених цілей можна скористатися елементом JFrame. У цьому разі контейнер буде поміщений в повий пакет, який буде відображатися у вузлі "Source Packages".

Створення контейнера JFrame:

  1. У вікні "Projects" натиснути правою кнопкою миші вузол "NumberAddition" і вибрати "New > JFrame Form".
  2. Ввести ім'я класу "NumberAdditionUI".
  3. Вибрати пакет my.numberaddition.
  4. Натиснути кнопку "Finish".

Середовище IDE створює форму NumberAdditionUI і клас NumberAdditionUI в додатку NumberAddition і відкриває форму NumberAdditionUI в GUI Builder. Пакет my. NumberAddition замінює собою пакет за замовчуванням.

При цьому вікна середовища GUI Builder містять:

Область проектування. Основне вікно GUI Builder для створення і зміни форм графічного інтерфейсу Java. Кнопки перемикання між режимами перегляду початкового коду (Source) і проектування (Design) на панелі інструментів дозволяють проглядати початковий код класу або графічне представлення елементів графічного інтерфейсу. Додаткові кнопки панелі інструментів забезпечують зручний доступ до команд, що часто використовуються, наприклад, для вибору режимів "Selection" (вибір) і "Connection" (з'єднання), вирівнювання елементів, налаштування автоматичної зміни розміру елементів і попереднього перегляду форм.

Вікно "Inspector", в цьому вікні всі елементи (як візуальні, так і інші) до датку представлені у вигляді дерева. В цьому вікні також позначається елемент, який змінюється в даний час в GUI Builder. Крім того, це вікно дозволяє зручно розмістити елементи на доступних панелях.

Вікно "Palette", Список доступних елементів, що налаштовується з вкладками для елементів JFC/Swing, AWT і JavaBeans і засобами виклику диспетчерів компоновки. Крім того, це вікно дозволяє створювати, видаляти і пере упорядковувати категорії, що відображаються в ньому, за допомогою спеціального засобу налаштування.

Вікно "Properties", В цьому вікні відображаються властивості елемента, вибраного в GUI Builder, вікні "Inspector", вікні "Projects" або вікні "Files".

При натисненні кнопки "Source" на екрані з'являється початковий код додатку на Java, що відображається в редакторі. Розділи коду, які були автоматично створені GUI Builder, позначаються синім кольором і називаються захищеними блоками (Guarded Blocks). Текст із захищених блоків неможливо змінити в режимі перегляду початкового коду. Для зміни в цьому режимі доступний тільки код, що відображається в редакторі на білому фоні. При необхідності коректування коду, що знаходиться в захищеному блоці, слід натиснути кнопку "Design", після чого знову з'явиться екран GUI Builder, на якому можна внести необхідні зміни.

Для додавання елементів до графічного інтерфейсу застосовується вікно "Palette" та панель JPanel. Для додавання панелі JPanel необхідно:

  1. У вікні "Palette" вибрати елемент "Panel" в категорії "Swing" клацанням миші.
  2. Перемістити курсор у верхній лівий кут форми в GUI Builder. При розташуванні елемента поряд із верхньою або лівою межею контейнера з'являються горизонтальні і вертикальні направляючі. Клацнути всередині форми для розміщення панелі JPanel в заданій позиції.

Елемент JPanel з'являється у формі ContactEditorUI з виділенням оранжевим кольором, вказуючи на його вибір (Рис.3).

Рис.3. Вибір елемента

Після того, як кнопка миші буде відпущена, на екрані будуть відображені невеликі індикатори, що показують точки прив'язки елемента, а у вікні "Inspector" з'явиться відповідний вузол JPanel. Для зміни розмірів панелі JPanel необхідно:

  1. Вибрати панель JPanel після чого по периметру елемента з'являються невеликі квадратні мітки-маніпулятори.
  2. Натиснути мітку-маніпулятор на правій межі панелі JPanel і, не відпускаючи кнопки миші, переміщати мітку до тих пір, поки поряд із межею не з'явиться пунктирна направляюча.
  3. Відпустити кнопку миші. В результаті чого розмір елемента буде змінений.

Якщо палітра у верхньому правому кутку середовища IDE відсутня, необхідно виконати команду "Windows > Palette". А саме:

  1. Вибрати панель JPanel па палітрі і перетягнути її в елемент JFrame.
  2. При виділеній панелі JPanel необхідно перейти до вікна "Properties" та натиснути кнопку (...) поряд із полем "Border" для вибору стилю межі.
  3. В діалоговому вікні "Border" вибирати "TitledBorder" із списку і ввести Number Addition в полі "Title". Для збереження змін і закриття діалогового вікна натиснути кнопку "OK".
  4. Тепер на екрані повинен відображатися порожній елемент "JFrame" із заголовком "Number Addition", як показано на рис.4. Згідно з рис.4., додайте до нього три підписи JLabel, три текстових поля JTextField і три кнопки JButton.

Рис. 4. Елементи інтерфейсу

Після цього додаються три елементи JLabel (текстові підписи), три елементи JTextField (текстові поля) і три елементи JButton (кнопки). Для додавання до форми елемента "JLabel" необхідно:

  1. У вікні "Palette" вибрати елемент "Label" в категорії "Swing".
  2. Навести курсор на панель JPanel Name, яка була додана раніше. Після появи направляючих, що вказують па розміщення елемента "JLabel" у верхньому лівому кутку панелі JPanel з невеликим полем у верхній і лівій частині, натиснути для підтвердження позиції нового елемента.
  3. В результаті даної дії здійснюється додання елемента "JLabel" до форми, а у вікні "Inspector" з'являється відповідний вузол.

Для додавання декількох "JLabel" до форми:

  1. У вікні "Palette" вибрати елемент "Label" в категорії "Swing" натисненням миші.
  2. Перемістити курсор у формі безпосередньо під елемент "JLabel", який був доданий раніше. При появі направляючих, що вказують на вирівнювання лівої межі нового елемента "JLabel" з межею верхнього елемента "JLabel" і наявність невеликого проміжку між цими елементами, натисніть мишею при натиснутій клавіші Shift для підтвердження позиції першого елемента "JLabel".
  3. Натиснути клавішу Shift та кнопку миші для розміщення другого елемента "JLabel", праворуч від першого. Перед розміщенням другого елемента "JLabel" слід відпустити і знову натиснути клавішу Shift. Інакше перед розміщенням другого елемента необхідно натиснути клавішу Escape.

Для перейменування елементів необхідно:

  1. Двічі натиснути jLabell і змінити властивість тексту на First Number., відповідно інші на Second Number та Result.
  2. Видалити стандартний текст з jXextFieldl. Для зміни тексту, що відображається, спочатку необхідно два рази клацнути кнопкою миші на текстовому полі а далі знищити відповідний текст. Аналогічно для полів jTextField2 і jTextField3.
  3. Для зміни тексту на jButtonl необхідно викликати контекстне меню і вибрати "Edit Text". Аналогічно для jButton2 та jButton3.

Завершений графічний інтерфейс має вигляд представлений па рис.5.

Рис. 5. Завершений графічний інтерфейс

  1. 1.4.Створення двовіконного проекту

Для створення другого вікна у програмі потрібно створити нове фрейм-вікно. Для цього у вікні "Projects" натиснути правою кнопкою миші вузол "NumberAddition" и вибрати "New > JFrame Form". Припустимо воно буде називатись NewJFramel. Щоб побачити дане вікно після запуску програми потрібно розмістити ще одну кнопку і у її обробнику написати:

new NewJFramel().setVisible(true);

  1. 1.5.Створення Java - файлів

NetBeans IDE містить шаблони і майстра для створення різних файлів, від файлів з початковим кодом на Java до XML - документів і сховищ ресурсів (resource bundles). Можливо, найлегший спосіб створити файл (після створення проекту) - це клацання правою кнопкою миші на вузлі проекту, для якого необхідно створити файл у вікні проектів. Далі з меню, що з'явилося, потрібно вибрати пункт New і потім потрібний тин файлу. Це підменю містить ярлики до часто використовуваних шаблонів. Пункт File/Folder призначений для доступу до усіх шаблонів в NetBeans.

Рис. б. Список команд пункту меню File/Folder

Майстер New File дозволяє створити новий файл, побудований на шаблоні IDE по замовчуванню. Шаблони файлів згруповані за типом. Крім того, до шаблонів файлу по замовчуванню можна налаштувати шаблони IDE, що використовуються для створення файлів, а також створити свої власні шаблони. Можливість використання власних шаблонів може бути корисна у разі, якщо певний тип файлу повинен мати стандартні елементи або необхідно змінити спосіб генерації інших елементів. При створенні власного шаблону можна

 
 

зробити його доступним в майстрі New File.

Для зміни і створення нових шаблонів застосовується Template Manager, шляхом вибору з меню Tools головного меню пункту Template Manager. Наприклад, для створення нового шаблону Java - класу, можна або здублювати існуючий шаблон Java - класу (кнопка Duplicate), або додати до середовища існуючий. Для цього у першому випадку необхідно вибрати повий клас і натиснути па кнопку Open in Editor, після чого можна здійснити процес редагування. У другому випадку необхідно натиснути на кнопку Add і вибрати файл з шаблоном. Після зазначених дій результуючі шаблони будуть доступні в переліку майстра New File.

  1. 1.6.Редактор коду

Редактор коду (Source Editor) - головний інструмент для редагування коду. Його особливості, такі як завершення коду, підсвічування синтаксису і помилок компіляції тощо забезпечують швидкий й легший процес написання коду.

Для відкриття файлу з початковим кодом па Java в редакторі коду, необхідно два рази клацнути на файлі у вікні проекту або файлі. IDE має декілька механізмів для генерації фрагментів початкового коду. Ось найчастіше використовувані з них:

  • Завершення коду (Ctrl + Space). Коли здійснюється набір коду можете відкрити вікно завершення коду, яке містить список для завершення поточного виразу. Якщо далі продовжувати набирати код, то список змінюватиметься відповідно до введених символів.
  • Шаблони коду (Code Templates). Для деяких найбільш часто використовуваних фрагментів коду можна використовувати скорочення (абревіатури) замість набору повного фрагмента. IDE перетворює абревіатури в повні фрагменти коду після натиснення на пропуск.
  • Підказки(Ак + Enter). Якщо IDE виявляє помилку, таку як «недостатній код», IDE може запропонувати код для виправлення помилки і вставити його в потрібне місце. Коли курсор введення знаходиться на рядку, що містить помилку, IDE відображує значок лампочки на межі для вказання помилки. Використання комбінації клавіш або клацання на лампочці відобразить пропоновані варіанти для виправлення помилки.
  1. 1.7.Робота з виразами import

У IDE є декілька способів перевірити, чи є у вашому Java файлі усі необхідні вирази import:

  • для цілого файлу - натисненням Alt + Shift + F (Fix Imports), коли курсор введення знаходиться у файлі в редакторові коду;
  • індивідуально - натисненням Alt + Shift + I (Fast Import), коли курсор введення знаходиться на імені класу на який посилається у вашому коді;
  • якщо використовується завершення коду для заповнення імені класу, то необхідний вираз import додається автоматично.

Команда IDE Fix Imports додає потрібні вирази import в код і видаляє невживані вирази. При цьому, не відбувається видалення повно-кваліфікованих імен класів в коді і їх заміни виразами import. Команда Fast Import навпроти, дозволяє вибрати, спосіб управління import в коді. Команда Fast Import дозволяє:

  • генерувати вирази import для класу;
  • генерувати вирази import для пакету;
  • генерувати повно-кваліфіковане ім'я в коді.
  1. 1.8.Навігація в редакторі та Java - файлі

При роботі з великою кількістю файлів можливість швидко ї навігації між ними є важливим чинником для підвищення продуктивності роботи. При роботі з документом в текстовому редакторі, меню Navigate містить команди, які дозволяють швидко перейти до елементу в документі згідно з поточним виділеним елементом, так і здійснювати перехід між документами. IDE пропонує декілька механізмів для спрощення перегляду і навігації Java файлів:

  • Вікно Navigator. Вікно Navigator з'являється нижче за вікно проектів і містить список елементів (наприклад, конструктори, поля і методи) поточного Java -файлу. При виборі елемента курсор введення переміститься в рядок, що містить цей елемент в редакторі коду.
  • Меню Navigate - застосовується для швидкої навігації між елементами в коді.

В табл. 1. приведено список комбінацій клавіш в меню Navigate.

Комбінації

клавіш

Опис команди

Alt + Shift + 0

Go to Class. Відкриває діалогове вікно Fast Open, яке дозволяє швидко відкрити файл. При наборі імені класу, у вікні відображається список відповідних файлів.

Alt + 0

Go to Source. Перейти до початкового коду поточного виділеного класу, методу або поля.

Alt + G

Go to Declaration. Подібно до попередньої команди, відкриває файл, в якому оголошена змінна, на якій знаходиться курсор введення.

Ctrl + В

Go to Super Implementation. Переходить до базової реалізації вибраного методу (якщо вибраний метод перевизначає метод з іншого класу).

Alt + Shift + L

Перехід до наступного елементу в списку переміщень в усіх файлах.

Alt + Shift + К

Перехід до попереднього елементу в списку переміщень в усіх файлах.

  1. 1.9.Засоби для пошуку і виділення

Наступна таблиця містить короткий огляд засобів для пошуку і виділення, доступних в редакторі коду.

Комбінації клавіш

Опис команди

Ctrl + Shift + 0

Відкриває вікно Search Results.

Ctrl + Shift + P

Пошук в проектах.

Ctrl + F

Пошук тексту в поточному файлі.

Ctrl + H

Замінює текст в поточному файлі.

F3

Пошук наступного входження слова в результаті пошуку.

Shift + F3

Пошук попереднього входження слова в результаті пошуку.

Ctrl + F3

Пошук усіх входжень елементу, на якому знаходиться курсор введення.

Alt + Shift + Н

Включення або відключення підсвічування результату пошуку.

  1. 2.Механізми обробки подій в середовищі NetBeans

Вивчення основних функцій та їх програмування приведемо на конкретному прикладі програми-калькулятор, інтерфейс якої буде створено на основі знань здобутих в попередній роботі. Головне вікно програми приведено на рисунку 1.

Рис.1. Типове вікно програми

Для того щоб кнопки стали функціональними, кожній з них необхідно привласнити обробник подій, який буде відповідати за реагування на події. В даному випадку необхідно ідентифікувати подію натиснення кнопки - шляхом клацання мишею або за допомогою клавіатури. Тому буде використовуватися інтерфейс "ActionListener", призначений для обробки подій "ActionEvent".

  1. Натиснути правою кнопкою миші кнопку "Exit". В меню, що з'явилося, вибрати "Events > Action > ActionPerformed". Необхідно пам'ятати, що меню містить множину інших подій, па які може реагувати програма, тому при виборі події "actionPerformed" середовище IDE автоматично додає інтерфейс "ActionListener" до кнопки "Exit" і створює метод-обробник, який буде відповідати за обробку методу "actionPerformed".
  2. В середовищі IDE автоматично відкривається вікно "Source Code", де відображається місце вставки дії, яка повинна виконуватися кнопкою при її натисненні (за допомогою миші або клавіатури). Вікно "Source Code" повинно містити готові рядки, в які необхідно написати код: System.exit(0);
  3. Готовий код кнопки "Exit" повинен виглядати наступним чином:

private void jButtonSActionPerformed(java.awt.event.ActionEvent

evt) {

System.exit(0);

}

Для додавання функціональності до кнопки "Clear" необхідно:

  1. Натиснути вкладку "Design" у верхній частині робочої області для повернення до екрану "Form Design".
  2. Натиснути правою кнопкою миші кнопку "Clear" (jButtonl). В меню, що з'явилося, виберати "Events > Action > actionPerformed".
  3. Натиснення кнопки "Clear" повинно приводити до видалення всього тексту зі всіх текстових йолів "jTextField". Для цього слід додати код, аналогічний приведеному вище. Готовий початковий код повинен виглядати наступним чином:

private void

jButtonlActionPerformed(java.awt.event.ActionEvent evt){

jTextFieldl.setText("");

j TextField2.setText("");

j TextField3.setText("");

}

Додавання функціональності до кнопки "Add"

Кнопка "Add" повинна виконувати три дії:

  1. Спочатку вона приймає дані, введені користувачем в полях jXextPieldl і jTextField2, і перетворює їх з типу "String" в тип "Float".
  2. Потім повинно проводитися додавання двох чисел.
  3. Отримана сума повинна бути перетворена в тип "String" і поміщена в полі jTextField3.

Для реалізації даних операцій необхідно:

  1. Натиснути вкладку "Design" у верхній частині робочої області для повернення до екрану "Form Design".
  2. Натиснути правою кнопкою миші кнопку "Add" (jButton2). В меню, що з'явилося, вибрати "Events > Action > actionPerformed".
  3. Додати код дій, які повинна виконувати кнопка "Add". Готовий початковий код повинен виглядати наступним чином:

private void jButton2ActionPerformed(java.awt.event.ActionEvent

evt) {

float numl, num2, result;

numl = Float.parseFloat(jTextFieldl.getText0);

num2 = Float.parseFloat(jTextField2.getText0);

result = numl+num2;

jTextFieldS.setText(String.valueOf (result));

}

Тепер програма повністю готова, і можна приступити до її збірки і виконання. Для виконання програми в середовищі IDE необхідно виконати наступні дії:

  1. Вибрати "Run > Run Main Project".
  2. При появі вікна з повідомленням про те, що для проекту "NumberAddition" не встановлений   головний клас, вибрати в якості головного класу "my.NumberAddition.NumberAdditionUI" і натиснути кнопку "OK".

Для запуску програми за межами середовища IDE необхідно виконати наступні дії:

  1. Для збірки архіву JAR додатку вибрати "Run > Clean and Build Main Project" (Shift-Fll).
  2. За допомогою провідника по файловій системі або диспетчера файлів перейти в каталог NumberAddition/dist та запустити файл NumberAddition.jar.

Для запуску додатку з командного рядка необхідно:

  1. Викликати командний рядок або вікно термінала. Далі в командному рядку змінити поточний каталог на каталог NumberAddition/dist.
  2. В командному рядку ввести наступний оператор:

java -jar NumberAddition.jar

Крім реакції системи па подію натиснення кнопки існує множина інших, на які може реагувати додаток. Проглянути в середовищі IDE список доступних подій, які можуть оброблятися елементами графічного інтерфейсу, можна таким чином:

  1. Повернутися до файлу NumberAdditionUI.java в редакторі та натиснути вкладку "Design" для перегляду структури графічного інтерфейсу в GUI Builder.
  2. Натиснути правою кнопкою миші будь-який елемент графічного інтерфейсу і вибрати "Events" в меню, що з'явилося. Тепер можна просто вивчити вміст меню, не вибираючи яких-небудь пунктів.
  3. Як альтернативу можна вибрати "Properties" в меню "Window". А саме, у вікні "Properties" натиснути на вкладку "Events". Вкладка "Events" дозволяє переглянути і змінити обробники подій, пов'язані з поточним активним елементом графічного інтерфейсу.
  4. Додаток також може реагувати па натиснення клавіш, одинарне, подвійне або потрійне клацання мишею, переміщення покажчика миші, зміна розміру вікна і переміщення фокусу введення. Меню "Events" дозволяє автоматично створити обробники подій для всіх цих подій. Найбільш поширеним з них є подія "Action".

Виконання подій здійснюється наступним чином. Кожного разу при виборі події в меню "Event" середовище IDE автоматично створює інтерфейс прослуховування подій (event listener) і прив'язує його до елемента.

Як правило, для отримання можливості реагування інтерактивного елемента графічного інтерфейсу він повинен бути зареєстрований в якому-небудь інтерфейсі прослуховування подій і мати зв'язаний обробник подій. З огляду па те, середовище IDE NetBeans забезпечує автоматичну прив'язку інтерфейсу прослуховування, що дозволяє розробнику звернути основну увагу реалізації бізнес-логіки, яка повинна ініціюватися подією.

  1. 3.Реалізація програмної системи для роботи із графічною інформацією.

Для багатьох початківців програмістів на Java проблемою є обробка зображень. Оскільки по-перше, їх завантаження за абсолютною адресою на диску - заняття безперспективне, тому що у випадку «зникнення» файлу з диску виникає проблема його відображення; по-друге: завантаження ресурсу з jar-файлу, який часто реалізується із використанням класу java.іо.File, що призначений для роботи с файловими системами.

З огляду па це оптимальним варіантом є завантаження ресурсу в jar-файл для чого служать методи:

j ava.lang.Class.getResourсе(String);

j ava.lang.Class.getResourceAsStream(String);

j ava.lang.ClassLoader.getResource(String);

j ava.lang.ClassLoader.getResourceAsStream(String) .

Методи Class-y делегують виклики ClassLoader-y:

getResource (String) який за іменем ресурсу повертає java.net.URL, через який можна отримати даний ресурс.

getResourceAsStream(String)повертає java.іо.InputStream, через який ресурс можна прочитати.

При цьому, назва ресурсу представляє собою шлях до нього і який може бути абсолютним та відносним. Зовнішня відмінність - абсолютне ім'я починається з символу У. У першому випадку ресурс шукається відносно кореня classpath. Тобто беруться всі шляхи і jar-файли, що входять до classpath, і ресурс шукається щодо сукупності цих точок. Якщо ж ім'я відносне - до нього на початку приписується шлях, отриманий з пакету поточного класу. Далі пошук ведеться як у випадку абсолютного імені.

Наприклад, нехай заданий клас: classpath:

с:\work\myproj ect\classes;c:\lib\lib.jar.

Приклад 1. Застосовуючи конструкцію getClass().

getResource ( " /images/logo.png" ). Оскільки ім'я починається з символу '/' - то воно абсолютне. Пошук ресурсу здійснюється наступним чином:

  1. До шляху з classpath c:\work\myproject\classes приписується назва ресурсу /images/logo.png, в результаті чого шукається файл c:\work\myproject\classes\images\logo.png. Якщо файл знайдено - пошук зупиняється, в іншому випадку:
    1. В jar-файлі c:\lib\lib.jar шукається файл /images/logo.png, при цьому пошук здійснюється від кореня jar-файлу.

Приклад 2. Застосовуючи  конструкцію getClass().

getResource ("res/data.txt"). Оскільки ім'я не починається з символу '/' – воно вважається відносним. Пошук ресурсу здійснюється наступним чином:

1. До шляху з classpath c:\work\myproject\classes приписується поточний макет класу, де знаходиться код, - /ru/skipy/test, - і дальше ім'я ресурсу res/data.txt, в результаті  чого шукається файл c:\work\myproject\classes\ru\skipy\test\res\data.txt. Якщо файл не знайдено пошук припиняється, в іншому випадку:

2. В jar-файлі с : \ lib\lib.jаr шукається файл /ru/ skipy/ test/res/ data.txt (ім'я пакета поточного класу плюс ім'я ресурсу), причому пошук ведеться від кореня jar-файлу.

З огляду на те, для того, щоб ресурс було знайдено необхідно забезпечити його існування шляхом його упакування в jar-файл. З метою закріплення теоретичного матеріалу розглянемо приклад, що ілюструє дані положення.

Для початку створимо новий проект, в якому створимо форму JFrame з міткою JLabel. Для цього необхідно:

1. У вікні "Проекти" розвернути вузол "ImageDisplayApp" (назва проекту) .

2. Клацнути правою кнопкою вузол "Початкові файли" і вибрати форму "Створити" > "JFrame".

3. Як ім'я класу ввести ImageDisplay, в якості імені пакету ввести org.me.myimageapp.

4. Натиснути кнопку "Завершити".

Для додавання напису у розділі "Палітра" вибрати компонент "Мітка" і перетягнути його у форму. Форма повинна набрати наступного вигляду:

Рис.1. Вигляд форми

Якщо необхідним є використання зображення або іншого ресурсу то застосовується окремий пакет Java. Для цього необхідно:

  1. У вікні "Проекти" клацнути правою кнопкою вузол "org.me.myimageapp" і вибрати "Створити" > "Пакет Java".

Рис. 2. Створення нового пакету

  1. У майстрі створення проекту до імені org.me.myimageapp додати .resources; новий макет отримає ім'я org.me.myimageapp.resources.
  2. Натиснути кнопку "Завершити".

В результаті зазначених дій у вікні "Проекти" в пакеті org.me.myimageapp.resources повинно з'явитися зображення (рис.3).

Puc.3. Наявність «зображення» у вікні проекти

Для додання зображення до мітки необхідно У редакторі GUI Designer вибрати мітку, яка була додана раніше у форму, далі у вікні "Властивості" клацнути категорію "Властивості" де здійснити прокрутку до властивості "icon" де натиснути кнопку у вигляді еліпса (..) і в діалоговому вікні властивостей значка клацнути "Імпорт в проект".

Рис. 4. Перший крок додання зображення до мітки

Далі, у вікні вибору файлів вибрати будь-яке збережене в комп'ютері зображення. Потім натиснути кнопку "Далі" та па сторінці "Вибір цільової теки" в майстрі вибрати теку resources і натиснути кнопку "Далі".

Рис. 5. Другий крок додання зображення до мітки

При натисненні кнопки "Далі" в середовищі IDE будуть виконані наступні операції:

  • Копіювання зображення в проект. В результаті при виконанні зборки і впровадження додатку це зображення буде додано у кінцевий архів JAR.
  • Створення коду, що реалізовує доступ до зображення, в класі "ImageDisplay".
  • Відображення зображення в якості мітки в режимі розробки форми.

Для оптимізації виду форми необхідно:

  • У вікні "Властивості" вибрати властивість text і видалити мітку jLabell. Це значення було створене GUI Builder як текст мітки, що відображався. В даному випадку як мітка відображується зображення, а не текст, тому вводити текст не потрібно.
  • Перетягнути лейбел в центр форми.

Рис.6. Оптимізація виду форми

  1. 3.1.Перегляд створеного коду :
    1. У GUI Designer перейти на вкладку "Початковий код".
    2. Прокрутите вниз до рядка "Створений код".
    3. Клацніть значок (+) зліва від рядка "Створений код" для перегляду коду, створеного GUI Designer.

Основний рядок виглядає таким чином:

j"Laben.setIcon(new javax.swing.ImageIcon(getClass().getResource

("/org/me/myimageapp/resources/park - sculpture.jpg")));

Властивість Icon елемента jLabeH була змінена в редакторі властивостей, тому середовищем IDE був створений метод setlcon. У параметрі цього методу знаходиться виклик методу getResource() анонімного внутрішнього класу в Imagelcon. Зверніть увагу на те, що створений шлях до зображення пов'язаний з його місцем розташування в структурі пакетів додатку.

Примітка. Якщо в редакторі властивостей значка встановити параметр "Зовнішнє зображення", то середовищем IDE буде створений абсолютний шлях до зображення, тобто само зображення не буде скопійовано в проект. Як наслідок, при запуску програми па цьому ж комп'ютері зображення з'явиться, а при запуску па іншому комп'ютері, швидше за все, ні.

  1. 3.2.Збірка і запуск програми

Після створення коду, що реалізовує доступ до зображення і виведення його на екран, можна викопати зборку і запуск програми і перевірити правильність виклику зображення. Спочатку необхідно вказати головний клас проекту. При призначенні головного класу середовище IDE отримує інформацію про те, який клас слід запускати при запуску проекту. Крім того, таким чином забезпечується створення елементу Main - Class в архіві JAR застосування при його зборці.

Для призначення головного класу проекту необхідно виконати такі дії:

  1. Правою кнопкою клацнути вузол "ImageDisplayApp" проекту і вибрати "Властивості"
  2. У діалоговому вікні "Властивості проекту" вибрати категорію "Виконання".
  3. Натиснути кнопку "Огляд" поряд з полем "Головний клас". Виберіть клас org.me.myimageapp.ImageDisplay і натиснути кнопку "Вибрати головний клас".

Для зборки проекту:

Вибрати "Виконання" > "Очистити і створити головний проект" (Shift+Fll). У вікні "Файли" відображуються об'єкти, створені при зборці програми. Скомпільований клас знаходиться в теці build. Тека dist містить виконуваний архів JAR, що містить скомпільований клас і зображення.

Рис. 7. Зборка проекту

Для запуску проекту необхідно вибрати команду "Виконання" > "Виконати головний проект" (F6).

  1. 3.3.Створення призначеного для користувача коду

У багатьох програмах зображення, що виводиться, визначається не статично, як в наведеному вище прикладі, а визначається в залежності від вибору користувача. Якщо необхідно падати можливість вибору зображення в початковому коді, то можна написати призначений для користувача код для виклику і відображення необхідних ресурсів.

У середовищі IDE не передбачена можливість додавання коду в "захищені блоки", що містять створений GUI Builder код, в режимі перегляду початкового коду. Проте існує можливість вставки коду в захищені блоки за допомогою редактору властивостей, які можна викликати у вікні "Властивості". Якщо використовувати в цих цілях редактори властивостей, то призначений для користувача код не буде втрачений при внесенні змін в GUI Builder. Наприклад, для вставки призначеного для користувача коду у властивість icon мітки Jlabel необхідно виконати такі дії:

  1. Вибрати "JLabel" в режимі розробки або у вікні "Інспектор".
  2. У вікні "Властивості" натиснути кнопку у вигляді еліпса (..) поряд з властивістю "Значок".
  3. У списку, що розкривається, у верхній зоні діалогового вікна вибрати параметр "Призначений для користувача код".

Рис.8. Послідовність створення коду для користувача

За допомогою параметра "Призначений для користувача код" в цьому редакторові властивостей можна вручну вказати метод setlcon. Крім того, в цьому параметрі можна ввести необхідну логіку або вказати виклик окремого методу, для якого вручну був створений код.

Рис.9. Поле для вказання «ручного коду»

  1. 3.4.Створення смуг прокручування

З метою створення смуг прокручування застосовується компонент jScrollPane. Порядок створення виглядає таким чином:

  1. Створити новий проект та додати на нього jScrollPane на якому розмістити jXextArea.
  2. За допомогою властивостей j ScrollPane задати, щоб вертикальна прокрутка з'являлась при потребі, а горизонтальна прокрутка була відключена.
  3. Додати кнопки для копіювання, вирізання, вставки.
  4. Додати ще три кнопки та задати для них зміну кольору тексту за допомогою властивості setForeground.
  5. Додати три кнопки для зміни шрифту. Для цього потрібно спочатку створити шрифт, наприклад:

Font a=new Font("AlgerianFont.PLAIN,25);

A потім використати зміну шрифту через властивість setFont. (Використання типу Font потребує імпорту бібліотеки).

  1. 3.5.Робота із JSlider
    1. У вікні "Palette" перетягніть елемент текстового поля та JSlider в область проектування. Приклад форми, отриманої в результаті цих дій, представлений на рис 10.

Рис.10. Приклад застосування JSlider

  1. Клацнути правою кнопкою миші елемент текстового поля та натиснути "Bind> text" для відкриття діалогового вікна "Bind".
  2. У полі списку "Binding Source" вибрати jSlider 1.
  3. У полі списку "Binding Expression" вибрати value int (рис.11).

Рис.11. Вказання параметрів Jslider

  1. Натисніть кнопку "OK".

Отже, тепер властивість компонента value повзунка «прив'язана» до значення text текстового поля. В області проектування текстове поле повинно містити значення 50. Це значення відображає те, що повзунок знаходиться в середньому положенні, а діапазон значень за замовчуванням для повзунка становить від О до 100. Тепер можна запустити додаток і перевірити роботу прив'язки.

(Для ознайомлення з повним текстом статті необхідно залогінитись)