
ТСПП
.pdf
Примітка
Якщо в редакторі властивостей значка встановити параметр "Зовнішнє зображення", то середовищем IDE буде створений абсолютний шлях до зображення, тобто само зображення не буде скопійовано в проект. Як наслідок, при запуску програми на цьому ж комп'ютері зображення з'явиться, а при запуску на іншому комп'ютері, швидше за все, ні.
Збірка і запуск програми
Після створення коду, що реалізовує доступ до зображення і виведення його на екран, можна виконати зборку і запуск програми і перевірити правильність виклику зображення. Спочатку необхідно вказати головний клас проекту. При призначенні головного класу середовище IDE отримує інформацію про те, який клас слід запускати при запуску проекту. Крім того, таким чином забезпечується створення елементу Main - Class в архіві JAR застосування при його зборці.
Для призначення головного класу проекту необхідно виконати такі дії:
1.Правою кнопкою клацнути вузол "ImageDisplayApp" проекту і вибрати "Властивості"
2.У діалоговому вікні "Властивості проекту" вибрати категорію "Виконання".
3.Натиснути кнопку "Огляд" поряд з полем "Головний клас". Виберіть клас org.me.myimageapp.ImageDisplay і натиснути кнопку "Вибрати головний клас".
Для зборки проекту :
Вибрати "Виконання" > "Очистити і створити головний проект" (Shift+F11). У вікні "Файли" відображуються об'єкти, створені при зборці програми. Скомпільований клас знаходиться в теці build. Тека dist містить виконуваний архів JAR, що містить скомпільований клас і зображення.
Рис.7. Зборка проекту Для запуску проекту необхідно вибрати команду "Виконання" > "Виконати головний
проект" (F6).
21

Створення призначеного для користувача коду
Убагатьох програмах зображення, що виводиться, визначається не статично, як в наведеному вище прикладі, а визначається в залежності від вибору користувача. Якщо необхідно надати можливість вибору зображення в початковому коді, то можна написати призначений для користувача код для виклику і відображення необхідних ресурсів.
Усередовищі IDE не передбачена можливість додавання коду в "захищені блоки", що містять створений GUI Builder код, в режимі перегляду початкового коду. Проте існує можливість вставки коду в захищені блоки за допомогою редактору властивостей, які можна викликати у вікні "Властивості". Якщо використовувати в цих цілях редактори властивостей, то призначений для користувача код не буде втрачений при внесенні змін в GUI Builder. Наприклад, для вставки призначеного для користувача коду у властивість icon мітки JLabel необхідно виконати такі дії:
1.Вибрати "JLabel" в режимі розробки або у вікні "Інспектор".
2.У вікні "Властивості" натиснути кнопку у вигляді еліпса (..) поряд з властивістю "Значок".
3.У списку, що розкривається, у верхній зоні діалогового вікна вибрати параметр "Призначений для користувача код".
Рис.8. Послідовність створення коду для користувача
За допомогою параметра "Призначений для користувача код" в цьому редакторові властивостей можна вручну вказати метод setIcon. Крім того, в цьому параметрі можна ввести необхідну логіку або вказати виклик окремого методу, для якого вручну був створений код.
Рис.9. Поле для вказання «ручного коду»
Створення смуг прокручування
З метою створення смуг прокручування застосовується компонент jScrollPane. Порядок створення виглядає таким чином:
1.Створити новий проект та додати на нього jScrollPane на якому розмістити jTextArea.
2.За допомогою властивостей jScrollPane задати, щоб вертикальна прокрутка з’являлась при потребі, а горизонтальна прокрутка була відключена.
3.Додати кнопки для копіювання, вирізання, вставки.
22

4.Додати ще три кнопки та задати для них зміну кольору тексту за допомогою властивості setForeground.
5.Додати три кнопки для зміни шрифту. Для цього потрібно спочатку створити шрифт, наприклад:
Font a=new Font("Algerian",Font.PLAIN,25);
Апотім використати зміну шрифту через властивість setFont.(Використання типу Font потребує імпорту бібіліотеки).
Робота із JSlider
1. У вікні "Palette" перетягніть елемент текстового поля та JSlider в область проектування. Приклад форми, отриманої в результаті цих дій, представлений на рис10.
Рис.10. Приклад застосування JSlider
2.Клацнути правою кнопкою миші елемент текстового поля та натиснути "Bind> text" для відкриття діалогового вікна "Bind".
3.У полі списку "Binding Source" вибрати jSlider1.
4.У полі списку "Binding Expression" вибрати value int (рис.11).
Рис.11. Вказання параметрів JSlider
5. Натисніть кнопку "OK".
23

