首页 > 解决方案 > 如何使用 hbox 向 StackPane 添加填充

问题描述

我仍在学习如何处理面板和 hbox、vbox 等。我希望能够在 StackPane 的中心周围设置填充。

@Override
    public void start(Stage stage) throws Exception {

        stage.setTitle("GUIGUI");
       
        HBox hbox = new HBox(10); // number sets spacing between things
        
        Button roll1 = new Button("Roll");
        hbox.setPadding(new Insets(40,40,40,40));
        hbox.getChildren().add(roll1);  
        
        StackPane root = new StackPane();
        root.setAlignment(hbox, Pos.CENTER);
        root.getChildren().add(hbox);

        Scene scene = new Scene(root, 500, 500);
        stage.setScene(scene);
        stage.show();  
        
    }
public static void main(String[] args) {
        launch(args);
         
    }
...

我尝试使用 hbox 设置滚动(这是一个按钮)周围的填充,以便在 StackPane 中调用(?)时它的填充为 40、40、40、40。

我的代码在按钮周围设置了填充,但即使我完成了它也没有定位在中心

root.setAlignment(hbox, Pos.CENTER);

标签: javajavafx

解决方案


你可能想要这样的东西。这会为您的 StackPane 添加填充并使您的按钮居中。确保您只有 javafx 导入而不是 awt 导入。

    @Override
    public void start(Stage stage) throws Exception {

        stage.setTitle("GUIGUI");
       
        HBox hbox = new HBox(10); // number sets spacing between things
        
        Button roll1 = new Button("Roll");
        hbox.setPadding(new Insets(40,40,40,40));
        hbox.getChildren().add(roll1);
        hbox.setAlignment(Pos.CENTER);
        hbox.setStyle("-fx-background-color:TAN");
        
        StackPane root = new StackPane();
        root.getChildren().add(hbox);
        root.setPadding(new Insets(40,40,40,40));
        root.setStyle("-fx-background-color:BLUE");
        

        Scene scene = new Scene(root, 500, 500);
        stage.setScene(scene);
        stage.show();  
        
    }

推荐阅读