【问题标题】:linking javaFX elements directly to Java Code将 javaFX 元素直接链接到 Java 代码
【发布时间】:2016-04-11 07:32:26
【问题描述】:

我一直在研究 JavaFX,它非常有趣,但我没有看到的一件事是如何将 FXML 元素(文本字段、按钮)直接链接到 Java 代码,就像我们在 Android 中所做的那样,可以选择为每个项目,有没有办法将两者链接在一起,而不是总是使用 SceneBuilder 或在 FXML 中手动完成?

【问题讨论】:

    标签: java android javafx fxml


    【解决方案1】:

    您需要在 FXML 中的元素上设置 fx:id 属性(您可以手动或使用 SceneBuilder 进行)。请注意,您需要fx:id,而不仅仅是id(这是CSS id)。

    然后由元素创建的对象将被注入到控制器中与属性值同名的字段中。该字段应使用 @FXML 注释(推荐)或公开(强烈不推荐)。

    例子:

    <Button fx:id="myButton" text="Click Me" onAction="#handleButtonClick"/>
    

    在控制器中

    public class Controller {
    
        @FXML
        private Button myButton ;
    
        @FXML
        public void handleButtonClick() {
            System.out.println("Button was clicked!");
        }
    }
    

    【讨论】:

      【解决方案2】:

      只需在控制器类中使用FXML注解即可,例如:

      @FXML private Label fooLabel;
      @FXML private TextField barTextField;
      

      变量名称与 FXML 元素 ID 匹配的位置。

      【讨论】:

        【解决方案3】:

        我刚刚想通了,在控制器类中我可以将对象名称(例如 TextField 名称)设置为我给 textField 提供的确切 ID 我想在对象创建顶部使用 @FXML 标记进行操作代码示例是 所以假设我有一个带有TextFieldid = txt_username 的FXML 文件

         <TextField layoutX="167.0" layoutY="194.0" promptText="userName">
             <font>
                <Font size="18.0" />
        

        我可以在顶部创建一个对象名称txt_username with the @FXML annotation

            @FXML
        private TextField txt_username;
        

        【讨论】:

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