【问题标题】:Dialog with results结果对话
【发布时间】:2017-02-25 19:25:38
【问题描述】:

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

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();
});

这有很多问题。

  • 无论出于何种原因,此对话框都无法关闭。
  • “时间”结果是 左对齐而不是右对齐。

它适用于我在场景构建器中,但因为我需要动态生成那些,所以这是不可能的选择。

感谢任何帮助!

【问题讨论】:

    标签: java dictionary javafx dialog alignment


    【解决方案1】:

    关于关闭对话框的规则在“对话框关闭规则”下的Dialog documentation 中进行了描述。简而言之,您需要添加某种按钮,您可以使用

    pane.getButtonTypes().add(ButtonType.OK);
    

    list的布局不能正常工作的原因是你使用了

    pane.getChildren().add(list);
    

    对话框窗格具有特定的结构(再次参见documentation),如果您“盲目地”将节点添加到子列表中,对话框窗格不知道如何管理它。请改用setContent(...)

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

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

    【讨论】:

      猜你喜欢
      • 2012-05-22
      • 2011-05-31
      • 1970-01-01
      • 2012-06-02
      • 1970-01-01
      • 2018-02-05
      • 2016-01-20
      • 1970-01-01
      • 2023-03-17
      相关资源
      最近更新 更多