# JavaFxViewBinding
**Repository Path**: cbfg5210/JavaFxViewBinding
## Basic Information
- **Project Name**: JavaFxViewBinding
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2025-09-03
- **Last Updated**: 2025-09-04
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# JavaFxViewBinding
#### 这个项目目的是为了在 JavaFx 项目开发中可以告别手写 @FXML 控件注解,使控制器代码更加简洁。项目通过自定义任务实现类似 Android 中根据布局自动生成对应 ViewBinding 的效果,在控制器类中可以直接通过 ViewBinding 来使用指定控件。
### 使用说明:
#### 1、fxml 布局中不要指定 controller,如果指定了就不会生成 ViewBinding 类;
#### 布局示例:view-binding.fxml
```xml
```
#### 2、运行项目会自动生成对应的 ViewBinding 类:ViewBindingBinding.java。生成的 ViewBinding 类名称和包名路径和 fxml 布局的对应。
#### 控制器类示例:ViewBindingController.kt
```kotlin
class ViewBindingController {
//fxml 布局与生成的 ViewBinding 类名称及路径对应关系:
//resources/a.fxml -> ABinding
//resources/cbfg/vbinding/view-binding.fxml -> cbfg.vbinding.ViewBindingBinding
private val binding = ViewBindingBinding.bind()
//也可以通过传入 fxml 布局路径进行绑定:
//private val binding= ViewBindingBinding.bind("/cbfg/vbinding/view-binding.fxml")
init {
binding.btnHello.onAction = EventHandler {
binding.welcomeText.text = "Welcome to ViewBinding!"
}
}
companion object {
fun show(view: Node) {
val viewBindingLayoutView = ViewBindingController().binding.root
val scene = Scene(viewBindingLayoutView, 320.0, 240.0)
val stage = view.scene.window as Stage
stage.title = "ViewBinding 示例页"
stage.scene = scene
stage.show()
}
}
}
```
#### 3、外部调用显示页面
```kotlin
ViewBindingController.show(view)
```