在JavaFX中分组对象?
因此,我目前正在为Connect4游戏制作一个带有SceneBuilder的JavaFXGUI,我想知道是否有一种方法可以将对象“分组”在一起,以便我可以对所有对象一起执行操作 举例说明我的意思: 我有7个colButton1-7列的按钮,我想一次禁用所有这些按钮。 我使用椭圆作为计数器计数器1-40,并希望将所有计数器的颜色都更改为白色。在JavaFX中分组对象?,java,user-interface,javafx,scenebuilder,ellipse,Java,User Interface,Javafx,Scenebuilder,Ellipse,因此,我目前正在为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。。或者还有其他属性的行为方式相同吗?对于样式化属性,您只需要设置适当的样式表。我补充了一个答案。