이 지난 몇 일 나에게 실행시 오류의 톤을 일으키는 원인이되었다 - 내가 추가 한 것을 기억하지listView.getSelectionModel(). getSelectedIndex()가 -1을 반환하는 이유는 무엇입니까?
동시 수정 예외 널 포인터 예외가 있지만,이 부분에 코드 스 니펫 (snippet)을 추가 그리고 배열 예외를 벗어났습니다. 예외가 발생하면 null 포인터 포인터 예외의 맨 위에 음수 인덱스가 throw됩니다. 예외가 발생하면 viewList에 아무 것도 없을 때 throw됩니다.
왜 이렇게하고 있습니까? 나는 방금 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
}
무엇이'observableList'입니까? 정의 된 부분은 어디입니까? – niceman
목록 모델에 선택 취소 옵션이 있고 해당 이벤트의 'BusinessCard newVal'이'null '이고 이에 따라'listView.getSelectionModel(). getSelectedIndex()'가'-1'입니다. – gevorg
왜 '비즈니스 카드'를 목록에서 가져 옵니까? 'newVal'가 이미 그 값 (또는'null')을 포함하고있는 것처럼 보입니다, 당신이'ListView'를 가지고 정말 이상한 일을하지 않는다면 ... – fabian