Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/365.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 为什么listView.getSelectionModel().getSelectedIndex()返回-1?_Java_Javafx - Fatal编程技术网

Java 为什么listView.getSelectionModel().getSelectedIndex()返回-1?

Java 为什么listView.getSelectionModel().getSelectedIndex()返回-1?,java,javafx,Java,Javafx,在过去的几天里,这在运行时给我造成了大量的错误 -并发修改异常和空指针异常 我不记得我添加了什么,但是在这个片段中添加了一段代码,它抛出了一个数组越界异常,导致我发现它在视图列表中没有任何内容时抛出的空指针异常之上抛出了一个负索引 为什么要这样做?这周我刚开始玩弄javafx,这让我相信我一定是在什么地方搞砸了 ObservableList<BusinessCard> observableList = FXCollections.observableArrayList(); //in

在过去的几天里,这在运行时给我造成了大量的错误 -并发修改异常和空指针异常

我不记得我添加了什么,但是在这个片段中添加了一段代码,它抛出了一个数组越界异常,导致我发现它在视图列表中没有任何内容时抛出的空指针异常之上抛出了一个负索引

为什么要这样做?这周我刚开始玩弄javafx,这让我相信我一定是在什么地方搞砸了

ObservableList<BusinessCard> observableList = FXCollections.observableArrayList(); //initialized above

    // ListView Listener, changes text fields for the selected B.C in ViewList
    try {
        listView.getSelectionModel().selectedItemProperty().addListener(new ChangeListener<BusinessCard>() {
            @Override
            public void changed(ObservableValue<? extends BusinessCard> arg0, BusinessCard oldval,BusinessCard newVal) {
                int index = listView.getSelectionModel().getSelectedIndex();

                if(index == -1) return;  //Fix          

                BusinessCard card = observableList.get(index);                      
                setDataFields(card);         
            }
        });
    } catch (NullPointerException e1) {
        // Do nothing, NullPointer thrown when list is empty
    }
observeList observeList=FXCollections.observearraylist()//上面初始化的
//ListView侦听器,更改ViewList中所选B.C的文本字段
试一试{
listView.getSelectionModel().SelectEditeProperty().addListener(新的ChangeListener()){
@凌驾
公共空间改变了(ObservalEvalue我认为这里的问题很清楚

指选定的索引属性,该属性用于指示 选择模型中当前选定的索引值。选定的 索引要么为-1,表示没有选择,要么为 基础数据模型范围内的整数值 尺寸

我认为这里的问题很清楚

指选定的索引属性,该属性用于指示 选择模型中当前选定的索引值。选定的 索引要么为-1,表示没有选择,要么为 基础数据模型范围内的整数值 尺寸


什么是
observableList
?它在哪里定义?我猜您的列表模型有取消选择的选项,对于该事件
BusinessCard newVal
null
,相应地
listView.getSelectionModel().getSelectedIndex()
-1
。你为什么还要从列表中获取
名片
?在我看来
newVal
应该已经包含该值(或
null
),除非你对你的
ListView
做了一些非常奇怪的事情,
observableList
是什么?它定义在哪里?我猜你的列表模型有取消选择的选项,对于该事件
BusinessCard newVal
null
,相应地
ListView.getSelectionModel().getSelectedIndex()
-1
。你为什么还要从列表中获取
名片
?在我看来,
newVal
应该已经包含该值(或
null
),除非你对
列表视图做了一些非常奇怪的事情。。。