Разработка приложения на платформе java

Разработка интерфейса приложения с насыщенным графическим интерфейсом на платформе java. Обработка действий пользователя и создание элементов программного интерфейса. Редактирование данных в TableView. Анализ динамических возможностей веб-технологий.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 16.02.2019
Размер файла 286,9 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

Федеральное агентство железнодорожного транспорта

Омский государственный университет путей сообщения

Кафедра «Автоматика и системы управления»

Пояснительная записка к курсовой работе

по дисциплине «Объектно-ориентированное программирование»

Разработка приложения на платформе java

Студентка А.А. Орлова

Руководитель - доцент кафедры АиСУ

Е.А. Альтман

Омск 2017

Реферат

Цель курсовой работы - разработка приложения на платформе java.

Результатом курсовой работы является приложение.

Приложение разработано с использованием JetBrains. В процессе работы были рассмотрены вопросы разработки приложения.

Пояснительная записка выполнена в текстовом редакторе Microsoft Word 2008.

Содержание

  • Введение
    • 1. Разработка интерфейса приложения
    • 2. Обработка действий пользователя
    • 3. Создание элементов
    • 4. Компонент TableView
    • 5. Редактирование данных в TableView
  • Заключение
  • Библиографический список
  • Приложение

Введение

JavaFX - платформа на основе Java для создания приложений с насыщенным графическим интерфейсом. Может использоваться как для создания настольных приложений, запускаемых непосредственно из-под операционных систем, так и для интернет-приложений (RIA), работающих в браузерах, и для приложений на мобильных устройствах. JavaFX призвана заменить использовавшуюся ранее библиотеку Swing. Платформа JavaFX конкурирует с Microsoft Silverlight, Adobe Flash и аналогичными системами.

Полнофункциональные клиентские приложения на базе JavaFX 2.0 целиком разработаны на Java. Применяя Java и в серверной, и в клиентской части приложений, разработчики могут значительно снизить риски, упростив бизнес-решения. JavaFX 2.0 предоставляет веб-компонент, работающий на базе движка веб-рендеринга Webkit и позволяющий разработчикам эффективно комбинировать и объединять традиционные возможности Java и динамические возможности веб-технологий.

Разработчики могут использовать существующие библиотеки Java, получать доступ ко встроенным возможностям систем или эффективно подключаться к серверным связующим приложениям на базе Java Platform, Enterprise Edition (Java EE) из приложений JavaFX. Существующие приложения Java Swing могут быть легко модернизированы с помощью новых функций JavaFX, таких как полнофункциональный графический программный интерфейс, воспроизведение мультимедиа и встроенный веб-контент.

1. Разработка интерфейса приложения

Платформа JavaFX разработана для упрощения создания насыщенных графических интерфейсов для приложений работающих на различных операционных системах, браузерах и мобильных устройств.

Разработка под JavaFX поддерживается всему основными IDE для Java.

Платформа JavaFX может преобразовать созданный в «Scene Builder» «fxml» файл в инициализированные и готовые к работе объекты. Для этого нужно инициализировать платформу и загрузить «fxml» файл.

Главный класс приложения JavaFX должен наследовать класс «Application», который содержит методы по инициализации платформы. Для инициализации нужно вызвать метод «launch». После инициализации фреймворк вызывает метод «start», в котором и должна реализовываться основная логика приложения.

Метод «start» вызывается в потоке JavaFX платформы. Аргументом этого метода является объект класса «Stage», который является контейнером верхнего уровня приложения. Он содержит в себе заголовок окна и стандартные кнопки работы с окном (минимизация и т. п.). С помощью метода «setTitle» установим заголовок нашего приложения.

Все компоновщики являются наследниками класса «Parent», поэтому мы загружаем «fxml» файл в переменную такого типа. Для загрузки используется метод «load» класса «FXMLLoader» платформы. Для размещения нашей разметки в окно приложения помещаем его в специальный контейнер «Scene».

Для отображения окна приложения на экране нужно вызвать метод «show».

