我有一个带有 FXML 的 JavaFX 2.0 应用程序。我希望在调整带有应用程序的窗口大小时调整组件(文本字段、组合框、布局等)的大小。所以...
- 正如在JavaFX 的 Oracle 文档中所写的那样,要使用形状制作类似的东西,形状有一些特殊属性:
使用 JavaFX 构建 GUI 应用程序时,您会注意到 API 中的某些类已经实现了属性。例如,
javafx.scene.shape.Rectangle
该类包含arcHeight
、arcWidth
、height
、width
、x
和的属性y
。对于这些属性中的每一个,都会有与前面描述的约定相匹配的相应方法。例如,getArcHeight()
、setArcHeight(double)
、arcHeightProperty()
,它们共同指示(对开发人员和工具)给定的属性存在。*
要将侦听器添加到舞台,我必须执行以下操作:
stage.resizableProperty().addListener(new ChangeListener<Boolean>(){ @Override public void changed(ObservableValue<? extends Boolean> arg0, Boolean arg1, Boolean arg2){ throw new UnsupportedOperationException("Not supported yet."); } });
所以有两个问题:
- 为了进行一些绑定,我必须在控制器类中获得我的阶段。那么 - 我怎样才能在控制器类中获得一个阶段?
- 看起来 UI 控件没有任何宽度\高度属性,可以绑定到某些东西。或者也许我还没有找到它们。
那么,我该如何解决我的问题呢?
升级版。关于 Scene Builder 给 Sergey Grinev:当我在我的组件上使用Ctrl+K时(告诉它占据其父组件的整个区域) - 一切正常。
但是如果我想告诉我的组件占据50%的区域呢?例如,我有一个带有两个 VBox 的选项卡。标签的宽度是100px。每个Vbox的宽度为50 像素。VBox1 有x1=0和x2=50,而 VBox2 有x1=50和x2=100。然后我使用 JavaFX 应用程序调整窗口大小。现在我有标签的 Width = 200px。但是我的 VBoxes 宽度仍然是 = 50px: VBox1 有x1=0和x2=50,而 VBox2 有x1=150和x2=200。我需要它们是 VBox1 x1=0和x2=100和 VBox2 x1=100和x2=200。其中 x1 和 x2 值是 VBoxes 角的坐标。
在这种情况下,Scene Builder 如何帮助我?