【发布时间】:2019-10-10 14:32:29
【问题描述】:
我正在编写一个程序,对 Json 对象列表进行排序,然后格式化/打印每个 Json 对象中的数据。我创建了一个 GUI,允许用户从 Json 对象中选择他们想要包含在最终打印中的 JSON 字符串。
为此,我有一个按钮供用户按下,该按钮加载字符串/复选框对的 HashMap,其中字符串是相应 JSON 字符串的 KEY_NAME。我想要做的是,在加载场景并显示 GUI 后,将地图中的 CheckBox 添加到场景中现有的 GridPane 中。
我已经尝试过下面的版本,也尝试过没有将 gpane 重新添加到 AnchorPane。到目前为止,没有任何事情导致场景刷新。我怎样才能做到这一点?
public void addCheckboxes(GridPane gpane, AnchorPane pane, Map<String, CheckBox> map){
Iterator it = map.entrySet().iterator();
int row = 1, col = 0;
while(it.hasNext()){
Map.Entry pair = (Map.Entry) it.next();
gpane.add((CheckBox) pair.getValue(), col, row);
pane.getChildren().add(gpane);
row++;
}
}
【问题讨论】:
-
我认为你让这件事变得比它需要的复杂得多。但是您需要发布 minimal reproducible example 以明确您要完成的工作。
-
您还应该阅读How to Ask 一个好问题。出了什么问题?您是否收到任何错误消息?您希望发生什么以及正在发生什么?
-
如果地图大小为 2 或更大,您发布的代码会导致
duplicate children added错误;即使大小为 1,如果GridPane已经是AnchorPane的孩子,它也会这样做。
标签: java javafx checkbox dynamic