【问题标题】:Resizing SplitPane Programmatically以编程方式调整 SplitPane 的大小
【发布时间】:2016-08-06 01:34:57
【问题描述】:

我正在尝试使用 GridPane 作为场景的根来布局舞台。

row 1 contains a HBox
row 2 contains a SplitPane with orientation set to Vertical

SplitPane 包含一个浏览器控件和另一个将方向设置为水平的 SplitPane。内部的 SplitPane 包含两个 TableView。

我尝试让外部 SplitPane 在窗口大小改变时调整大小(如果我没有使用正确的术语,请原谅)。我已经看到在使用 fxml 时如何做到这一点,但我仅限于使用 Javafx 8 并且必须以编程方式执行此操作。如果重要的话,我使用的是 Netbeans 8.1。

如果有人能指出我正确的方向,将不胜感激。

谢谢 A.G.

【问题讨论】:

  • 将fxml“翻译”成java代码非常简单...
  • @fabian - 对于许多节点属性而言,将 fxml 转换为 java 代码可能并不困难。仍然可以将某些属性(例如 double maxWidth)设置为字符串值,例如 fxml 中的“-Infinity”。在后台,某种形式的类型转换器可能会随着节点大小的变化而逐步设置属性。
  • "-Infinity" 对于目标类型doubleDouble.valueOf("-Infinity") = Double.NEGATIVE_INFINITY。几乎总是使用目标类型(或其包装类)的valueOf 方法。不,这不会创建任何绑定或任何其他更新超出通常布局的大小的内容。
  • @fabian - 感谢您的澄清。此类信息无法通过 Oracle 文档轻松获得。我认为任何“valueOf”方法都是比喻性的,如果不是字面上的类型转换器。再次感谢我的朋友...

标签: javafx


【解决方案1】:

事实证明,调整外部 SplitPane 大小的解决方案是使用该类型的静态 setResizableWithParent 方法。

SplitPane.setResizableWithParent(outerPane, Boolean.TRUE);

添加后,SplitPane 会垂直调整大小,但水平会受到 GridPane 宽度的限制。网格仅包含一列,因此将 ColumnConstraint 的 PercentWidth 属性设置为 100 允许网格和 SplitPane 水平调整大小。

【讨论】:

    【解决方案2】:

    试试这个代码,

     yourSplitPane.setMinSize(500, 400);
     yourSplitPane.setMaxSize(500, 400);
    

    这里,500 是宽度,400 是高度。

    【讨论】:

      猜你喜欢
      • 2011-07-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-08
      • 1970-01-01
      • 1970-01-01
      • 2017-07-12
      • 1970-01-01
      相关资源
      最近更新 更多