0
この過去数日間 のために私の実行時エラーのトンを引き起こしていた - 私は私が追加何を覚えていないなぜlistView.getSelectionModel()。getSelectedIndex()は-1を返しますか?
同時変更例外とNULLポインタ例外が、このセグメントでは、コードのスニペットを追加しました私はそれがヌーポインタの例外の上に負のインデックスをスローすることが判明私につながる範囲外の配列をスローしました。何もviewListに何もないときにスローします。
これはなぜですか?私は今週、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
なぜあなたはリストから「ビジネスカード」を取得するのですか?あなたが 'ListView'で本当に奇妙なことをしていない限り、' newVal'が既にその値(または 'null')を含んでいるはずです。 – fabian