Отже, тепер властивість компонента value повзунка «прив'язана» до значення text текстового поля. В області проектування текстове поле повинно містити значення 50. Це значення відображає те, що повзунок знаходиться в середньому положенні, а діапазон значень за замовчуванням для повзунка становить від 0 до 100. Тепер можна запустити додаток і перевірити роботу прив'язки.
КОНТРОЛЬНІ ПИТАННЯ
1.Опишіть елементи які дозволяють вивести зображення?
2.Яка властивість відповідає за встановлення зображення елемента?
3.Чи можна задавати зображення кодом, а не візуальними засобами середовища?
4.Опишіть послідовність створення смуги прокрутки та повзунка
ПОРЯДОК ВИКОНАННЯ РОБОТИ
1.Створити новий проект та реалізувати у ньому функції, які були описані в теоретичних відомостях.
2.Створити додаткову форму, на зразок приведеної нижче в якій здійснюється операція порівняння двох введених текстів з допомогою методу equals(). У випадку співпадіння виводити одне зображення, в іншому – відмінне. Варіанти вибору придумати самостійно та узгодити з викладачем.
3.Додаткове завдання. Створити нову форму в якій передбачити можливості із її прокручування та зміни масштабу зображення.
4.Оформити звіт згідно з вимог.
Лабораторна робота №4
Тема роботи: Створення програмної системи для роботи з базою даних Мета роботи: Навчитись створювати базу даних в середовищі NetBeans.
Теоретичні відомості
Настройка бази даних
Перед створенням додатку робочого середовища типу CRUD (Create, Read, Update, Delete – створення, читання, оновлення, видалення) в середовищі IDE необхідно реалізувати підключення до бази даних, яку буде використовувати цей додаток. Попередня настройка цього підключення дозволить використовувати функції середовища IDE для автоматизації
24
прив'язки бази даних до додатку.В даній роботі будуть застосовуватися засоби по роботі з базою даних Java DB, оскільки в середовищі IDE є зручний інтерфейс для запуску і зупинки сервера бази даних Java. Спочатку необхідно переконатися в тому, що база даних Java зареєстрована в середовищі IDE. У ряді випадків реєстрація бази даних Java в середовищі IDE виконується автоматично, наприклад, при реєстрації сервера додатків GlassFish або при роботі з JDK 6. Якщо база даних Java не зареєстрована в середовищі IDE, необхідно виконати її реєстрацію вручну. Для перевірки реєстрації бази даних Java в середовищі IDE необхідно виконати наступні дії:
1.Відкрити вікно "Services" та натиснути правою кнопкою миші вузол "Databases >
Java DB" і вибрати "Properties".
Якщо база даних Java зареєстрована, поля "Java DB Installation" і "Database Location"
будуть заповнені.
Якщо база даних Java не зареєстрована, необхідно заповнити наступні два поля:
o Java DB Installation – ввести шлях до сервера бази даних (C:\Program Files\Sun\JavaDB).
o Database Location – вказати теку, в якій будуть зберігатися бази даних
(C:\Users\Student\.netbeans-derby).
2.Натиснути кнопку "OK".
Запуск сервера і створення бази даних
Після реєстрації бази даних Java в середовищі IDE можна легко запускати і зупиняти сервер бази даних, а також створювати нові бази даних. Для запуску сервера бази даних в середовищі IDE необхідно виконати наступні дії:
У вікні "Services" натиснути правою кнопкою миші "Databases > Java DB", а потім вибрати "Start Server". Якщо місцеположення для бази даних ще не визначено, з'явиться діалогове вікно "Set Database Location" в якому потрібно ввести місцеположення сервера БД, на якому будуть зберігатися бази даних. При необхідності можна створити нову теку. Після запуску сервера у вікні "Output" відкриється вкладка "Java DB Database Process", і
з'явиться наступне повідомлення: |
|
|
Apache Derby Network Server - 10.2.2.0 - |
(485682) |
started and |
ready to accept connections on port |
1527 at |
2013-09-05 |
10:26:25.424 GMT |
|
|
Для створення бази даних потрібно виконати наступні дії:
1.У вікні "Services" натиснути правою кнопкою миші "Databases > Java DB", а потім вибрати "Create Database".
2.В текстовому полі "Database Name" ввести car database. Ввести "nbuser" в полях "User Name" і "Password".
3.Натиснути кнопку "OK".
Підключення до бази даних
До цього моменту запущений сервер бази даних і створена нова база даних. Проте до початку роботи з базою даних в середовищі IDE необхідно підключитися до цієї бази даних. Для підключення до бази даних car database потрібно:
25

