📜  javafx 访问 fxml 元素 - Java (1)

📅  最后修改于: 2023-12-03 15:01:36.423000             🧑  作者: Mango

JavaFX 访问 FXML 元素

JavaFX 是一个用于创建富客户端应用程序的框架。它允许开发者使用 Java 编程语言以及 FXML 布局语言创建现代化的用户界面。FXML 是一种基于 XML 的语言,允许开发者定义应用程序的用户界面。

在开发应用程序时,我们通常需要访问 FXML 中定义的元素,例如按钮、标签、文本框等。本文将介绍如何使用 JavaFX 访问 FXML 元素。

步骤

以下是访问 FXML 元素的步骤:

  1. 定义 FXML 文件,可以使用 Scene Builder 工具创建。

  2. 在 FXML 文件中指定控件的 fx:id,例如:

    <Button fx:id="myButton" text="Click me!" />
    
  3. 创建一个 .java 文件,用于控制 FXML 文件中的元素。

  4. 将 .java 文件作为控制器指定给 FXML 文件。

    <AnchorPane fx:controller="com.example.MyController">
    
  5. 在 .java 文件中使用 @FXML 注解和相应的变量名称来访问 FXML 元素,例如:

    @FXML
    private Button myButton;
    

    注意:变量名称必须与 FXML 中指定的 fx:id 相匹配。

  6. 在 Java 代码中使用访问器方法来访问 FXML 元素,例如:

    myButton.setOnAction(event -> System.out.println("Button clicked!"));
    

    这个例子中,我们在按钮上注册了一个回调事件,当用户单击按钮时,将打印一条消息到控制台中。

示例代码

下面是完整的示例代码:

// MyController.java
package com.example;

import javafx.fxml.FXML;
import javafx.scene.control.Button;

public class MyController {
    @FXML
    private Button myButton;

    public void initialize() {
        myButton.setOnAction(event -> System.out.println("Button clicked!"));
    }
}
<!-- My.fxml -->
<?xml version="1.0" encoding="UTF-8"?>

<?import javafx.scene.layout.AnchorPane?>
<?import javafx.scene.control.Button?>

<AnchorPane fx:id="root" prefHeight="200" prefWidth="320"
    xmlns="http://javafx.com/javafx/16"
    xmlns:fx="http://javafx.com/fxml/1"
    fx:controller="com.example.MyController">
    <Button fx:id="myButton" layoutX="120" layoutY="90" text="Click me!" />
</AnchorPane>

在本例中,我们创建了一个按钮并在 Java 代码中注册了一个回调事件。当用户单击按钮时,将在控制台中打印一条消息。

结论

通过以上步骤,我们可以非常方便地访问 FXML 文件中的元素。需要注意的是,变量名称必须与 FXML 中指定的 fx:id 相匹配,这才能成功访问。