2014-12-02 6 views
0

Internet에서 올바른 답을 찾지 못했습니다. 어떻게 MapProperty로 ObservableMap을 사용하여 tableviw를 채울 수 있습니까? 값으로 정렬 된 기사를 tableview에 표시하고 싶습니다. JavaFx : ObservableMap으로 TableView 채우기

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")); 
    } 
    } 
+0

당신이 [예] 겪었 사용하려는 경우 http://docs.oracle.com/javafx/2/ ui_controls/table-view.htm # CEGHGDFA)? – ItachiUchiha

+0

네,하지만 제 문제는 articleProperty()로 TableView를 바인딩하는 방법입니다 –

답변

0

한이 일을 간단한 방법은 키 집합을 통해 루프하고 문서의 목록 작성 :

ObservableList<Article> list = FXCollections.observableArrayList(); 

    for(String key : article.keySet()){ 
     Article art = new Article(key, article.get(key)); 
     list.add(art); 
    } 

을 그리고 당신은 list에 테이블 항목을 설정합니다.

그리고 당신은 (목록을 정렬 제 비교에 구현하고 collections.sort(list);

public class Article implements Comparable<Article> { 
     //... 
     public int compareTo(Article compareArticle) { 

       //ascending order 
       return this.value - compareArticle.getValue(); 
     } 

    } 
+0

Article art = new Article (key, article.get (key)); Articel에는 생성자가 없습니다. 대신이 목록에있는 모든 데이터에 대한 맵입니다. 이 목록을 FXML tableView와 어떻게 바인딩 할 수 있습니까? observableList를 정렬하는 방법은 무엇입니까? –

+1

생성자가 있어야합니다. 그렇지 않으면 기사 개체를 어떻게 만들지가됩니다. 또한 테이블에 기사를 추가하는 유일한 방법은 table.setItems (ObservableList