0

我从场景构建器中添加了一个 vbox,并将其可见性设置为 false。基于某些条件,我想将可见性设置为 true。我该怎么做?

我也是java新手,所以我无法解决root.getChildren()引发编译错误的问题,getChildren()在Parent中具有受保护的访问权限。能否请你帮忙?

4

1 回答 1

1

它需要三个步骤。

  1. 在 FXML 文件中定义控制器 Java 类。在 SceneBuilder 中或直接在 XML 中。
  2. 在控制器中定义字段 VBox 并@FXML使用 XML 中的名称对其进行注释,例如fx:id. 这将告诉 JavaFX 将您的字段与正确的 VBox 实例绑定。
  3. 用 VBox 做任何你想做的事

XML 定义(注意fx:controllerfx:id):

    <BorderPane prefHeight="600.0" prefWidth="1024.0" xmlns:fx="http://javafx.com/fxml/1" xmlns="http://javafx.com/javafx/2.2" fx:controller="foo.bar.MainController">
      <center>
        <VBox fx:id="content" fillWidth="true" prefHeight="200.0" prefWidth="100.0" />
      ...

控制器类:

    public class MainController {
          @FXML
          private VBox content;
    }

如果你想从外部调用控制器类,你将从这样的正确实例中获取控制器实例FXMLLoader

   MainController controller = (MainController) loader.getController();
于 2014-01-15T14:48:19.877 回答