我正在尝试使用BorderPanes,这是迄今为止的噩梦。我试图让我的标签只是出现在窗口中,但没有用。有什么想法吗?
Label arrayLabel = new Label("NUMBERS");
BorderPane.setAlignment(arrayLabel, Pos.TOP_CENTER);
TextField search = new TextField();
Button btn = new Button("search");
HBox searchbox = new HBox(2);
searchbox.getChildren().addAll(search, btn);
searchbox.setAlignment(Pos.CENTER);
BorderPane root = new BorderPane(arrayLabel);
root.setPrefSize(600, 600);
root.setCenter(searchbox);
答案 0 :(得分:4)
BorderPane
只能在任何地区拥有一个节点。 (当然,该节点可以是包含任意数量的其他节点的父节点。)constructor taking a single parameter将该参数视为要在中心显示的节点。
所以
BorderPane root = new BorderPane(arrayLabel);
相当于
BorderPane root = new BorderPane();
root.setCenter(arrayLabel);
当你随后(立即)然后打电话
root.setCenter(searchbox);
中心节点被<{1}} 替换,因此searchbox
不再是arraylabel
的一部分。
目前还不清楚您的意图:您实际上是在尝试将两个不同的UI组件(BorderPane
和arrayLabel
)放入同一searchbox
的同一区域。没有信息(提供给我们或试图定位这些节点的穷人BorderPane
)关于您希望这两个组件相对于彼此如何定位的信息。根据你想要的方式,你实际上想要实现什么目标?