使用 JavaFX:是否可以将 GridPane 放入警报对话框中?

Using JavaFX: Is It Possible to Put A GridPane in an Alert Dialog Box?

我有一个填充有文本的警告框,出于格式原因,我想知道我是否可以以某种方式将 GridPane 放入此警告框中,以便所有文本都正确隔开。

如果无法使用 GridPane 执行此操作,是否可以使用其他一些格式化文本的方法?

是的,你可以set any node as content一个对话框。

alert.getDialogPane().setContent(grid);

这里是 sell/buy 格式为网格内容的冻结橙色合同警报。

import javafx.application.Application;
import javafx.geometry.HPos;
import javafx.geometry.Insets;
import javafx.scene.Scene;
import javafx.scene.control.*;
import javafx.scene.layout.*;
import javafx.stage.Modality;
import javafx.stage.Stage;

public class GridAlert extends Application {
    @Override
    public void start(Stage stage) {
        Alert alert = new Alert(Alert.AlertType.INFORMATION);
        alert.setHeaderText("Frozen Orange Juice Contracts");

        GridPane grid = new GridPane();
        grid.addRow(0, new Label("Sell"), new Label("142"));
        grid.addRow(1, new Label("Buy"), new Label("29"));
        grid.setHgap(30);
        ColumnConstraints right = new ColumnConstraints();
        right.setHalignment(HPos.RIGHT);
        grid.getColumnConstraints().setAll(new ColumnConstraints(), right);

        alert.getDialogPane().setContent(grid);

        Button showAlert = new Button("Show Alert");
        showAlert.setOnAction(event -> alert.showAndWait());

        HBox layout = new HBox(10);
        layout.getChildren().addAll(
                showAlert
        );
        layout.setPadding(new Insets(10));
        stage.setScene(new Scene(layout));
        stage.show();

        alert.initOwner(stage);
        alert.initModality(Modality.WINDOW_MODAL);
    }

    public static void main(String[] args) {
        launch();
    }
}