Для кода, относящегося к графическому интерфейсу, создадим пакет «view». Перенесем в него файл «sample.fxml» и переименуем его как «mainWin.fxml».

Этот файл можно редактировать как обычный код или открыть его в визуальном редакторе «Scene Builder».

Код программы представлен в приложении А.

Результат запуска приложения представлен в приложении B.

2. Обработка действий пользователя

приложение java программный интерфейс

Цель работы - изучить методы обработки команд пользователя.

Платформа JavaFX упрощает программирование обработки событий. Связь между источником и обработчиком можно указать прямо в «fxml» файле.

Источником событий будут элементы графического интерфейса -- кнопки, поля ввода и др. Обработку событий нужно запрограммировать. Для этого создадим класс, в котором будут методы по обработке событий. В этот же класс удобно включить ссылки на элементы графического интерфейса, причем инициализировать эти ссылки можно также с помощью «fxml» кода.

Создадим файл «MainWinController.java».

Аннотацией «@FXML» помечаются поля и методы, которые используются загрузчиком при обработке «fxml» файла. Для того, чтобы загрузчик нашел эти поля и методы, нужно указать класс «MainWinController» как контролер для «fxml» файла. Это можно сделать в «Scene Builder» на вкладке «Controller».

В поля будут записаны ссылки на соответствующие объекты, созданные по «fxml» описанию. В «Scene Builder» для текстовых полей в метках «Товар1:», «Товар2:» и «Всего:» на вкладке «Code» в поле «fx:id» выбрать соответствующие поля класса «MainWinController».

Метод «handleReset» должен вызываться при нажатии кнопки «Сброс», которую мы добавим в наше приложение. Для того, чтобы при загрузке «fxml» файла этот метод стал обработчиком нужного события, для кнопки «Сброс» во вкладке «Code» нужно выбрать этот метод в поле «On Action». Теперь, после запуска приложения и нажатия кнопки «Сброс» во всех текстовых полях установится значение «0».

Код программы представлен в приложении А.

Результат работы представлен в приложении B.

3. Создание элементов

Цель работы - изучить способы создания и настройки элементов интерфейса.

Создадим в проекте пакет «Component», а в нем класс «FloatField».

Теперь можно заменить текстовые поля на наш класс в «fxml» файле. Для этого добавим в заголовок следующую строку: «<?import Component.FloatField?>» и заменим все поля «TextField» на «FloatField».

Программа должна запуститься с новыми полями. Однако, при этом нельзя будет редактировать «fxml» файл в «Scene Builder».

Теперь нам нужно ограничить ввод пользователя вещественными числами. Обычный подход заключается в перехвате пользовательского ввода и его проверке.

К текстовому полю мы добавляем класс «TextFormatter<T>», который будет перехватывать ввод пользователя. При изменении текста будет вызываться метод этого класса, определенный в лямбда-функции. Аргументом s этого метода будет иметь тип «TextInputControl.Change» и он будет содержать информацию об изменении текста текстового поля.

Если в результате изменения получается пустой текст или корректное вещественное число, мы возвращаем изменение s и оно будет принято. Иначе мы возвращаем null и изменение текста будет отклонено.

Для создания модуля вызовем окно свойств проекта (сочетание клавиш «Ctrl-Shift-Alt-S») и перейдем в раздел «Modules». Создадим новый модуль, назовем его «Component». В основном модуле нашей программы на вкладке «Dependencies» добавим зависимость основного модуля от модуля «Component». Сохраним свойства и закроем их окно.

В папке «src» модуля «Component» создадим пакет «Control» и перенесем в него класс «FloatField». Наш проект остается работоспособным, основной модуль находит класс «FloatField» в зависимом модуле «Component».

На вкладе «Output Layout» проверяем содержимое «jar» файла артифакта. В нем должен находиться только элемент «Component compile output» -- результат компиляции компонента. Если поставить галочку «Build on make» артифакт будет собираться при каждой компиляции проекта. Это имеет смысл только во время отладки компонента. Обычно для сборки артифакта лучше давать команду из среды разработки в меню «Build-Build Artifacts».

