java - 如何使用 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);
解决方案
你可能想要这样的东西。这会为您的 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();
}
推荐阅读
- android - HLS Exoplayer 流不适用于 API 级别 28
- r - Pheatmap:annotation_colors[[colnames(annotation)[i]]] 中的错误:下标越界
- javascript - ObjectA inside ListA, ListA inside ObjectB, ObjectB inside ListC
- python - 如何修复python(电报机器人)中的“[Errno 111] Connection denied”错误?
- javascript - 使用 ramda 基于序列逻辑有条件地拆分数组
- codeigniter-3 - 为什么我在使用 CodeIgniter 时收到 404 错误?
- php - 我如何确定状态并在 PHP MySQL 中执行操作
- javascript - TypeError:无法读取 TypeScript 生成的 JavaScript 文件上未定义的属性“推送”
- c# - .NET Core DinkToPDF 未正确显示引导列
- javascript - 如何通过javascript中的单个字符串键获取嵌套对象的值?