我对JavaFx不熟悉,所以我试图在Java Controller类中编写JavaFx组件并在main中调用它们,我的问题是我无法在窗口的所有宽度上调整布局的大小,这个简单的代码:
public Acceuil(){
LAB_POST = new Button("Posts");
LAB_EVENT = new Button("Evennements");
.....
// my two boxes
VBox leftPane = new VBox();
FlowPane bpane = new FlowPane();
leftPane.setPadding(new Insets(20));
leftPane.setSpacing(30);
leftPane.setAlignment(Pos.CENTER);
leftPane.setStyle("-fx-background-color:#34495e");
leftPane.setMinWidth(300);
leftPane.setPrefSize(300, 600);
bpane.setStyle("-fx-background-color: red;"); // to see the space that it took
bpane.setMaxWidth(Double.MAX_VALUE);
bpane.setMaxWidth(Double.MAX_VALUE);
bpane.setMaxWidth(Double.MAX_VALUE);
bpane.setMaxWidth(Double.MAX_VALUE);
leftPane.getChildren().addAll(TXT_SEARCH, LAB_POST....);
this.getChildren().addAll(leftPane,bpane);
this.setMinHeight(600);
this.setMinWidth(900);
}
(注:我尝试了FlowPane,BorderPane,AnchorPane甚至是Boxes) 因此,我希望窗口中剩余的所有空间都含有苯甲醚,但我明白了, 所以我想知道我需要输入什么以便让bpane占用所有空间,谢谢
答案 0 :(得分:2)
我同意Sedrick,我们需要知道这些元素的容器是什么,但是您可以尝试以下方法:
bpane.setStyle("-fx-background-color: red;");
HBox.setHgrow(bpane, Priority.ALWAYS); // Add this line
如果它在AnchorPane中,您也可以尝试以下方法:
AnchorPane.setTopAnchor(this, 0.0);
AnchorPane.setRightAnchor(this, 0.0);
AnchorPane.setBottomAnchor(this, 0.0);
AnchorPane.setLeftAnchor(this, 0.0);