📅  最后修改于: 2023-12-03 15:01:36.423000             🧑  作者: Mango
JavaFX 是一个用于创建富客户端应用程序的框架。它允许开发者使用 Java 编程语言以及 FXML 布局语言创建现代化的用户界面。FXML 是一种基于 XML 的语言,允许开发者定义应用程序的用户界面。
在开发应用程序时,我们通常需要访问 FXML 中定义的元素,例如按钮、标签、文本框等。本文将介绍如何使用 JavaFX 访问 FXML 元素。
以下是访问 FXML 元素的步骤:
定义 FXML 文件,可以使用 Scene Builder 工具创建。
在 FXML 文件中指定控件的 fx:id,例如:
<Button fx:id="myButton" text="Click me!" />
创建一个 .java 文件,用于控制 FXML 文件中的元素。
将 .java 文件作为控制器指定给 FXML 文件。
<AnchorPane fx:controller="com.example.MyController">
在 .java 文件中使用 @FXML
注解和相应的变量名称来访问 FXML 元素,例如:
@FXML
private Button myButton;
注意:变量名称必须与 FXML 中指定的 fx:id 相匹配。
在 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 相匹配,这才能成功访问。