【发布时间】:2020-04-24 08:38:39
【问题描述】:
我需要处理 JavaFx13 滚动到底部事件,但是这段代码:
@Override
public void initialize(URL location, ResourceBundle resources) {
// ...
// ScrollBar verticalBar = (ScrollBar) this.emailsTable.lookupAll(".scroll-bar");
ScrollBar verticalBar = (ScrollBar) this.emailsTable.lookup(".scroll-bar:vertical");
verticalBar.valueProperty().addListener((obs, oldValue, newValue) -> { // <-- Line 49
// if (verticalBar.getOrientation() != Orientation.VERTICAL) return;
if (newValue.doubleValue() >= verticalBar.getMax()) {
System.out.println("BOTTOM!");
}
});
// ...
}
...在 FXML 加载时返回该错误:
Caused by: java.lang.NullPointerException
at it.unito.prog.views.MainView.initialize(MainView.java:49)
at javafx.fxml/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2573)
... 19 more
【问题讨论】:
-
注释代码也产生相同的异常(...略有不同)
-
您的
verticalBar对象为空,因为this.emailsTable.lookup(".scroll-bar:vertical");返回null -
在调用 initialize 时并非所有内容都已初始化。在实际显示场景后尝试访问该属性。
标签: java javafx nullpointerexception