java - getChildren() add() 和 add()
问题描述
为什么有时我们使用 getChildren() add() 而其他时候我们直接使用 add() es:https ://docs.oracle.com/javafx/2/get_started/form.htm
Example 4–4 Button
Button btn = new Button("Sign in");
HBox hbBtn = new HBox(10);
hbBtn.setAlignment(Pos.BOTTOM_RIGHT);
hbBtn.getChildren().add(btn);
grid.add(hbBtn, 1,`enter code here`
grid.add(userTextField, 1, 1);
Label pw = new Label("Password:");
grid.add(pw, 0, 2);
PasswordField pwBox = new PasswordField();
grid.add(pwBox, 1, 2);)
示例 4–3 控件
Text scenetitle = new Text("Welcome");
scenetitle.setFont(Font.font("Tahoma", FontWeight.NORMAL, 20));
grid.add(scenetitle, 0, 0, 2, 1);
Label userName = new Label("User Name:");
grid.add(userName, 0, 1);
TextField userTextField = new TextField();
解决方案
Afaik 只直接GridPane
提供了一个add
方法。存在此方法是为了缩短将子项添加到并分配行/列索引(和列/行跨度)所需的代码。您需要为 a 的几乎所有子级分配行/列索引,GridPane
这就是这些方法有用的原因。
gridPane.add(child1, column1, row1);
gridPane.add(child2, column2, row2, columnSpan, rowSpan);
比
GridPane.setColumnIndex(child1, column1);
GridPane.setRowIndex(child1, row1);
gridPane.getChildren().add(child1);
GridPane.setColumnIndex(child2, column2);
GridPane.setRowIndex(child2, row2);
GridPane.setColumnSpan(child2, columnSpan);
GridPane.setRowSpan(child2, rowSpan);
gridPane.getChildren().add(child2);
其他布局例如VBox
不提供这种方法,因为子级是根据子级列表中的顺序定位的,并且分配可选布局参数margin
的频率较低。
推荐阅读
- python - 神经网络增加损失而不是减少损失
- c++ - VS2019 C++ 错误 C2280 试图引用已删除的函数 inl
- html - 使用 R 打开浏览器选项卡,然后下载网页
- r - 在 rpres 中绘制命令后跟行命令
- java - 防止 Spigot Watchdog 线程停止服务器
- flutter - 键入'_CompactLinkedHashSet
' 不是类型 'List 的子类型 ' 在类型转换中 - spring-boot - Picocli Spring Boot CLI 应用程序
- python - 为什么这个 for 循环从索引 1 而不是索引 0 开始?
- c# - 使用来自 API 的 json 响应中的不规则节点/元素
- google-sheets - 谷歌表格上查询功能的动态变化参考