javafx FXMLLoader介绍
时间: 2023-08-10 09:09:06 浏览: 187
JavaFX FXMLLoader是JavaFX中用于加载FXML文件的类。FXML是一个类似于XML的标记语言,用于定义用户界面和控制器之间的关系。FXML文件可以使用JavaFX Scene Builder创建,也可以手动创建。
FXMLLoader负责将FXML文件加载到JavaFX场景图(Scene Graph)中,并将FXML文件中的控件与控制器类中的属性和方法进行绑定。FXMLLoader可以通过加载FXML文件创建JavaFX应用程序的用户界面。
FXMLLoader的使用非常简单,只需指定FXML文件的路径即可。代码示例:
```java
FXMLLoader loader = new FXMLLoader(getClass().getResource("sample.fxml"));
Parent root = loader.load();
```
其中,"sample.fxml"是FXML文件的路径。load()方法将返回FXML文件中定义的根节点,通常是一个Pane或Group对象。在FXML文件中的控件可以通过根节点的getChildren()方法获取。
FXMLLoader还可以将控制器类与FXML文件进行绑定。控制器类必须实现Initializable接口,并且可以使用@FXML注解将FXML文件中的控件与控制器类中的属性和方法进行绑定。例如:
```java
public class SampleController implements Initializable {
@FXML
private Button button;
@FXML
void handleButtonClick(ActionEvent event) {
// 处理按钮点击事件
}
@Override
public void initialize(URL url, ResourceBundle rb) {
// 在FXML文件加载完成后调用
}
}
```
FXMLLoader可以使用setController()方法将控制器类与FXML文件进行绑定。代码示例:
```java
FXMLLoader loader = new FXMLLoader(getClass().getResource("sample.fxml"));
SampleController controller = new SampleController();
loader.setController(controller);
Parent root = loader.load();
```
其中,SampleController是控制器类的名称。FXML文件中的控件可以通过控制器类中定义的属性进行访问。例如,button属性可以通过controller.button进行访问。
阅读全文