1.Перейти у вікно "Services" (Ctrl+5) і розвернути вузол "Databases", в якому повинна відображатися нова база даних.
2.Натисніть правою кнопкою миші вузол підключення до бази даних
(jdbc:derby://localhost:1527/car_database[nbuser on NBUSER]) і виберіть
"Connect".
Значок вузла підключення повинен після цього стати цілим ((), що вказує на успішне підключення.
Рис.1. Зміна форми значка підключення
3.Розвернути вузол підключення, натиснувши його підвузол "Tables" і вибрати
"Execute Command".
4.На вкладці "SQL Command 1" редактора початкового коду ввести код
створення таблиці: create table "CAR"
(
"MAKE" VARCHAR(50) not null primary key, "MODEL" VARCHAR(50),
"PRICE" INTEGER,
"BODY STYLE" VARCHAR(30), "COLOR" VARCHAR(20),
"SUN ROOF" INTEGER default 0, "SPOILER" INTEGER default 0, "TIRE SIZE" INTEGER,
"TIRE TYPE" INTEGER,
"MODERNNESS" INTEGER
);
insert into car values ('Acura', 'NSX', 47075, 'сoupe', 'уellow', 1, 1,
18, 1, 38);
insert into car values ('Audi', 'A8', 63890, 'sedan', 'black', 1, 0, 24, 0, 88);
insert into car values ('BMW', 'M-Series', 108900, 'сoupe', 'red', 1, 0,
50, 0, 44);
insert into car values ('Buick', 'Lucerne', 31599, 'sedan', 'black', 1, 0, 26, 2, 65);
insert into car values ('Cadilac', 'XLR', 62777, 'сonvertible', 'green',
0, 0, 14, 1, 26);
Це сценарій SQL, який заповнить базу даних інформацією про автомобілі.
5. Для запуску сценарію Натисніть кнопку "Run SQL" (() на панелі інструментів редактора початкового коду.
26
Створення програми
1.Вибрати "File > New Project".
2.На першому екрані майстра розвернути категорію "Java" і вибрати шаблон "Java Desktop Application". Натиснути кнопку "Next".
Шаблон "Java Desktop Application" містить цілий ряд основних функцій візуального додатку, у тому числі основні пункти меню і команди.
3.На сторінці майстра "Name and Location" виконати наступні дії:
1.Ввести CarsApp в полі "Project Name". Значення цього поля визначає ім'я проекту у вікні "Projects".
2.Встановити прапорець "Set as Main Project".
3.(Додатково) Змініть значення поля "Project Location", що визначає місцеположення метаданих проекту.
4.(Додатково) Встановіть прапорець "Use Dedicated Folder for Storing Libraries"
і вказати місцеположення теки бібліотек. В полі "Choose Application Shell"
вибрати "Database Application".
5.Натиснути кнопку "Next".
4.На сторінці майстра "Master Table" вибрати підключення до бази даних для бази даних CAR. Адреса для доступу до бази даних повинна виглядати приблизно наступним чином: jdbc:derby://localhost:1527/car_database[nbuser on NBUSER]
5.Ввести пароль (nbuser) для бази даних і встановити прапорець "Remember Password
During This Session".
Після підключення до бази даних в полі "Database Table" повинна відображатися таблиця CAR, а в списку "Columns to Include" повинні міститися імена 10 стовпців бази даних CAR. Поки в додатку будуть використовуватися тільки п'ять з них.
6.Вибрати нижні п'ять імен стовпців (починаючи з SUN ROOF і закінчуючи MODERNNESS) і натиснути кнопку < для їх переміщення в лівий стовпець. Натиснути кнопку "Next".
7.На екрані "Detail Options" вибрати "Finish".
Потім майстер створює основний інтерфейс користувача з таблицею і підключенням до бази даних. Це може зайняти декілька секунд, оскільки в середовищі IDE створюється проект і код.
Виконання створеної програми
До цього моменту вже створено простий додаток з графічним інтерфейсом, що надає наступні можливості: перегляд і зміна значень в п'яти стовпцях бази даних CAR; основні пункти меню; збереження стану вікна між сеансами (при закритті додатку зберігається інформація про позицію і розмір вікна, тому при новому відкритті додатку вікно відображається в тій же самій позиції, в якій воно було закрито); діалогове вікно "About", що налаштовується; файли .properties, що містять мітки в інтерфейсі користувача (використання файлів .properties є надійним способом збереження логіки коду окремо від тексту, який з'являється в інтерфейсі користувача додатку. Таке розділення, крім іншого, спрощує локалізацію програми).
27

Прив'язка елементів управління до значень в таблиці
В цьому розділі будуть продемонстровані функції прив'язки серії компонентів для скріплення значень елементів таблиці із станом доданих елементів управління. Це дозволить змінювати значення елементів таблиці за допомогою повзунків і прапорців.
Для прив'язки повзунків до відповідних елементів таблиці:
1.У формі натиснути правою кнопкою миші повзунок "Tire Size" і вибрати "Bind > value".
2.В списку "Binding Source" діалогового вікна "Binding", що розкривається вибрати
"masterTable".
3.В списку "Binding Expression", що розкривається вибрати "selectedElement > tiresize".
Рис.2. Прив'язка елементів управління до значень в таблиці
4.Натиснути правою кнопкою миші повзунок "Modernness" у формі і вибрати "Bind > value". Далі у списку "Binding Source" діалогового вікна "Binding", що розкривається вибрати "masterTable".
5.В списку "Binding Expression", що розкривається вибрати "selectedElement > modernness".
Для прив'язки прапорців до відповідних елементів таблиці необхідно:
1.Натиснути правою кнопкою миші прапорець "Spoiler" у формі і вибрати "Bind > selected". Далі у списку "Binding Source" діалогового вікна "Binding", що розкривається вибрати "masterTable".
2.В списку "Binding Expression", що розкривається вибрати "selectedElement > spoiler".
3.Для закриття діалогового вікна "Bind" натиснути кнопку "OK".
4.Натиснути правою кнопкою миші прапорець "Sun Roof" у формі і вибрати "Bind > selected". Далі у списку "Binding Source" діалогового вікна "Binding", що розкривається вибрати "masterTable".
5.В списку "Binding Expression", що розкривається вибрати "selectedRow > sunRoof".
6.Натиснути кнопку "OK".
Тепер можна змінювати значення бази даних за допомогою повзунка і прапорців.
28
Додавання значень у таблицю:
String data[][] = {{"s1","100"},{"s2","200"},{"s3","300"}}; String col[] = {"Name","code"};
DefaultTableModel model = new DefaultTableModel(data,col); jTable1.setModel(model);
model.insertRow(jTable1.getRowCount(),new Object[]{"Останній","600"});
Для будь-яких дій з даними бази даних необхідно здійснити підключення до БД:
Statement stmt = null; Connection connection =
DriverManager.getConnection("jdbc:derby://localhost:1527/mydb", "user", "user");
stmt = connection.createStatement();
Та виконати запит:
ResultSet rs = null;
String query ="Select IMJA From GURNAL Where PRIZV= '"+jTextField1.getText()+"'";
rs = (ResultSet) stmt.executeQuery(query);
Після чого, можна вивести результат запиту. Для коректної роботи з БД, у програмі необхідно прописати імпорт бібліотек:
import java.sql.*; import javax.swing.*; import java.awt.*;
import java.sql.SQLException.*; import javax.swing.table.*; import java.util.logging.Logger; import java.util.logging.*; import javax.swing.table.*;
Приклад пошуку у БД:
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { jLabel1.setText("Такого прізвища немає!");
Statement stmt = null; ResultSet rs = null; try {
Connection connection = DriverManager.getConnection("jdbc:derby://localhost:1527/mydb", "user", "user");
stmt = connection.createStatement();
String query ="Select IMJA From GURNAL Where PRIZV= '"+jTextField1.getText()+"'"; rs = (ResultSet) stmt.executeQuery(query);
try {
while (rs.next()) {
29
jLabel1.setText("Результат пошуку" + rs.getString("IMJA"));
}
if (rs==null) {
jLabel1.setText("Такого прізвища немає!");
}
} catch (SQLException ex) { Logger.getLogger(Gurnal1View.class.getName()).log(Level.SEVERE, null, ex); jLabel1.setText("Такого прізвища немає!");
}
} catch (SQLException ex) { Logger.getLogger(Gurnal1View.class.getName()).log(Level.SEVERE, null, ex); jLabel1.setText("Такого прізвища немає!");
}
}
Для реалізації додавання та вилучення записів, потрібно змінити запит Select на Insert Into чи Delete відповідно.
Видалення:
PreparedStatement stmt = null; ResultSet rs = null;
try {
Connection connection = DriverManager.getConnection("jdbc:derby://localhost:1527/mydb", "myuser", "mypass");
stmt = connection.prepareStatement("DELETE from car3 where id=1"); } catch (SQLException ex) {
Logger.getLogger(DesktopApplication1View.class.getName()).log(Level.SEVERE, null,
ex);
}
Додавання:
PreparedStatement stmt = null; ResultSet rs = null;
try {
Connection connection = DriverManager.getConnection("jdbc:derby://localhost:1527/mydb", "myuser", "mypass");
stmt = connection.prepareStatement("INSERT INTO car3 (MAKE3, MODEL3, PRICE3) VALUES('223', '3sadsad',345)");
} catch (SQLException ex) { Logger.getLogger(DesktopApplication1View.class.getName()).log(Level.SEVERE, null,
ex);
}
30