FXML 是一种用于 JavaFX 的 XML 标记语言,通过声明式语法定义用户界面结构,实现界面与业务逻辑分离,提升可维护性与协作效率;其文件包含根节点、子组件及属性配置,并通过 FXMLLoader 加载,结合控制器类处理事件与组件注入,支持可视化工具如 Scene Builder 拖拽设计,简化复杂桌面应用开发流程。
FXML 是一种基于 XML 的标记语言,用于在 JavaFX 中定义用户界面的结构和布局。它允许开发者以声明式的方式描述 UI 组件(如按钮、文本框、布局容器等)及其层级关系,而不需要将这些界面代码写在 Java 源文件中。
为什么使用 FXML?
将界面设计与业务逻辑分离,提升代码可维护性:- 界面修改无需重新编译 Java 代码,便于前端调整
- 支持可视化编辑工具(如 Scene Builder),拖拽生成 FXML 文件
- 多人协作更高效,UI 设计师可以独立工作
FXML 文件的基本结构
一个典型的 FXML 文件包含根节点、子组件和属性设置:上面的例子中:
-
xmlns声明命名空间 -
fx:controller指定关联的 Java 控制器类 -
onAction="#handleButtonClick"绑定事件处理方法
如何加载 FXML 文件
在 Java 代码中通过 FXMLLoader 加载并显示界面:
FXMLLoader loader = new FXMLLoader(getClass().getResource("main.fxml"));
Parent root = loader.load();
Scene scene = new Scene(root);
Stage stage = new Stage();
stage.setScene(scene);
stage.show();
控制器类可通过 @FXML 注解注入组件或定义事件方法:
public class MainController {
@FXML private
Label label;
@FXML private Button button;
@FXML
private void handleButtonClick() {
label.setText("按钮被点击了!");
}
}
基本上就这些。FXML 让 JavaFX 的 UI 开发更清晰、灵活,特别适合构建复杂桌面应用界面。配合 Scene Builder 工具,能大幅提升开发效率。

Label label;
@FXML private Button button;
@FXML
private void handleButtonClick() {
label.setText("按钮被点击了!");
}
}







