Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在我的ViewList选定项操作侦听器中修复此空指针?_Java_Javafx - Fatal编程技术网

Java 如何在我的ViewList选定项操作侦听器中修复此空指针?

Java 如何在我的ViewList选定项操作侦听器中修复此空指针?,java,javafx,Java,Javafx,我正在尝试编写ListView节点上选择新项时的侦听器。但问题是,当我运行应用程序时,我得到了一个NPE。通过查看它,我假设这可能是因为列表在运行时为空而抛出的,但我不知道如何修复它 更新1: 通过进一步的调查,我正在和一个btn动作监听器一起写作。当我试图访问所选项目时,抛出了一个空指针异常。解决方法是用try/catch来包装它,最终解决了它。将尝试与viewList类似的方法,并查看它是否有效 更新2: try/catch(NPE)变通方法适用于viewList操作侦听器 第186行的代码

我正在尝试编写ListView节点上选择新项时的侦听器。但问题是,当我运行应用程序时,我得到了一个NPE。通过查看它,我假设这可能是因为列表在运行时为空而抛出的,但我不知道如何修复它

更新1: 通过进一步的调查,我正在和一个btn动作监听器一起写作。当我试图访问所选项目时,抛出了一个空指针异常。解决方法是用try/catch来包装它,最终解决了它。将尝试与viewList类似的方法,并查看它是否有效

更新2: try/catch(NPE)变通方法适用于viewList操作侦听器

第186行的代码:ListView.getSelectionModel().SelectEditeProperty().addListener(新…

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
(该方法或其中一个链式方法调用return
null
,这在标准的
ListView
)问题是有效的,它与“什么是NullPointerException,如何修复它”没有重复