map - JavaFx: populate TableView with ObservableMap -


i coudn't find in internet right answer, how can populate tableviw observablemap mapproperty. show articles in tableview sorted value.

public class article {      private mapproperty<string, integer> article = new simplemapproperty<>();            public final observablemap<string, integer> gearticle() {             return article.get();         }          public final void setarticle(observablemap<string, integer> value) {             article.set(value);         }          public mapproperty<string, integer> articleproperty() {             return article;         }     } 

 public class tablecontroller extends vbox implements initializable{      @fxml private tableview<article> tableview;     @fxml private tablecolumn<article, string> article;     @fxml private tablecolumn<article, integer> count;      ......      @override         public void initialize(url location, resourcebundle resources) {             article.setcellvaluefactory(new propertyvaluefactory<article, string>("article"));             count.setcellvaluefactory(new propertyvaluefactory<article, integer>("count"));     }   } 

one simple way of doing loop on keyset , create list of articles:

observablelist<article> list =  fxcollections.observablearraylist();      for(string key : article.keyset()){         article art = new article(key, article.get(key));         list.add(art);     } 

and set table items list.

and if want sort list, implement in article comparable, , use collections.sort(list);

public class article implements comparable<article> {        //...         public int compareto(article comparearticle ) {                //ascending order               return this.value - comparearticle.getvalue();         }      } 

Comments

Popular posts from this blog

ruby on rails - RuntimeError: Circular dependency detected while autoloading constant - ActiveAdmin.register Role -

c++ - OpenMP unpredictable overhead -

javascript - Wordpress slider, not displayed 100% width -