Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 与结果对话_Java_Dictionary_Javafx_Dialog_Alignment - Fatal编程技术网

Java 与结果对话

Java 与结果对话,java,dictionary,javafx,dialog,alignment,Java,Dictionary,Javafx,Dialog,Alignment,我有一张地图,上面有我的小算法的“基准”数据。 键表示基准的名称、值和所需的时间。 我想创建一个对话框,以易于阅读的方式列出这些结果。 到目前为止,我得到的是: Platform.runLater(() -> { Dialog<Object> dialog = new Dialog<>(); dialog.setTitle("Result"); DialogPane pane = dialog.getDialogPane(); VBo

我有一张地图,上面有我的小算法的“基准”数据。 键表示基准的名称、值和所需的时间。 我想创建一个对话框,以易于阅读的方式列出这些结果。 到目前为止,我得到的是:

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();
});
Platform.runLater(()->{
Dialog=新建Dialog();
对话框。设置标题(“结果”);
DialogPane=dialog.getDialogPane();
VBox list=新的VBox();
for(条目:resultMap.entrySet()){
BorderPane框=新建BorderPane();
setLeft(新文本(entry.getKey()+“:”);
setRight(新文本(entry.getValue().toString()+“ms”);
list.getChildren().add(框);
}
list.getChildren().add(新文本(“检查:+(logic.getResult()?“已传递”):“失败”);
pane.getChildren().add(列表);
//pane.setPrefSize(pane.getPrefWidth(),200);需要其他选项才能关闭对话框
dialog.show();
});
这有多个问题

  • 无论出于何种原因,此对话框都无法关闭
  • “时间”的结果是 左对齐而不是右对齐。
它在scene builder中对我很有用,但因为我需要动态生成这些场景,所以这是不可能的选择


感谢您的帮助

有关关闭对话框的规则在“对话框关闭规则”下进行了说明。简言之,您需要添加某种按钮,您可以使用它

pane.getButtonTypes().add(ButtonType.OK);
列表的布局不正常的原因是您使用了

pane.getChildren().add(list);
对话框窗格具有特定的结构(同样,请参见),如果您“盲目”将节点添加到子项列表中,对话框窗格将不知道如何管理它。改用
setContent(…)

// pane.getChildren().add(list);
pane.setContent(list);

这也将避免设置对话框窗格的首选大小。

有关关闭对话框的规则在“对话框关闭规则”下进行了说明。简言之,您需要添加某种按钮,您可以使用它

pane.getButtonTypes().add(ButtonType.OK);
列表的布局不正常的原因是您使用了

pane.getChildren().add(list);
对话框窗格具有特定的结构(同样,请参见),如果您“盲目”将节点添加到子项列表中,对话框窗格将不知道如何管理它。改用
setContent(…)

// pane.getChildren().add(list);
pane.setContent(list);
这也将避免设置对话框窗格的首选大小