gpt4 book ai didi

JavaFx 13 - TableView Vertical ScrollBar 处理程序返回 NullPointerException

转载 作者:行者123 更新时间:2023-12-02 03:03:15 24 4
gpt4 key购买 nike

我需要处理 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

最佳答案

您可以使用 tableView.scrollTo() 滚动滚动到索引或特定项目。

要收到发生滚动的通知,您可以使用 tableView.setOnScrollTo() .

不要为此任务使用查找

滚动条仅在需要时显示。当您查找时,它可能存在,也可能不存在。

如果您尝试lookup()在将项目添加到 TableView 之前,或者在将 TableView 添加到场景之前,或者在场景经过渲染过程之前,滚动条几乎肯定不存在。如果当您尝试查找时滚动条不存在,则查找方法将返回空值(这就是您所看到的)。即使您第一次查找时存在滚动条,它也可能随后被删除并根据需要添加新的滚动条,因此您原来的引用最终将变得无效。所以我不推荐您基于查找的方法。

关于JavaFx 13 - TableView Vertical ScrollBar 处理程序返回 NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59618257/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com