№
|
Процедура
|
Функціональне
призначення
|
1
|
Private
void jmenuitem1actionperformed(java.awt.event.actionevent evt)
|
Завантаження
файлів
|
2
|
Private
void jmenuitem2actionperformed(java.awt.event.actionevent evt))
|
Вихід з
програми
|
3
|
private
void formwindowopened(java.awt.event.windowevent evt)
|
Відкриття
головного вікна
|
Private
void jbutton1actionperformed(java.awt.event.actionevent evt)
|
Запуск
інтерактивної системи
|
5
|
Private
void jmenu2mouseclicked(java.awt.event.mouseevent evt)
|
Відкриття
вікна довідки
|
6
|
Public
static void main(string args[])
|
Головна
функція прогами
|
7
|
Public
void run()
|
Функція,
яка запускає таймер
|
3.Опис компонентів програми і створення
проекту
3.1 Опис компонентів програми
Побудувавши математичну модель задачі і розробивши меню програми
перейдемо до структури нашої майбутньої програми.
.наша програма буде створюватись на основі мви програмування високого
рівня java, використовуючи компоненти java swing/
Java (вимовляється джава; інколи - ява) - об'єктно-орієнтована
<https://uk.wikipedia.org/wiki/%D0%9E%D0%B1%27%D1%94%D0%BA%D1%82%D0%BD%D0%BE-%D0%BE%D1%80%D1%96%D1%94%D0%BD%D1%82%D0%BE%D0%B2%D0%B0%D0%BD%D0%B5_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D1%83%D0%B2%D0%B0%D0%BD%D0%BD%D1%8F>мова
програмування <https://uk.wikipedia.org/wiki/%D0%9C%D0%BE%D0%B2%D0%B0_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D1%83%D0%B2%D0%B0%D0%BD%D0%BD%D1%8F>,
випущена компанією sun microsystems
<https://uk.wikipedia.org/wiki/Sun_Microsystems> у1995
<https://uk.wikipedia.org/wiki/1995> році як основний компонент платформи
java
<https://uk.wikipedia.org/wiki/%D0%9F%D0%BB%D0%B0%D1%82%D1%84%D0%BE%D1%80%D0%BC%D0%B0_Java>.
Зараз мовою займається компанія oracle
<https://uk.wikipedia.org/wiki/Oracle_Corporation>, яка придбала sun microsystems
<https://uk.wikipedia.org/wiki/Sun_Microsystems> у2009
<https://uk.wikipedia.org/wiki/2009> році. Синтаксис мови багато в чому
схожий на
<https://uk.wikipedia.org/wiki/C_(%D0%BC%D0%BE%D0%B2%D0%B0_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D1%83%D0%B2%D0%B0%D0%BD%D0%BD%D1%8F)>
та c++ <https://uk.wikipedia.org/wiki/C%2B%2B>. У офіційній реалізації
java-програми компілюються
<https://uk.wikipedia.org/wiki/%D0%9A%D0%BE%D0%BC%D0%BF%D1%96%D0%BB%D1%8F%D1%82%D0%BE%D1%80>
у байт-код <https://uk.wikipedia.org/wiki/%D0%91%D0%B0%D0%B9%D1%82-%D0%BA%D0%BE%D0%B4>,
який при виконанні інтерпретується віртуальною машиною
<https://uk.wikipedia.org/wiki/%D0%92%D1%96%D1%80%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D0%B0_%D0%BC%D0%B0%D1%88%D0%B8%D0%BD%D0%B0_Java>
для конкретної платформи.надає компілятор java та віртуальну машину java
<https://uk.wikipedia.org/wiki/%D0%92%D1%96%D1%80%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D0%B0_%D0%BC%D0%B0%D1%88%D0%B8%D0%BD%D0%B0_Java>,
які задовольняють специфікації java community process <https://uk.wikipedia.org/wiki/Java_Community_Process>,
під ліцензією gnu general public license
<https://uk.wikipedia.org/wiki/GNU_General_Public_License>.
Мова значно запозичила синтаксис із
<https://uk.wikipedia.org/wiki/C_(%D0%BC%D0%BE%D0%B2%D0%B0_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D1%83%D0%B2%D0%B0%D0%BD%D0%BD%D1%8F)>
і c++ <https://uk.wikipedia.org/wiki/C%2B%2B>. Зокрема, взято за основу
об'єктну модель с++, проте її модифіковано. Усунуто можливість появи деяких
конфліктних ситуацій, що могли виникнути через помилки програміста та полегшено
сам процес розробки об'єктно-орієнтованих програм. Ряд дій, які в с/c++ повинні
здійснювати програмісти, доручено віртуальній машині. Передусім java
розроблялась як платформо-незалежна мова, тому вона має менше низькорівневих можливостей
для роботи з апаратним забезпеченням. За необхідності таких дій java дозволяє
викликати підпрограми, написані іншими мовами програмування- інструментарій для
створення графічного інтерфейсу користувача (gui
<https://uk.wikipedia.org/wiki/GUI>) мовою програмування java
<https://uk.wikipedia.org/wiki/Java>. Це частина бібліотеки базових
класів java
<https://uk.wikipedia.org/w/index.php?title=JFC&action=edit&redlink=1>
(jfc, java foundation classes).розробляли для забезпечення функціональнішого
набору програмних компонентів для створення графічного інтерфейсу користувача
<https://uk.wikipedia.org/wiki/%D0%93%D1%80%D0%B0%D1%84%D1%96%D1%87%D0%BD%D0%B8%D0%B9_%D1%96%D0%BD%D1%82%D0%B5%D1%80%D1%84%D0%B5%D0%B9%D1%81_%D0%BA%D0%BE%D1%80%D0%B8%D1%81%D1%82%D1%83%D0%B2%D0%B0%D1%87%D0%B0>,
ніж у ранішого інструментарію awt <https://uk.wikipedia.org/wiki/AWT>.
Компоненти swing підтримують специфічні look-and-feel
<https://en.wikipedia.org/wiki/Look_and_feel>модулі, що динамічно
підключаються. Завдяки ним можлива емуляція графічного інтерфейсу платформи
(тобто до компоненту можна динамічно підключити інші, специфічні для даної
операційної системи вигляд і поведінку). Основним недоліком таких компонентів є
відносно повільна робота, хоча останнім часом це не вдалося підтвердити через
зростання потужності персональних комп'ютерів. Позитивна сторона -
універсальність інтерфейсу створених програм на всіх платформах
Опишемо
основні компоненти java swing, що будуть
використовуватись в нашій програмі:
1. Мітки
Мітка (jlabel) - це рядок тексту або
зображення, що розміщується в компоненті. Це один з найпростіших компонентів
графічного інтерфейсу. Вони дозволяють задавати вирівнювання тексту (вправо,
зліва, по-центру) в середині компонента та не мають особливих подій, які б асоціювалися
з ними.
Наступний код демонструє різноманітні способи
створення міток.
Import
javax.swing.icon;javax.swing.imageicon;javax.swing.jframe;javax.swing.jlabel;javax.swing.jpanel;javax.swing.swingconstants;class
labels {static void main(string[] args) {frame = new labelframe();.setsize(150,
200);.setdefaultcloseoperation(jframe.exit_on_close);.setvisible(true);
}
}labelframe extends jframe{
//створюємо панельpanel=new jpanel();(){
// вирівнювання за замовчуванням (center)label1 = new jlabel("багато левів,
");
// вирівнювання влівоlabel2 = new jlabel("тигрів
з тигрицями", swingconstants.left);
// мітка без тексту, вирівнювання за замовчуваннямlabel3 = new jlabel();
// створюємо іконку
icon icon = new imageicon("icon.gif");
// створюємо мітку із зображеннямlabel4 = new jlabel(icon);
// задаємо текст для label3.settext("і ведмедів");
// встановлюємо вирівнювання.sethorizontalalignment(swingconstants.right);
//додаємо мітки в панель.add(label1);.add(label2);.add(label3);.add(label4);
//додаємо панель
у фрейм
this.add(panel);
}
}
2. Кнопки
Кнопки вже застосовувалися раніше у прикладах.
У swing їх реалізовує компонент jbutton. Кнопка генерує подію actionevent, коли
на неї натискають. Щоб обробити цю подію в програмі реєструється відповідний
обробник actionlistener, який повинен реалізовувати метод actionperformed().
Метод actionperformed отримує в якості аргумента подію, що відбулася. Крім
мітки на кнопці може бути розміщене зображення. Клас jbutton має відповідний
конструктор для задання напису, зображення або обох зразу. Завантаження
зображення здійснює зручний у використанні клас imageicon. Наступний приклад
демонструє створення кнопки із зображенням та обробки події натиснення кнопки.
java.awt.flowlayout;java.awt.event.actionevent;java.awt.event.actionlistener;javax.swing.icon;javax.swing.imageicon;javax.swing.jbutton;javax.swing.jframe;javax.swing.jlabel;class
picturebutton {static void main(string[] args) {frame = new
buttonframe();.setsize(300,
100);.setdefaultcloseoperation(jframe.exit_on_close);.setvisible(true);
}
}buttonframe extends jframe{label=new jlabel();i=0;(){icon =
new imageicon("icon.gif");button = new jbutton(icon);
// додаємо обробник подій, що визначається у внутрішньому
класі.addactionlistener(new actionlistener( ) {void actionperformed(actionevent
ae) {++;.settext("натиснуто разів: "+ i);
}
});
//встанолюємо менеджер розташування(new flowlayout(
));(button);(label);
}
}
3. Таблиця
Дуже часто виникає необхідність в додатках
показати дані у вигляді таблиці з певною кількістю рядків і стовпців. У java
swing для відображення табличних даних використовується комопнент jtable.
Jtable всередині себе не містить дані, а служить тільки для їх відображення.
Розглянемо простий приклад створення і
використання таблиці. Для цього ми створимо таблицю, заповнимо її тестовими
даними і розмістимо на панелі прокрутки. Розміщення таблиці на панелі прокрутки
- це звичайна практика, тому що це зручно і красиво.
Існує кілька способів того, як сказати jtable,
які дані і стовпці відображувати. Тут ми розглянемо найпростіший спосіб. Для
початку визначимо, які стобци ми хочемо показувати в таблиці. Для прикладу я
взяв стовпці провідника windows - name (ім'я файлу або папки), last modified
(дата останньої модифікації), type (тип) і size (розмір).
Створення
проекту
Розібравшись з основними компонентами нашої
майбутньої програми можна приступити до її програмування. Як було сказано вище
програма буде створюватись за допомогою мови програмування java. Середовище для
програмування було використано netbeans ide 8.1. Для початку програмування потрібно запустити
дане середовище і за допомогою вкладок файл-> cоздать проекти, створити
новий прект. Після вибраних дій перед нами з'явиться вікно де ми вибираєм приложение java. Після цього перед нами
відкриється середовище програмуваня де ми можемо вводити код програми(див рис
4.2.1). Лістинг
програми наведений у додатку а
Рис.3.2.1 вікно середовища програмування netbeans ide 8.1
4.Опис програми і тестування програми
4.1 Опис програми. Тестовий запуск
Після запрограмування нашого проекту його необхідно відкомпілювати. Для
цього натискаємо клавішу f6.
Якщо програма не містить помилок то компілятор видасть повідомлення про успішне
завершення і запустить наш проект на виконання. Тут ми вже зможемо протестувати
створену програму. Тестування повинне забезпечити перевірку працездатності
функцій для всіх варіантів вхідних даних.
Наша програма розпочинатиметься виводом на екран монітора комп’ютера меню
проекта. Тут перед нами з’явиться вікно, в якому ми зможемо вибрати таблицю, з
якою будем працювати. Початкове вікно нашої програми зображено на рис. 4.1.1.
Рис.4.1.1. Головне вікно програми
Тут нам показано таблицю, в якій будуть зберігатися наші
завантажені файли. Для завантаження нового файлу
необхідно виконати наступні команди:файл->додати файл. Після натиснення клавіши
відкриється нове вікно (див рис 4.1.2)
Рис.4.1.2. Вікно завантаження нового файлу
В даному вікні ми можемо вибрати небхідний для лекції файл і
натиснути кнопку open.
Після цього файл занесеться до таблиці і ми зможемо задати йому певні
параметри: номер, предмет, тема, час відкриття
Рис.4.1.3. Вікно програми із завантаженими
файлами
Після завантаження даних ми можемо виконати ряд дій по роботі
з заданою таблицею, зокрема: задати йому певні параметри: номер, предмет, тема, час
відкриття. Вибрати сортування з темою, часом, номером, предметом.
Рис.4.1.4. Вікно cортування даних
Як ми бачимо у нас змінився порядок розташування рядків. Отже сортування даних спрацювало. Тепер щоб наша програма працювала і
слідкувала за часом та відкривала файли потрібно запустити таймер. Для цього
необхідно натиснути кнопку «запустити». Після цього з’явиться вікно з
попередженням, що інтерактивна система «лектор-проектор» запущена(див рис.4.1.5).
Рис.4.1.5. Вікно-повідомлення
Рис.4.1.6. Вікно-довідка
Після завершення роботи з програмою натискаємо кнопку
файл->вийти і виходимо з прогами.
Провівши тестування створеної програми можна зробити висновок, що програма
працює без помилок і забезпечує повноцінну роботу при будь-яких вхідних даних.
.2 Тестування
програмного продукту та його результати
Тестування програмного забезпечення (англ.
<https://uk.wikipedia.org/wiki/%D0%90%D0%BD%D0%B3%D0%BB%D1%96%D0%B9%D1%81%D1%8C%D0%BA%D0%B0_%D0%BC%D0%BE%D0%B2%D0%B0>
Software testing) - це процес технічного дослідження, призначений для виявлення
інформації про якість продукту відносно контексту, в якому він має
використовуватись. Техніка тестування також включає як процес пошуку помилок
<https://uk.wikipedia.org/wiki/%D0%91%D0%B0%D2%91> або інших дефектів,
так і випробування програмних складових з метою оцінки. Може оцінюватись:
· Відповідність вимогам,
якими керувалися проектувальники та розробники
· Правильна відповідь для
усіх можливих вхідних даних
· Виконання функцій за
прийнятний час
· Практичність
· Сумісність з програмним
забезпеченням та операційними системами
· Відповідність задачам
замовника.
Оскільки число можливих тестів навіть для нескладних програмних
компонент практично нескінченне, тому стратегія тестування полягає в тому, щоб
провести всі можливі тести з урахуванням наявного часу та ресурсів. Як
результат програмне забезпечення (пз) тестується стандартним виконанням
програми з метою виявлення баґів <https://uk.wikipedia.org/wiki/%D0%91%D0%B0%D2%91>
(помилок або інших дефектів).
Тестування пз може надавати об'єктивну, незалежну інформацію про
якість пз, ризики відмови, як для користувачів так і для замовників.
Тестування може проводитись, як тільки створено виконуваний код
(навіть частково завершено). Процес розробки
<https://uk.wikipedia.org/wiki/%D0%9C%D0%B5%D1%82%D0%BE%D0%B4%D0%BE%D0%BB%D0%BE%D0%B3%D1%96%D1%8F_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D1%83%D0%B2%D0%B0%D0%BD%D0%BD%D1%8F>
зазвичай передбачає коли та як буде відбуватися тестування. Наприклад, при
поетапному процесі, більшість тестів відбувається після визначення системних
вимог і тоді вони реалізуються в тестових програмах. На противагу цьому,
відповідно до вимог гнучкої розробки пз <https://uk.wikipedia.org/wiki/%D0%93%D0%BD%D1%83%D1%87%D0%BA%D0%B0_%D1%80%D0%BE%D0%B7%D1%80%D0%BE%D0%B1%D0%BA%D0%B0_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BD%D0%BE%D0%B3%D0%BE_%D0%B7%D0%B0%D0%B1%D0%B5%D0%B7%D0%BF%D0%B5%D1%87%D0%B5%D0%BD%D0%BD%D1%8F>,
програмування і тестування часто відбувається одночасно.
Тестування - це одна з технік контролю якості, що включає в себе
· Планування робіт (test
management)
· Проектування тестів (test
design)
· Виконання тестування
(test execution)
· Аналіз отриманих результатів
(test analysis).
верифікація (verification)
<https://uk.wikipedia.org/wiki/%D0%92%D0%B5%D1%80%D0%B8%D1%84%D1%96%D0%BA%D0%B0%D1%86%D1%96%D1%8F_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BD%D0%BE%D0%B3%D0%BE_%D0%B7%D0%B0%D0%B1%D0%B5%D0%B7%D0%BF%D0%B5%D1%87%D0%B5%D0%BD%D0%BD%D1%8F>
- це процес оцінки системи або її компонентів з метою визначити чи
задовольняють результати поточного етапу розробки умовам, сформованим на
початку цього етапу. Тобто чи виконуються цілі, терміни, завдання з розробки проекту,
визначені на початку поточної фази. Валідація (validation)
<https://uk.wikipedia.org/wiki/%D0%92%D0%B0%D0%BB%D1%96%D0%B4%D0%B0%D1%86%D1%96%D1%8F_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BD%D0%BE%D0%B3%D0%BE_%D0%B7%D0%B0%D0%B1%D0%B5%D0%B7%D0%BF%D0%B5%D1%87%D0%B5%D0%BD%D0%BD%D1%8F>
- це визначення відповідності розроблюваного програмного забезпечення між
очікуваннями і потребами користувача, вимогам до системи.
План тестування (test plan) - це документ, що описує весь обсяг
робіт з тестування, починаючи з опису об'єкта, стратегії, розкладу, критеріїв
початку і закінчення тестування, до необхідного в процесі роботи обладнання,
спеціальних знань, а також оцінки ризиків з варіантами їх вирішення.
Тест дизайн (test design) - це етап процесу тестування програмного
забезпечення, на якому проектуються і створюються тестові випадки (тест кейси),
відповідно до визначених раніше критеріями якості та цілями тестування.
Тестовий випадок (test case) - це документ, що описує сукупність
кроків, конкретних умов і параметрів, необхідних для перевірки реалізації
тестованої функції або її частини.
Баг/дефект репорт (bug report) - це документ, що описує ситуацію
або послідовність дій (steps), що призвела до некоректної роботи об'єкта
тестування (misbehavior), із зазначенням причин та очікуваного результату
(expected result).
Тестове покриття (test coverage) - це одна з метрик оцінки якості
тестування, що представляє із себе щільність покриття тестами вимог або коду,
що виконується.
Деталізація тест кейсів (test case specification) - це рівень
деталізації опису тестових кроків і необхідного результату, при якому
забезпечується розумне співвідношення часу проходження до тестового покриття.
Час проходження тест кейса (test case pass time) - це час від
початку проходження кроків тест кейса до отримання результату тесту.
На
етапі тестування визначаються споживчі властивості програмного продукту.
Успішне проведення повномасштабного тестування є запорукою його якості та
ефективного використання під час експлуатації.
План
тестування програмного продукту складено з наступних міркувань:
- Визначення повноти реалізації всіх
функціональних вимог;
- Перевірка виконання критеріїв безпеки;
- Доведення його працездатності, стійкого
виконання та коректного завершення всіх операцій незалежно від дій користувача.
Тестування програмного продукту складалося з таких кроків:
. Контроль коректності керування станом інтерфейсу
головного вікна.
. Контроль коректності відображення лекційного
матеріалу.
. Контроль коректності формування уроку.
. Контроль коректності відображення результатів уроку
. Контроль коректності моніторингу під керуванням
користувача.
Результати тестування підтвердили коректність виконання всіх
функціональних та кваліфікаційних вимог.
Висновки
Програмний продукт «інтерактивна система «лектор-проектор»» розроблено на основі
індивідуального завдання до курсової роботи. Він реалізує формування електронного
урока
та презентацію лекційного
матеріалу по темах визначених користувачем.
Програмний продукт розроблено з використанням в якості
інструментальних засобів інтерактивного об’єктно-орієнтованого середовища
програмування netbeans, мовою java, що відповідає сучасним тенденціям розвитку технологій розробки
системного програмного забезпечення.
Випробування програмного продукту продемонстрували його працездатність та відповідність заданим
функціональним, кваліфікаційним та експлуатаційним вимогам.
Додаток
Лістинг main
форми
Import static
com.sun.xml.internal.fastinfoset.alphabet.builtinrestrictedalphabets.table;java.io.file;java.sql.connection;java.sql.resultset;java.sql.statement;java.text.dateformat;java.text.simpledateformat;java.util.date;java.util.timer;java.util.timertask;javax.swing.table.defaulttablemodel;javax.swing.jfilechooser;javax.swing.joptionpane;javax.swing.rowsorter;javax.swing.table.tablemodel;javax.swing.table.tablerowsorter;class
main extends javax.swing.jframe {i;rowcount;connection;stmt;rs;model = new
defaulttablemodel();[] row = new object[6];main() {();
}
@suppresswarnings("unchecked")
// <editor-fold defaultstate="collapsed"
desc="generated code"> void initcomponents() {= new
javax.swing.jfilechooser();= new javax.swing.jscrollpane();= new
javax.swing.jtable();= new javax.swing.jbutton();= new javax.swing.jmenubar();=
new javax.swing.jmenu();= new javax.swing.jmenuitem();= new
javax.swing.jmenuitem();= new
javax.swing.jmenu();.setname("filechooser"); //
noi18n(javax.swing.windowconstants.exit_on_close);(new
java.awt.event.windowadapter() {void windowopened(java.awt.event.windowevent
evt) {(evt);
}
});.setmodel(new javax.swing.table.defaulttablemodel(object
[][] {
{null, null, null, null},
{null, null, null, null},
{null, null, null, null},
{null, null, null, null}
},string [] {
"title 1", "title 2", "title
3", "title 4"
}
));.setviewportview(jtable1);.settext("запустити");.settooltiptext("");.addactionlistener(new
java.awt.event.actionlistener() {void
actionperformed(java.awt.event.actionevent evt) {actionperformed(evt);
}
});.settext("файл");.settext("додоти
файл");.addactionlistener(new java.awt.event.actionlistener() {void
actionperformed(java.awt.event.actionevent evt) {actionperformed(evt);
}
});.add(jmenuitem1);.settext("вийти");.addactionlistener(new
java.awt.event.actionlistener() {void
actionperformed(java.awt.event.actionevent evt) {actionperformed(evt);
}
});.add(jmenuitem2);.add(jmenu1);.settext("довідка");.addmouselistener(new
java.awt.event.mouseadapter() {void mouseclicked(java.awt.event.mouseevent evt)
{mouseclicked(evt);
}
});.addactionlistener(new java.awt.event.actionlistener()
{void actionperformed(java.awt.event.actionevent evt) {actionperformed(evt);
}
});.add(jmenu2);(jmenubar1);.swing.grouplayout layout = new
javax.swing.grouplayout(getcontentpane());().setlayout(layout);.sethorizontalgroup(.createparallelgroup(javax.swing.grouplayout.alignment.leading)
.addcomponent(jscrollpane1,
javax.swing.grouplayout.default_size, 537, short.max_value)
.addgroup(javax.swing.grouplayout.alignment.trailing,
layout.createsequentialgroup()
.addcontainergap(javax.swing.grouplayout.default_size, short.max_value)
.addcontainergap())
);.setverticalgroup(.createparallelgroup(javax.swing.grouplayout.alignment.leading)
.addgroup(javax.swing.grouplayout.alignment.trailing,
layout.createsequentialgroup()
.addcomponent(jscrollpane1,
javax.swing.grouplayout.default_size, 357, short.max_value)
.addpreferredgap(javax.swing.layoutstyle.componentplacement.related)
.addcomponent(jbutton1))
);();
}// </editor-fold>
void jmenuitem1actionperformed(java.awt.event.actionevent
evt) { returnval = filechooser.showopendialog(this);(returnval ==
jfilechooser.approve_option) {file =
filechooser.getselectedfile();path=file.getabsolutepath();name=
filechooser.getname(filechooser.getselectedfile());=path.replaceall("\\\\",
"\\\\\\\\");++;[2]=path;[1]=name;.addrow(row);
}
} void jmenuitem2actionperformed(java.awt.event.actionevent
evt) { .exit(0); // todo add your handling code here:
} void formwindowopened(java.awt.event.windowevent evt) { []
columns ={"номер","назва","шлях","предмет","тема","час"};.setcolumnidentifiers(columns);.jtable1.setmodel(model);<tablemodel>
sorter = new
tablerowsorter<tablemodel>(model);.jtable1.setrowsorter(sorter);// todo
add your handling code here:
} void jmenu2actionperformed(java.awt.event.actionevent evt)
{
// todo add your handling code here:
} void jbutton1actionperformed(java.awt.event.actionevent
evt) { .showmessagedialog(null, "інтерактивна
система\"лектор-проектор\" - запущена");timer time = new
timer();.schedule(new timertask() {i = 0;j=0;
@overridevoid run() { //перезагружаем метод run в котором
делаете то что вам надо= model.getrowcount(); .out.println(rowcount);now = new
date();formatter = new simpledateformat("hh:mm:ss");time =
formatter.format(now);.out.println(time);(j<rowcount){strpath =
model.getvalueat(j, 2).tostring();strtime = model.getvalueat(j,
5).tostring();.out.println(strpath);(time.contains(strtime)){{.getruntime().exec("rundll32
url.dll, fileprotocolhandler "+strpath);.out.println("файл
відкрито");
} catch (exception e)
{.showmessagedialog(null, "error");
} ++;;
}
}= i + 1;
}
}, 1000, 1000);
// todo add your handling code here:
} void jmenu2mouseclicked(java.awt.event.mouseevent evt) {
dovidka().setvisible(true); // todo add your handling code here:
}
/**
* @param args the command line arguments
*/static void main(string args[]) {
/* set the nimbus look and feel */
//<editor-fold defaultstate="collapsed"
desc=" look and feel setting code (optional) ">
/* if nimbus (introduced in java se 6) is not available, stay
with the default look and feel.
* for details see
http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
*/{(javax.swing.uimanager.lookandfeelinfo info :
javax.swing.uimanager.getinstalledlookandfeels())
{("nimbus".equals(info.getname()))
{.swing.uimanager.setlookandfeel(info.getclassname());;
}
}
} catch (classnotfoundexception ex)
{.util.logging.logger.getlogger(main.class.getname()).log(java.util.logging.level.severe,
null, ex);
} catch (instantiationexception ex)
{.util.logging.logger.getlogger(main.class.getname()).log(java.util.logging.level.severe,
null, ex);
} catch (illegalaccessexception ex)
{.util.logging.logger.getlogger(main.class.getname()).log(java.util.logging.level.severe,
null, ex);
} catch (javax.swing.unsupportedlookandfeelexception ex)
{.util.logging.logger.getlogger(main.class.getname()).log(java.util.logging.level.severe,
null, ex);
}
//</editor-fold>
//</editor-fold>
/* create and display the form */.awt.eventqueue.invokelater(new
runnable() {void run() {main().setvisible(true);
}
});
}
// variables declaration - do not modify
javax.swing.jfilechooser filechooser;javax.swing.jbutton
jbutton1;javax.swing.jmenu jmenu1;javax.swing.jmenu jmenu2;javax.swing.jmenubar
jmenubar1;javax.swing.jmenuitem jmenuitem1;javax.swing.jmenuitem
jmenuitem2;javax.swing.jscrollpane jscrollpane1;javax.swing.jtable jtable1;
// end of variables declaration
}