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