После сборки артифакта в проекте в папке «out-artifacts» появится нужный «jar» файл. Его можно подключать как библиотеку к другим проектам или перетащить в «SceneBuilder» на вкладку «Library».

Код программы представлен в приложении А.

Результат запуска приложения представлен в приложении B.

4. Компонент TableView

Цель работы - ознакомиться с реактивными типами данных.

В «JavFX» имеется компонент «TableView», который позволяет выводить коллекцию POJO объектов в виде таблицы. Сформируем POJO класс для хранения затрат.

Для корректной работы POJO объекта большинству библиотек требуются методы чтения полей (getter), и записи (setter). Для реактивных типов требуется дополнительный метод доступа, который возвращает соответствующее свойство.

Методы доступа требуют большое количество кода, поэтому в современных средах разработки их можно автоматически генерировать. В IDE IntelliJ Idea для этого нужно использовать сочетания клавиш AltInsert, выбрать пункт Getter and Setter и выбрать поля, для которых нужно генерировать методы доступа.

Переделаем приложение для учета затрат.

Поле «table» содержит ссылку на таблицу с затратами, «nameColumn» -- на колонку с именем, «costColumn» -- со стоимостью.

В «Scene Builder» вставим таблицу в центр компоновщика, переименуем колонки как «Название» и «Цена» и привяжем элементы к полям контроллера.

Теперь этому методу передается коллекция объектов типа «Expence». Метод «setItems» добавляет коллекцию в таблицу, элементы коллекции соответствует строкам таблицы.

Для отображения отдельных ячеек таблицы используются объекты типа «CellValueFactory». Объект этого типа имеет один метод, поэтому при его создании можно воспользоваться лямбда-функцией.

Этому методу передается объект типа «CellData», который содержит информацию как о самой ячейке (номер строки, столбца и т.д.), так и об объекте, который нужно отобразить. С помощью метода «getValue» мы получаем отображаемый объект (типа «Expence»). В нашем примере мы может без дополнительных действий вернуть соответствующей свойство объекта («nameProperty» или «costProperty»).

Нужно переделать главный класс программы («Main»), чтобы он содержал коллекцию затрат, и заполнить эту коллекцию тестовыми данными.

Нужно включить вызов метода «testInit» в метод «start» и в вызов метода «init» контроллера передать коллекцию.

Код программы представлен в приложении А.

Результат запуска приложения представлен в приложении B.

5. Редактирование данных в TableView

Цель работы - изучить методы редактирования.

Создадим разметку для окна.

Метод «init» должен вызываться перед запуском окна. Он запоминает ссылку на коллекцию и индекс элемента и инициализирует значения полей. Также он устанавливает метод «exit» как обработчик события, возникающего при выходе из окна. Метод «exit» запоминает введенные пользователем данные.

В главное окно программы добавим кнопку «Изменить». Обработчик нажатия на эту кнопку должен запустить диалоговое окно для изменения текущей записи.

Создание диалогового окна отличается от создания обычного указанием его модальности (т.е. того, что это окно работает «поверх» окна, в котором оно создано). Для отображения окна нужно использовать метод «showAndWait».

Для инициализации контроллера диалогового окна мы определяем индекс текущей строки и записываем его в переменную «editingIndex». После этого вызывается метод инициализации контроллера.

Ячейка таблицы отображается и обрабатывает события классом «TableCell». Это параметризованный класс с двумя параметрами. Первый параметр имеет тип, соответствующий объекту, выводимому в строке таблицы. Второй параметр имеет тип, соответствующий текущей колонке. Универсальным способом настройки работы ячейки является создание класса наследника «TableCell», в котором переопределяется необходимое поведение ячейки.

Создадим класс для работы с ячейкой, который бы позволял редактировать в ячейке вещественные числа.

Нам понадобятся поля «FloatField» для хранения элемента, который появится в ячейке на время ее редактирования, реактивная коллекция выводимых данных, которую мы обновим при завершении редактирования, и объект с данными текущей строки. В конструкторе класса зададим коллекцию данных. 27

