Java 如何在我的ViewList选定项操作侦听器中修复此空指针?
我正在尝试编写ListView节点上选择新项时的侦听器。但问题是,当我运行应用程序时,我得到了一个NPE。通过查看它,我假设这可能是因为列表在运行时为空而抛出的,但我不知道如何修复它 更新1: 通过进一步的调查,我正在和一个btn动作监听器一起写作。当我试图访问所选项目时,抛出了一个空指针异常。解决方法是用try/catch来包装它,最终解决了它。将尝试与viewList类似的方法,并查看它是否有效 更新2: try/catch(NPE)变通方法适用于viewList操作侦听器 第186行的代码:ListView.getSelectionModel().SelectEditeProperty().addListener(新…Java 如何在我的ViewList选定项操作侦听器中修复此空指针?,java,javafx,Java,Javafx,我正在尝试编写ListView节点上选择新项时的侦听器。但问题是,当我运行应用程序时,我得到了一个NPE。通过查看它,我假设这可能是因为列表在运行时为空而抛出的,但我不知道如何修复它 更新1: 通过进一步的调查,我正在和一个btn动作监听器一起写作。当我试图访问所选项目时,抛出了一个空指针异常。解决方法是用try/catch来包装它,最终解决了它。将尝试与viewList类似的方法,并查看它是否有效 更新2: try/catch(NPE)变通方法适用于viewList操作侦听器 第186行的代码
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=newlistview();
observableList=FXCollections.observableList(cardModel.getCards());
//cardModel.getCards()->ArrayList
//ListView侦听器,更改ViewLsit中所选B.C的文本字段
listView.getSelectionModel().SelectEditeProperty().addListener(新的ChangeListener()){
@凌驾
调用listView.getSelectionModel().SelectEditeProperty()时,公共void已更改(ObservalEvalue),并且视图列表为空,将抛出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());
}
});
//ListView侦听器,更改ViewList中所选B.C的文本字段
listView.getSelectionModel().SelectEditeProperty().addListener(新的ChangeListener()){
@凌驾
调用listView.getSelectionModel().SelectEditeProperty()时,公共void已更改(ObservalEvalue),并且视图列表为空,将抛出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());
}
});
//ListView侦听器,更改ViewList中所选B.C的文本字段
listView.getSelectionModel().SelectEditeProperty().addListener(新的ChangeListener()){
@凌驾
public void changed(ObservalEvalue)的可能重复我不认为这是重复的。这是一个关于JavaFX问题的特定问题。第186行不包括10行。哪一行是186?对于listView.getSelectionModel().selectedItemProperty().addListener(…
要引发此异常listView
需要是null
(这或其中一个链式方法调用返回null
,这在标准的listView
)问题是有效的,并且不是“什么是NullPointerException,如何修复它?”可能的重复我不认为它是重复的。这是一个关于JavaFX问题的特定问题。第186行不包括10行。哪一行是186?对于listView.getSelectionModel().selectedItemProperty().addListener(…
要引发此异常listView
需要null
(该方法或其中一个链式方法调用returnnull
,这在标准的ListView
)问题是有效的,它与“什么是NullPointerException,如何修复它”没有重复