所以,我需要创建一个弹出消息,如果他们没有输入,将提醒用户。
例如,我有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();
}
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();
该代码生成以下警报:
例如,为了验证用户输入,您的ComboBox
值之一,只需使用简单的if
语句来检查有效选择。如果条目缺失(null
)或无效,请显示alert
:
if (comboBox1.getValue() == null) {
alert.showAndWait();
}
更高级的Dialog还有更多选项。你可以在这里看到一些很好的例子:JavaFX Dialogs (official。