Cannot invoke "javafx.scene.layout.Pane.getScene()" because "this.rootPane" is null at com.bishe.user/com.bishe.user.UserController.initialize(UserController.java:62) at javafx.fxml/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2655) ... 12 more
时间: 2023-12-19 16:06:50 浏览: 224
这个错误提示说明在调用 `rootPane.getScene()` 方法时,`rootPane` 对象为空,即在 `UserController` 类中找不到名为 `rootPane` 的控件。请检查你的 FXML 文件中是否正确定义了名为 `rootPane` 的控件,并且在 `UserController` 类中使用 `@FXML` 注解将其与 FXML 文件中的控件关联起来。
例如,你的 FXML 文件中可能包含以下代码:
```xml
<Pane fx:id="rootPane" xmlns:fx="http://javafx.com/fxml/1">
<!-- 具体的界面组件 -->
</Pane>
```
然后,在 `UserController` 类中,你需要使用 `@FXML` 注解将 `rootPane` 属性与 FXML 文件中的 `fx:id="rootPane"` 控件关联起来,如下所示:
```java
public class UserController implements Initializable {
@FXML
private Pane rootPane; // 与 FXML 文件中的 fx:id="rootPane" 控件关联起来
@Override
public void initialize(URL location, ResourceBundle resources) {
// 获取场景对象
Scene scene = rootPane.getScene();
// 将整体对象的宽度和高度与场景的宽度和高度绑定
rootPane.prefWidthProperty().bind(scene.widthProperty());
rootPane.prefHeightProperty().bind(scene.heightProperty());
}
}
```
如果你已经正确关联了 `rootPane` 控件,但仍然出现上述错误提示,请检查 FXML 文件中的 `fx:id` 是否与 `@FXML` 注解中的属性名一致。
阅读全文