javafx - Exception when using CheckListView of Controls FX -
i have error :
exception in thread "javafx application thread" java.lang.indexoutofboundsexception: index: 0 i thought because have use platform.runlater(), seems errors not come this.
here's function try correct platform.runlater() :
public void setlistairportforfilter(listairport listairport){ this.mylistairport = listairport; departurechecklistview.setitems(mylistairport.getobservabledepartureairtport()); arrivalchecklistview.setitems(mylistairport.getobservablearrivalairport()); departurechecklistview.getcheckmodel().getcheckeditems().addlistener(new listchangelistener<string>() { @override public void onchanged(listchangelistener.change<? extends string> c) { c.next(); if(c.wasadded()) { observableforbiddendeparture.add(c.getaddedsublist().get(0)); system.out.println("item checked : " + c.getaddedsublist().get(0)); } else if (c.wasremoved()) { observableforbiddendeparture.remove(c.getaddedsublist().get(0)); system.out.println("item unchecked : " + c.getremoved().get(0)); } } }); } the error triggered in second case, removed.
if element removed , calls listchangelistener, change have list of items removed , not list of items added.
in second case, checking c.wasremoved(), means if true, elements removed observablelist. removed values stored inside getremoved() sub-list , if try fetch getaddedsublist(), empty list.
you need use
observableforbiddendeparture.remove(c.getremoved().get(0)); instead of
observableforbiddendeparture.remove(c.getaddedsublist().get(0));
Comments
Post a Comment