【问题标题】:What's the difference between fx:id and id: in JavaFX?JavaFX 中的 fx:id 和 id: 有什么区别?
【发布时间】:2014-07-04 09:04:25
【问题描述】:

也许是一个真正新手的问题....

通过阅读本教程,我开始使用 Scene Builder 在 FMXL 应用程序中学习 JavaFX:

http://docs.oracle.com/javase/8/javafx/get-started-tutorial/fxml_tutorial.htm

所以一旦我应用了一些更改,这 2 个 ID 的问题就出现了……我可能错过或混淆了它们……

谁能告诉我它们在哪些情况下被使用?

【问题讨论】:

  • id 您使用,为您的组件设置一个 CSS ID,例如 并且在您的样式表中您有类似的东西@ 987654324@ 所以这将应用于你的Text 和你必须使用的fx:id,如果你想在你的控制器类中使用你的组件,你用@FXML Text myWelcomeText注释它们
  • @Patrick 在 CSS 中不是.welcome-text,而是#welcome-text

标签: java xml javafx scenebuilder


【解决方案1】:

id 用于设置 CSS ID 到您的组件,例如 <Text id="welcome-text" .../> 并且在您的样式表中您有类似 #welcome-text { font-size: 16pt; } 的内容,因此这将应用于您的 Text .

fx:id 如果你想在你的 Controller 类中使用你的组件,你可以使用 @FXML Text myWelcomeText 注释它们。

【讨论】:

  • 那么当我们需要对节点进行样式化并且还想分配一个id时,我们必须为节点分配id和fx:id?
  • @Fandi 目前,如果只分配了fx:id,该值也将用于id 属性。但我不确定这是记录在案的行为还是实现细节。
【解决方案2】:

fx:id是fxml中组件关联的标识,用于构建控制器,id用于css。

【讨论】:

    【解决方案3】:

    我查看了使用JavaFX Scene Builder 生成的 FXML 文档。您可以使用 fx:id 从 Java 控制器访问控件。 (编辑)我的立场是正确的,id 确实很重要。

    您可以像这样从 FXML 文档中应用 css:

    <Slider id="css_id" fx:id="myslider" styleClass="style_name" .../>
    

    (用任何控件替换滑块)

    与Java控制器交互:

    @FXML
    Slider myslider;
    

    【讨论】:

    • css id和css类是有区别的。
    【解决方案4】:

    在 JavaFX 中,id 用于为组件设置 CSS ID。 fx:id 用于在代码中访问该组件(即在控制器类中)。 fx:id 就像组件名称一样工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多