Java и MySQL база данных / Разработка приложения на JavaFx

Java и MySQL база данных / Разработка приложения на JavaFx

Инструменты что нам понадобятся

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

  • установленная на компьютере Джава 11 версии;
  • среда разработки, например, IntelliJ IDEA;
  • библиотека JavaFx;
  • коннектор MySQL для работы с базой данных.


Создание проекта

Через любую среду разработки создайте новый JavaFx проект.



После создания проекта нужно добавить библиотеку JavaFx. Если вы работаете с Intellij IDEA, то вам нужно зайти в «File - Project Structure», далее перейти в модули и добавить в качестве нового модуля все файлы из папки lib, что находится в скачанной папке JavaFx. После добавления не забываем установить галочку, а также нажать на Окей.



После заходим в настройки: «Run - Edit configuration» и в поле «VM Options» прописываем полный путь к папке JavaFx:

--module-path
D:\Java\javafx-sdk-11.0.2\lib (Вот здесь прописываете ваш путь)
--add-modules
javafx.controls,javafx.fxml


Установка MySQL коннектора

Точно в таком же формате подключаем коннектор MySQL. Находим в Google коннектор MySQL для Java и скачиваем его на компьютер.  Заходим в «File - Project Structure» и добавляем новую библиотеку – MySQL. Теперь проект настроен и мы можем приступить к созданию дизайна и написанию кода.


Для работы с базой данных вам также потребуется локальный сервер. Урок по работе с локальным сервером и программой PhpMyAdmin представлен ниже:




Создание дизайна

Для создания дизайна используйте программу Scene Builder. Внутри неё откройте ваш проект, а именно файл «sample.fxml». Через эту программу вы можете прописать весь дизайн для приложения. 



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



В этой же программе можно посмотреть готовый вариант дизайна, а также же можно получить шаблон кода для класса контроллера. Для этого переходим: «View - Show sample skeletone code», где мы получаем весь код и копируем его. Этот же код разместите в контроллере вашего приложения.


Создание функций

Остается прописать весь функционал. Ниже представлен полный код основного контроллера, но также по этой ссылке вы можете скачать готовый проект всей программы.


Код класса контроллера: 

package sample;

import java.net.URL;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.ResourceBundle;

import javafx.event.EventHandler;
import javafx.fxml.FXML;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.control.TextField;
import javafx.scene.input.MouseEvent;
import javafx.scene.layout.VBox;

public class Controller {

	@FXML
	private ResourceBundle resources;

	@FXML
	private URL location;

	@FXML
	private TextField main_field;

	@FXML
	private Button add_task;

	@FXML
	private VBox all_tasks;

	// Объект на основен нашего класса для работы с БД
	DB db = null;

	@FXML
	void initialize() {

		// Инициируем объект
		db = new DB();

		// Обработчик события. Сработает при нажатии на кнопку
		add_task.addEventHandler(MouseEvent.MOUSE_CLICKED, new EventHandler<MouseEvent>() {
			// Метод, что будет срабатывать
			@Override
			public void handle(MouseEvent mouseEvent) {
				try {
					// Проверяем является ли поле заполненным
					if(!main_field.getText().trim().equals("")) {
						// Вызываем метод из класса DB
						// через этот метод будет добавлено новое задание
						db.insertTask(main_field.getText());
						loadInfo(); // Метод для подгрузки заданий внутрь программы
						main_field.setText(""); // Очищаем поле
					}
				} catch (SQLException e) { // Отслеживаем ошибки
					e.printStackTrace();
				} catch (ClassNotFoundException e) {
					e.printStackTrace();
				}
			}
		});

		// Метод для подгрузки заданий внутрь программы
		loadInfo();
	}

	// Метод для подгрузки заданий внутрь программы
	void loadInfo() {
		try {
			// Сначала очищаем от прошлых значений
			all_tasks.getChildren().clear();

			// Получаем все задания из базы данных
			ArrayList<String> tasks = db.getTasks();
			for(int i = 0; i < tasks.size(); i++) // Перебираем их через цикл
				// Добавляем каждое задание в объект VBox (all_tasks)
				all_tasks.getChildren().add( new Label( tasks.get(i)));
		} catch (SQLException e) {
			e.printStackTrace();
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		}
	}
}

Видео на эту тему

Также вы можете просмотреть детальное видео по разработке данного приложения:




Дополнительный курс

На нашем сайте также есть углубленный курс по изучению языка Java. В ходе огромной программы вы изучите не только язык Java, но также научитесь создавать веб сайты, программы под ПК, приложения под Андроид и многое другое. За курс вы изучите массу нового и к концу программы будете уметь работать с языком Java и создавать на нём полноценные проекты.


()
Количество показов: 3
19 марта 2021

Возврат к списку