Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/347.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
在JavaFX中分组对象?_Java_User Interface_Javafx_Scenebuilder_Ellipse - Fatal编程技术网

在JavaFX中分组对象?

在JavaFX中分组对象?,java,user-interface,javafx,scenebuilder,ellipse,Java,User Interface,Javafx,Scenebuilder,Ellipse,因此,我目前正在为Connect4游戏制作一个带有SceneBuilder的JavaFXGUI,我想知道是否有一种方法可以将对象“分组”在一起,以便我可以对所有对象一起执行操作 举例说明我的意思: 我有7个colButton1-7列的按钮,我想一次禁用所有这些按钮。 我使用椭圆作为计数器计数器1-40,并希望将所有计数器的颜色都更改为白色。 我四处寻找,但什么也没找到。我知道如何对单个对象同时执行这两项操作,但想不出一种方法可以轻松地同时对所有对象应用更改。任何帮助都将不胜感激:没有对同一组的所

因此,我目前正在为Connect4游戏制作一个带有SceneBuilder的JavaFXGUI,我想知道是否有一种方法可以将对象“分组”在一起,以便我可以对所有对象一起执行操作

举例说明我的意思:

我有7个colButton1-7列的按钮,我想一次禁用所有这些按钮。 我使用椭圆作为计数器计数器1-40,并希望将所有计数器的颜色都更改为白色。
我四处寻找,但什么也没找到。我知道如何对单个对象同时执行这两项操作,但想不出一种方法可以轻松地同时对所有对象应用更改。任何帮助都将不胜感激:

没有对同一组的所有成员执行单个操作的分组机制。相反,您可以使用单个组/容器来保存所有控件,并对其每个成员应用相同的操作

例如,假设我有一个包含按钮的VBox,我想全部禁用它们

for(Node node:vBox.getChildren()) {
    node.setDisable(true);
}
或者,设置样式

for(Node node:vBox.getChildren()) {
    node.setStyle("-fx-something");
}

没有对同一组的所有成员执行单个操作的分组机制。相反,您可以使用单个组/容器来保存所有控件,并对其每个成员应用相同的操作

例如,假设我有一个包含按钮的VBox,我想全部禁用它们

for(Node node:vBox.getChildren()) {
    node.setDisable(true);
}
或者,设置样式

for(Node node:vBox.getChildren()) {
    node.setStyle("-fx-something");
}

对于禁用,如果禁用一个节点,则其所有子节点都将禁用设置为true。因此,您可以:

VBox buttonHolder = new VBox();
Button button = new Button(...);
buttonHolder.getChildren().add(button);
// repeat as necessary...

buttonHolder.setDisable(true); // all buttons in the VBox will now be disbaled
对于样式化特性,例如形状的填充,应使用外部样式表。如果更改父级的样式类,则可以使用适当的外部样式表一次性更改所有子级的样式

例如


对于禁用,如果禁用一个节点,则其所有子节点都将禁用设置为true。因此,您可以:

VBox buttonHolder = new VBox();
Button button = new Button(...);
buttonHolder.getChildren().add(button);
// repeat as necessary...

buttonHolder.setDisable(true); // all buttons in the VBox will now be disbaled
对于样式化特性,例如形状的填充,应使用外部样式表。如果更改父级的样式类,则可以使用适当的外部样式表一次性更改所有子级的样式

例如


非常感谢我不知道HBox和VBox的存在,它们是完美的。一个小指针:JavaFX代码是.setDisabletrue;您在JavaFX中有许多布局容器,如果调用setDisable,您可以在中了解它们。。。在父节点上,禁用状态将传播到其所有子节点。@James\u D它是否仅适用于setDisable。。或者还有其他属性的行为方式相同吗?对于样式化属性,您只需要设置适当的样式表。我补充了一个答案。非常感谢!:我不知道HBox和VBox的存在,它们是完美的。一个小指针:JavaFX代码是.setDisabletrue;您在JavaFX中有许多布局容器,如果调用setDisable,您可以在中了解它们。。。在父节点上,禁用状态将传播到其所有子节点。@James\u D它是否仅适用于setDisable。。或者还有其他属性的行为方式相同吗?对于样式化属性,您只需要设置适当的样式表。我补充了一个答案。