我有一张地图,上面有我的小算法的“基准”数据。 键表示基准的名称,值所需的时间。 我想创建一个Dialog,以易于阅读的方式列出这些结果。 这是我到目前为止所得到的:
Platform.runLater(() -> {
Dialog<Object> dialog = new Dialog<>();
dialog.setTitle("Result");
DialogPane pane = dialog.getDialogPane();
VBox list = new VBox();
for (Entry<String, Long> entry : resultMap.entrySet()) {
BorderPane box = new BorderPane();
box.setLeft(new Text(entry.getKey() + ": "));
box.setRight(new Text(entry.getValue().toString() + "ms"));
list.getChildren().add(box);
}
list.getChildren().add(new Text("Check: " + (logic.getResult() ? "PASSED" : "FAILED")));
pane.getChildren().add(list);
//pane.setPrefSize(pane.getPrefWidth(), 200); needed otherwhise the dialog is cut off
dialog.show();
});
这有很多问题。
它在场景构建器中适用于我,但因为我需要动态生成那些不可能的选择。
感谢任何帮助!
答案 0 :(得分:2)
有关关闭对话框的规则在“对话框结算规则”下的Dialog
documentation中有所描述。简而言之,您需要添加某种按钮,您可以使用
pane.getButtonTypes().add(ButtonType.OK);
list
的布局无法正常工作的原因是您使用
pane.getChildren().add(list);
对话框窗格具有特定结构(再次参见documentation),如果您“盲目地”将节点添加到子项列表中,则对话框窗格不知道如何管理它。请改用setContent(...)
:
// pane.getChildren().add(list);
pane.setContent(list);
这也可以避免设置对话框窗格的首选大小。