Метод selectionModel.getSelectedIndices()
возвращает ObservableList<Integer>
, а не массив.Поэтому вы должны использовать этот список или преобразовать этот список в массив.
Чтобы получить размер списка, вы можете просто использовать метод list.size()
.Чтобы получить элемент из списка, вы можете использовать list.get(index)
. Здесь - полные документы Java для ObservableList
.
public void calculateTotal(){
int wheelIndex = wheels.getSelectionModel().getSelectedIndex();
int deckIndex = decks.getSelectionModel().getSelectedIndex();
int truckIndex = trucks.getSelectionModel().getSelectedIndex();
ObservableList<Integer> miscList = misc.getSelectionModel().getSelectedIndices();
int miscTotal = 0;
for(int i = 0; i < miscList.size(); i++){
miscTotal += miscPrices[miscList.get(i)];
}
}
В качестве альтернативы вы можете использовать потоки Java:
int miscTotal = miscList.stream().mapToInt(i -> miscPrices[i]).sum();
Если вы хотите преобразовать ObervableList
к массиву (я бы этого не делал) вы можете использовать метод list.toArray()
.