如何创建弹出消息以提醒用户字段不完整?

How do I create a popup message to alert the user of incomplete fields?

因此,我需要创建一个弹出消息,在用户未进行输入时提醒他们。

例如,我有 3 个组合框 - 如果我让其中一个组合框没有用户输入并试图更改场景,则会弹出一个警告要求我 "please make sure all fields are complete"。

下面的代码只是一个简单的弹出窗口,我需要 link 到 myController class。

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();
}

JavaFX 附带 Dialogs API,它提供了多个弹出警报选项。这样的 class 就是 javafx.scene.control.Alert class 也就不足为奇了。你真的没有必要为此编写自己的弹出窗口class。

创建并显示一个简单的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();

该代码产生以下警报:


为了验证用户输入,您的 ComboBox 值之一,例如,只需使用简单的 if 语句来检查有效选择。如果条目丢失 (null) 或无效,请显示 alert:

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

更高级的对话框有更多选项。你可以在这里看到一些很好的例子:JavaFX Dialogs (official.