4. Диалогови прозорци (Alert)
4.1 Същност
Диалоговият прозорец представлява помощен прозорец, използван за комуникация с потребителя. Той може да показва информация, предупреждения или да изисква потвърждение за дадено действие.
В JavaFX диалоговите прозорци могат да бъдат реализирани по два основни начина:
- чрез готовия клас
Alert; - чрез създаване на отделен прозорец (
Stage), често описан с FXML.
4.2 Видове диалогови прозорци
- INFORMATION – показва информационно съобщение;
- WARNING – сигнализира за потенциален проблем;
- ERROR – показва грешка;
- CONFIRMATION – изисква избор от потребителя.
4.3 Основен пример и структура
Alert alert = new Alert(Alert.AlertType.INFORMATION);
// определя типа на диалога (INFORMATION → бутон OK)
alert.setTitle("Информация");
// задава заглавието на прозореца
alert.setHeaderText("Заглавие");
// задава заглавен текст
alert.setContentText("Това е информационно съобщение.");
// задава съдържание
alert.showAndWait();
// показва и изчаква
Метода showAndWait връща като резултат информация кой бутон от Alert прозореца е бил натиснат. Резултата е от тип Optional<ButtonType> Optional
Optional
съдържа стойност (T) → ако има или е празен → ако няма стойност
Използва се, за да избегне NullPointerException.
Методи за проверка за стойност
opt.isPresent()
opt.isEmpty()
Метод за взимане на стойност
opt.get()
4.4 Бутони
| Тип | Бутони |
|---|---|
| INFORMATION | OK |
| WARNING | OK |
| ERROR | OK |
| CONFIRMATION | OK, Cancel |
private Optional<ButtonType> showAlert(Alert.AlertType type, String title, String header, String content) {
Alert alert = new Alert(type);
alert.setTitle(title);
alert.setHeaderText(header);
alert.setContentText(content);
return alert.showAndWait();
}
Optional<ButtonType> result = showAlert(Alert.AlertType.INFORMATION, "Информация", "Редактиране", "Успешно изпълнена корекция");
if (result.isPresent() && result.get() == ButtonType.OK) {
handleCancel(actionEvent);
}