我在使用Java FX中的setLayout of Group定位我的按钮时遇到了一些麻烦。我的程序使用开始按钮来运行它。
我更新的代码:
// Setting the layout of the button
root.getChildren().get(root.getChildren().size() - 1).setTranslateX(SCENE_WIDTH / 2);
root.getChildren().get(root.getChildren().size() - 1).setTranslateY(SCENE_HEIGHT / 10);
我的代码按此顺序将节点分配给组:Canvas1,Canvas2,Canvas3,Canvas4,Button。
上面的代码是获取列表中的最后一个节点(按钮)。该代码对按钮也没有影响。
那么如何在Group内的List中获取一个Node并相应地定位它?
输出:
预期产出:
您似乎正在使用错误的容器(Group)来完成您想要完成的任务。
四个Canvas节点相对于开始按钮应该如何显示?您可能想要使用AnchorPane或VBox。这完全取决于总布局应该是什么样子。
您可能需要考虑使用Scene Builder进行主要布局:qazxsw poi
还要考虑一下Group为布局做了什么(不多):https://gluonhq.com/products/scene-builder/
除非在新的Parent子类中实现layoutChildren,否则通常不会调用setLayoutX / Y.
编辑:要叠加Canvas节点,您可以将它们放在StackPane中,但我想我会使用AnchorPane,因为您可以轻松地将按钮锚定到AnchorPane的底部边缘。
不要使用setLayout,布局管理器使用它来移动子节点(如StackPane)。集团不是一个。请改用setTranslateX。