Наш проект будет не столь гигантским, но все же увесистым в плане количества функций и набора библиотек. Для разработки проекта нам понадобится:
Через любую среду разработки создайте новый JavaFx проект.
После создания проекта нужно добавить библиотеку JavaFx. Если вы работаете с Intellij IDEA, то вам нужно зайти в «File - Project Structure», далее перейти в модули и добавить в качестве нового модуля все файлы из папки lib
, что находится в
После заходим в настройки: «Run - Edit configuration» и в поле «VM Options» прописываем полный путь к папке JavaFx:
--module-path
D:\Java\javafx-sdk-11.0.2\lib (Вот здесь прописываете ваш путь)
--add-modules
javafx.controls,javafx.fxml
Точно в таком же формате подключаем коннектор MySQL.
Для работы с базой данных вам также потребуется локальный сервер. Урок по работе с локальным сервером и программой PhpMyAdmin представлен ниже:
Для создания дизайна используйте программу
После перетаскивания объектов и добавления к ним стилей, вы можете добавить 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();
}
}
}
Также вы можете просмотреть детальное видео по разработке данного приложения:
На нашем сайте также есть