Для корректной работы класса нам нужно переопределить три метода: «startEdit», который вызывается при начале редактирования ячейки; «cancelEdit», который вызывается при завершении редактирования и «updateItem», который вызывается при необходимости обновить вид ячейки.

В начале редактирования создаем объект типа «FloatField», считаем текущий редактируемый объект, возьмем из объекта текущей значение стоимости в поле «FloatField» и установим это поле как отображаемое.

При завершении редактирования создаем новый объект типа «Expense» и сохраняем его в коллекции с тем же индексом.

В методе, ответственном за обновление, нужно проанализировать ситуацию, в которой был вызван метод (ячейка не отображается, редактируется или просто выводится), и, в зависимости от ситуации, установить нужный отображаемый объект.

После создания класса, ответственного за редактирование ячейки, его нужно привязать для вызова в нужном столбце.

Код программы представлен в приложении А.

Результат запуска приложения представлен в приложении B.

Заключение

В результате выполнения курсовой работы была освоена среда разработки IntelliJ IDEA. Также был изучен и применен на практике фреймворк языка Java под названием JavaFX. В качестве приложения была выбрана тема контролирования расходов пользователя. Реализовано редактирование и отображение данных.

Библиографический список

1 Альтман Е.А. Разработка приложений на платформе JavaFX/ Альтман Е.А., Ананьева Н.Г.

2 Хомоненко А. Д. Объектно-ориентированное программирование /А.Д. Хомоненко, В.М. Цыганков, М.Г. Мальцев. Санкт-Петербург: Корона-принт, 2013.

3 Классификация платформ Java [Электронный ресурс] / Режим доступа: https://ru.wikipedia.org/wiki/Java

Приложение B

Рисунок 1- Результат разработки интерфейса приложения

Рисунок 2 - Результат обработки действий

Рисунок 3 - Результат создания элементов

Рисунок 4 - Результат работы компонентов в TableView

Рисунок 5 - Результат редактирование данных в TableView

Размещено на Allbest.ru

...

