JavaFX标签不会出现

时间:2018-05-09 17:40:30

标签: java javafx

我正在尝试使用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);

1 个答案:

答案 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组件(BorderPanearrayLabel)放入同一searchbox的同一区域。没有信息(提供给我们或试图定位这些节点的穷人BorderPane)关于您希望这两个组件相对于彼此如何定位的信息。根据你想要的方式,你实际上想要实现什么目标?