Как создать всплывающее сообщение для оповещения пользователя о неполных полях? - PullRequest
1 голос
/ 15 марта 2019

Итак, мне нужно создать всплывающее сообщение, которое будет предупреждать пользователей, если они не сделали ввод.

Например, у меня есть 3 комбинированных списка - если бы я оставил один из них без ввода данных пользователем и попытался изменить сцены, выскочило бы предупреждение с просьбой «пожалуйста, убедитесь, что все поля заполнены».

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

import javafx.application.Application;
import static javafx.application.Application.launch;
import javafx.event.*;
import javafx.geometry.Pos;
import javafx.scene.*;
import javafx.scene.control.*;
import javafx.scene.control.Button;
import javafx.scene.control.TextField;
import javafx.scene.layout.*;
import javafx.stage.*;

import java.awt.*;
import java.awt.Label;
import java.awt.Window;

public class MissingData extends Application {
    private static final String[] SAMPLE_TEXT = "hjgjguk".split(" ");

    @Override
    public void start(Stage primaryStage) throws Exception {
        VBox textContainer = new VBox(10);
        textContainer.setStyle("-fx-background-color: pink; -fx-padding: 10;");

        primaryStage.setScene(new Scene(textContainer, 300, 200));
        primaryStage.show();
}

1 Ответ

1 голос
/ 15 марта 2019

JavaFX поставляется с Dialogs API, который предоставляет несколько опций для всплывающих оповещений. Неудивительно, что одним из таких классов является класс javafx.scene.control.Alert . Для этого действительно нет необходимости писать свой собственный класс всплывающих окон.

Создать и отобразить простой Alert действительно очень просто:

Alert alert = new Alert(Alert.AlertType.WARNING);
alert.setTitle("Error");
alert.setHeaderText("This is header text.");
alert.setContentText("This is content text.");
alert.showAndWait();

Этот код выдает следующее предупреждение:

screenshot


В для проверки ввода пользователя, например, одно из ваших значений ComboBox, просто используйте простой оператор if, чтобы проверить правильность выбора. Если запись отсутствует (null) или недействительна, покажите alert:

if (comboBox1.getValue() == null) {
  alert.showAndWait();
}

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

...