Подобные документы

  • Основные принципы написания оконных приложений с графическим интерфейсом на языке Java в среде Eclipse. Управление компоновками компонентов: показ диалоговых окон, вывод графической информации. Структура приложения и размещение элементов интерфейса.

    лабораторная работа [1,1 M], добавлен 01.05.2014

  • Диаграмма консольного приложения табулирования функции. Отличие консольного приложения и приложения и GUI. Диаграмма классов для JFrameи JPanel. Создание простейшего фрейма в Java. Компоновка элементов интерфейса внутри фрейма. Цикл обработки событий.

    лекция [693,8 K], добавлен 01.05.2014

  • Разработка технологии и средств реализации Java-приложения, сокращающих трудоемкость создания и гибкость модификации интерфейса пользователя. Использование XML-документов для описания внешнего представления, элементов управления и событий экранных форм.

    дипломная работа [2,8 M], добавлен 19.08.2011

  • Разработка логической схемы базы данных автомобилестроительного предприятия. Инфологическое моделирование системы. Создание графического интерфейса пользователя для базы данных средствами языка программирования Java. Тестирование программных средств.

    курсовая работа [2,3 M], добавлен 16.12.2013

  • Общая характеристика командного интерфейса приложения в системе 1С: Предприятия. Особенности объектов конфигурации: справочников, документов, регистров накопления и отчетов. Разработка интерфейса приложения "Ремонт техники (от компьютера до пылесоса)".

    курсовая работа [2,8 M], добавлен 06.11.2013

  • Разработка и создание игры "Змейка". Использование динамически-активных принципов языка Java. Графические объекты программы. Описание игры, правила, теоретические сведения. Классы приложения. Типы данных. Реализация. Метод. Объект. Блок-схема игры.

    курсовая работа [12,4 K], добавлен 18.06.2008

  • Анализ целевой аудитории. Функциональные характеристики пользовательского приложения. Разработка алгоритмов и интерфейса программного продукта, функций рабочей области. Написание скриптов на языке C#. Тестирование программы методом чёрного ящика.

    дипломная работа [1,5 M], добавлен 09.11.2016

  • Разработка клиент-серверного приложения, позволяющего взаимодействовать друг с другом с использованием доступа к базам данных. Проектирование связи сервера с базой данных с помощью технологии ODBC. Разработка интерфейса программы, ее тестирование.

    курсовая работа [352,0 K], добавлен 24.08.2016

  • Назначение и возможности разработанного приложения для контроля активности сетевых и периферийных устройств предприятия. Язык программирования Java. Распределенные многоуровневые приложения. Структура базы данных, интерфейс разработанного приложения.

    курсовая работа [1,0 M], добавлен 16.12.2012

  • Создание языка программирования с помощью приложения "Java". История названия и эмблемы Java. Обзор многообразия современных текстовых редакторов. Обработка строки. Методы в классе String. Java: задачи по обработке текста. Примеры программирования.

    курсовая работа [276,1 K], добавлен 19.07.2014

  • История развития языка программирования Java. История тетриса - культовой компьютерной игры, изобретённой в СССР. Правила проведения игры, особенности начисления очков. Создание интерфейса программы, ее реализация в среде Java, кодирование, тестирование.

    курсовая работа [168,1 K], добавлен 27.09.2013

  • Принципы написания консольных приложений на языке Java в среде Eclipse. Составление программы завтрака на основе списка продуктов, передаваемых в качестве параметров в командной строке. Создание пакета для классов, интерфейса, базового класса иерархии.

    лабораторная работа [1,2 M], добавлен 01.05.2014

  • Разработка компьютерного приложения "Кипящая жидкость" с применением навыков программирования на языке Java. Проектирование алгоритма для решения поставленной задачи, его предметная область. Создание приложения с графическим пользовательским интерфейсом.

    отчет по практике [3,0 M], добавлен 29.10.2015

  • Разработка программного приложения WindowsForms для работы с базой данных на языке высокого уровня C# в автономном режиме с использованием ADO.NET. Проектирование реляционной модели базы данных, интерфейса приложения, основных функций и возможностей.

    курсовая работа [4,3 M], добавлен 30.06.2015

  • Кратка историческая справка развития языка Java. Анализ предметной области. Java platform, enterprise and standart edition. Апплеты, сервлеты, gui-приложения. Розработка программного кода, консольное приложение. Результаты работы апплета, сервлета.

    курсовая работа [549,2 K], добавлен 23.12.2015

  • Сетевые возможности языков программирования. Преимущества использования Java-апплетов. Классы, входящие в состав библиотеки java.awt. Создание пользовательского интерфейса. Сокетное соединение с сервером. Графика в Java. Значения составляющих цвета.

    курсовая работа [508,1 K], добавлен 10.11.2014

  • Анализ возможных подходов к созданию web-приложения с использованием программирования Java и CGI. Разработка структуры базы данных и реализация полученной модели в рамках СУБД. Обеспечение диалога CGI-программы с пользователем, используя браузер.

    курсовая работа [310,9 K], добавлен 07.08.2011

  • Формирование входных и выходных данных, SQL–скрипт генерации таблиц базы данных. Создание интерфейса программного приложения и проектирование форм базы данных. Требования к аппаратно–программному обеспечению. Инструкции по установке и эксплуатации.

    курсовая работа [1,6 M], добавлен 08.02.2013

  • Архитектура Java и Java RMI, их основные свойства, базовая система и элементы. Безопасность и виртуальная Java-машина. Интерфейс Java API. Пример использования приложения RMI. Работа с программой "Calculator". Универсальность, портативность платформ.

    курсовая работа [208,6 K], добавлен 03.12.2013

  • Создание программного приложения для осуществления основных функций по заказу мебели, регистрации клиентов, сотрудничеству с поставщиками. Разработка интерфейса прикладной программы. Логическое проектирование базы данных и SQL-скрипт генерации таблиц.

    курсовая работа [2,4 M], добавлен 11.02.2013

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.