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();
});
这有多个问题
- 无论出于何种原因,此对话框都无法关闭
- “时间”的结果是
左对齐而不是右对齐。
感谢您的帮助 有关关闭对话框的规则在“对话框关闭规则”下进行了说明。简言之,您需要添加某种按钮,您可以使用它
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);
这也将避免设置对话框窗格的首选大小