
- •Занятие 4. "Версткаweb-страницы с помощью html и css"
- •Index.Html, fon.Png, prog.Jar
- •Занятие 6. "Создание поздравительного блокировщика Windows.Реализация интерфейса"
- •Import javax.Swing.*;
- •Import java.Awt.*;
- •Import java.Awt.Event.*;
- •Import javax.Swing.*;
- •Import java.Awt.*;
- •Import java.Awt.Event.*;
- •// Отключение выведение рамки окна -
- •If (str.Equals(test))
- •Занятие 7. "Создание поздравительного блокировщика Windows.Завершение"
- •Import javax.Swing.*;
- •Import java.Awt.*;
- •Import java.Awt.Event.*;
- •// Подключение обработчика события при закрытии окна
- •Занятие 8. "Визуальные средства разработки. Создание интерфейса приложения"
- •Занятие 9. "Работа с файловой системой из Java. Создание,удаление, переименование файлов"
- •If (str.IsEmpty())
- •Занятие 11. "Базы данных.Язык запросов sql. Работа с базой данных MySqLиз Java"
- •Import java.Sql.*;
Занятие 7. "Создание поздравительного блокировщика Windows.Завершение"
На этом занятии мы закончим писать программу поздравительный блокировщик Windows, начатую на прошлом занятии.
Вспомним вкратце принцип построения блокировщика и запустим приложение.
На прошлом занятии мы создали интерфейс блокировщика, выводящий четыре сообщения, текстовое поле и кнопку"Ввести". При нажатии на кнопку происходит проверка правильности введённого имени(см. рис. 7.1).
Рис. 7.1
Имя, которое необходимо ввести, указывается в программном коде. В нашем случае, имя –Маша. Если имя указывается правильно, при нажатии на кнопку, появляется сообщение:"Примите ещё раз наши поздравления!!!Всего доброго!"(см. рис. 7.2):
Рис. 7.2
При нажатии на кнопку"Ok"приложение завершается. Если имя вводится неправильно, появляется сообщение "Ответ неверный!"(см. рис. 7.3):
Рис. 7.3
Окно блокировки при этом не снимается.
Условия, необходимые для правильного построения блокировщика следующие:
создается окно, оно полностью закрывает весь экран. Отображение рамки окна отключено. Окно выводится без рамки:сверху нет наименования окна, нет возможности его свернуть, развернуть или закрыть.
окно блокировщика всегда должно отображаться поверх всех остальных окон.Таким образом, у пользователя не будет возможности снять блокировщик.
Если пользователь начнёт нажимать различные клавиши, он может случайно вызвать другое приложение,оно появится поверх окна блокировщика.Поэтому окно блокировщика необходимо постоянно выводить поверх других окон. Для этого используем таймер, выводящий окно блокировщика поверх других окон много раз в секунду. Даже если пользователю удастся вызвать какое-то другое приложение,например, Диспетчер задачWindows, блокировщик мгновенно закроет это окно.
Такой таймер мы и создадим ниже. Интерфейс приложения уже закончен. Конечно, его можно оформить более красочно, добавив какие-нибудь изображения. Задача программиста –грамотно написать программу блокировщика. На данный момент,при нажатии клавиши Ctrl+Alt+Delповерх окна блокировщика в программе открываетсяДиспетчер задач(см. рис. 7.4).
Рис. 7.4
Диспетчер задач позволит сбросить блокировщик, для этого достаточно перейти на закладку"Процессы". В списке на закладке находятся запущенные процессы, один них –блокировщик. Если пролистать список, можно найти процесс с именем javaw.exe, запускаемый файл,executable file. Выбрав этот процесс и нажав кнопку "Завершить процесс",можно закрыть окно блокировщика.
Обратите внимание, когда окно блокировщика выводится наверх,остальные окна остаются на экране и отображаются под ним.
Таким образом, если добавить в приложение таймер, выводящий окно блокировщика наверх несколько раз в секунду, в случае вызова Диспетчера задач или какого-то другого приложения, окно блокировщика мгновенно вновь перекроет его сверху.
Для того чтобы произвести действие помещения окна блокировщика поверх других окон,воспользуемся новой библиотекой, под названием JNA.Скачаем её по адресу (см. рис.7.5).
Рис. 7.5
Эта библиотека поможет обратиться к функционалу операционной системы Windows.
Ранее мы использовали стандартные библиотеки Javaдля решения различных задач. При необходимости можно из Java-приложения обратиться к списку методов операционной системы Windows. Откроем браузер и перейдём по указанному адресу: http://jna.java.net(см. рис. 7.6). Слева в списке найдём ссылку:JNA. Переходим по ней (см. рис. 7.6).
Рис. 7.6
Появляется строка,предлагающая перейти ещё по одной ссылке.Переходим по ней (Github) (см. рис. 7.6).
Далее, идём вниз, чтобы скачать два архива: jna.jarи platform.jar(см. рис. 7.7). Их нужно подключить к проекту для возможности использования дополнительного функционала, не установленного в стандартном пакете разработчика Java.
Рис. 7.7
Основной функционал мы устанавливали на самом первом занятии.
Скачиваем архивы и закрываем окно браузера.
Переходим в папку с загрузками из браузера, указанную в настройках браузера для помещения скачиваемых файлов.
Открываем папку загрузки. Здесь находится два jar-архива(см. рис. 7.8).
Рис. 7.8
Для удобства поместим их в корень диска C:\. Вставляем сюда эти две библиотеки.Переходим в среду разработки Eclipseи подключим эти две библиотеки к проекту. Открываем список проектов, находим текущий проект, выделяем его название мышью (см. рис.7. 9):
Рис. 7.9
Нажимаем правую клавишу и переходим в Свойства(см. рис. 7.10):
Рис. 7.10
Далее –на закладку Путь компоновки Java (см. рис.7.11). Слева в списке выбираем Путь компоновки Java.
Рис. 7.11
Здесь переходим на закладку Библиотеки (см. рис. 7.11), нажимаем кнопку Добавить внешние JAR (см. рис.7.11).
jna.jar и platform.jar –это внешниеjar-файлы.
Переходим в корень дискаC:\ и выбираем два jar-файла в списке. Нажимаем открыть (см. рис. 7.12):
Рис. 7.12
Видим в списке два новыхjar-файла (см. рис. 7.13):
Рис. 7.13
Нажимаем кнопку "Ok".Посмотрим структуру проекта. Добавились два внешних jar-файла (см. рис.7.14).
Рис. 7.14
Начиная с этого момента,функционал, находящийся в этих файлах,доступен в нашем приложении. По такому же принципу подключается и любая другая внешняя библиотека, необходимая для работы, если используется функционалJava, не включенный в стандартную поставку.
После подключения внешних jar-файлов для возможности задействовать новый функционал нужно подключить четыре строкиimport,Здесь содержатся необходимые нам классы из добавленныхjar-файлов.
После подключения новых четырёх строк, функционал, находящийся в подключаемых классах, стал доступен в приложении, как, например, функционал библиотеки javax.swing (выделен жирным шрифтом):
// Подключение необходимых библиотек