【问题标题】:How to center a scene within a stage如何在舞台中居中放置场景
【发布时间】:2020-01-11 13:29:26
【问题描述】:

如何在舞台中居中放置场景?

我有以下场景:

Scene scene = new Scene(new Group());
        stage.setTitle("Table View Sample");
        stage.setWidth(1500);
        stage.setHeight(1000);

阶段:

Parent root = FXMLLoader.load(getClass().getResource("GUI.fxml"));
Scene scene1 = new Scene(root,300,300);

Stage 包含一个 Vbox,其中包含所有元素(看图片):

现在场景本身比舞台小很多。

如何在舞台中对齐=居中场景?

【问题讨论】:

  • 尝试将 vbox 包裹在另一个 vbox/hbox 中,该 vbox/hbox 具有对齐中心并适合整个场景,因此 h(v) 始终保持增长
  • 这就是我希望场景大约为舞台宽度的 70% 并且居中在中间的问题。问题:由于某种原因,设置为 300,300 的场景一直走到舞台的尽头,即 1500,1000。 FXML 是否支持 % 作为参数而不是像素?
  • 然后尝试stage.getWidth() * 0.7 或查看this
  • JavaFX 不支持为大多数布局指定相对于父宽度的宽度。绑定可能是一种选择,但如果控件周围固定大小的空白空间足够,则填充或边距可能会起作用。否则,GridPanepercentWidth/Height 约束已在至少一个专门询问此问题的问题中提到。 (在您的问题本身中没有提到相对大小;您只是询问对齐方式。)

标签: javafx fxml center scene stage


【解决方案1】:

编辑(英文)

如果您的意思是 vbox 覆盖整个场景,则场景总是在中间,那么您可以在 scenebuilder 中选择 vbox 并将 HGrow 设置为 ALWAYS

原创(德语)

Die Scene ist immer in der Mitte, wenn du meinst das sich der sich die VBox über die gesamte Scene erstreckt kannst du im SceneBuilder die VBox auswählen und dann unter Layout HGrow auf ALWAYS stellen。

【讨论】:

  • 请提供英文答案
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-06
  • 2013-09-30
  • 1970-01-01
  • 1970-01-01
  • 2021-07-21
  • 1970-01-01
相关资源
最近更新 更多