作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试为在 ListView 节点上选择新项目时编写一个监听器。但问题是,当我运行该应用程序时,我得到了 NPE。通过查看它,我假设这可能会被抛出,因为运行时列表为空,但我不知道如何修复它。
更新1:经过进一步调查,我正在使用 btn Action 监听器编写。当我尝试访问所选项目时,抛出了空指针异常。解决方法是用 try/catch 包装它,最终修复了它。将尝试与 viewList 类似的方法,看看它是否有效
更新2:try/catch(NPE) 解决方法适用于 viewList 操作监听器
第186行代码:ListView.getSelectionModel().selectedItemProperty().addListener(new...
listView = new ListView<BusinessCard>();
observableList = FXCollections.observableList(cardModel.getCards());
//cardModel.getCards() -> ArrayList<BusinessCards>
// ListView Listener, changes text fields for the selected B.C in ViewLsit
listView.getSelectionModel().selectedItemProperty().addListener(new ChangeListener<BusinessCard>() {
@Override
public void changed(ObservableValue<? extends BusinessCard> arg0, BusinessCard oldval,BusinessCard newVal) {
if(newVal != null) setDataFields(newVal.getUI());
}
});
最佳答案
当调用listView.getSelectionModel().selectedItemProperty()...并且 View 列表为空时,抛出null。据说这是文档中的一种行为
解决方法:
// ListView Listener, changes text fields for the selected B.C in ViewList
listView.getSelectionModel().selectedItemProperty().addListener(new ChangeListener<BusinessCard>() {
@Override
public void changed(ObservableValue<? extends BusinessCard> arg0, BusinessCard oldval,BusinessCard newVal) {
if(newVal == null) return;
setDataFields(newVal.getUI());
}
});
关于java - 如何修复我的 View 列表所选项目操作监听器中的空指针?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38103316/
我正在尝试用 Swift 编写这段 JavaScript 代码:k_combinations 到目前为止,我在 Swift 中有这个: import Foundation import Cocoa e
我是一名优秀的程序员,十分优秀!