title: Find changed object in JavaFX ObservableArrayList
body: <p>It took me way too long to set up a listener on one property of the objects in my Observablelist and add a listener to it.</p>
  
  <pre><code> ObservableList&lt;Track&gt; observableResult = FXCollections.observableArrayList((Track tr)-&gt; new Observable[]{tr.selectedProperty()});
                      observableResult.addListener(new ListChangeListener&lt;Track&gt;() {
                          @Override
                          public void onChanged(Change&lt;? extends Track&gt; c) {
                              c.next();
                              for(Track k : c.getAddedSubList()){
                                  System.out.println(k.getTrackName());
                              }
                          }
                      });
  </code></pre>
  
  <p>But I can't seem to be able to locate the actual object the change has been made to. The Change class only appears to support added and removed members, which don't get triggered by the actual changes inside them. </p>
  
  <p>I have a workaround for this, just calling another method that would loop trough the entire ObservableArrayList and get for example, only the selected items, but that gets pretty expensive after I have a couple of thousand objects. Finding the source members that got changed would allow me to just push them to another array and save a bunch of overhead.</p>