2016-05-27 8 views
0

に1つの列を表示する際に問題があります。TableView。私はJSONでデータを取得します。 クエリ:結果がTableviewに表示されない

[{"idmarks":3,"idusers":1,"mark":8.0,"test":{"date":"2016-01-01T12:34:59+01:00","idtests":2,"title":"test 2"}},{"idmarks":4,"idusers":1,"mark":4.0,"test":{"date":"2014-01-01T11:11:11+01:00","idtests":3,"title":"test 111"}}] 

コード:

@FXML 
private void action(){ 
    ObjectMapper mapper = new ObjectMapper(); 
    List<Marks> lista = null; 
    String path = "http://localhost:8080/Server/source/users/1/marks"; 
    try { 
     lista = mapper.readValue(new URL(path), new TypeReference<List<Marks>>(){}); 
    } catch (IOException ex) { 
     System.out.println(ex); 
    } 

    ObservableList<Marks> lis = FXCollections.observableArrayList(lista); 
    table.setItems(lis); 

    TableColumn<Marks, String> first = new TableColumn<Marks,String>("Mark"); 
    first.setCellValueFactory(new PropertyValueFactory("mark")); 
    TableColumn<Marks,String> second = new TableColumn<Marks,String>("Title"); 
    second.setCellValueFactory(new PropertyValueFactory("title")); 

    table.getColumns().setAll(first, second); 
} 

Marks.java

とスコア:

TableView

+0

「マーク」クラスを表示できますか?値がJSONから正しく読み込まれているかどうかを確認してください... – fabian

+0

はい、もちろんです。 Please [Marks.java](http://pastebin.com/AadPQ4KS) – wolacinio

答えて

0

簡易実装PropertyValueFactoryは、「プロパティのプロパティ」を取得することはできません。すなわち、それはあなたのMarksインスタンスのtestプロパティからtitleプロパティを取得することはできません。 Callbackを実装してください:

second.setCellValueFactory(cellData -> 
    new SimpleStringProperty(cellData.getValue().getTest().getTitle())); 
+0

パーフェクト。ありがとう@James_D – wolacinio

-1

あなたのコードの問題は

です
TableColumn<Marks, String> first = new TableColumn<Marks,String>("Mark"); 
    first.setCellValueFactory(new PropertyValueFactory("mark")); 

あなたがして、それを更新する必要があります: -

TableColumn<Marks, String> first = new TableColumn<Marks,String>("Mark"); 
    first.setCellValueFactory(new PropertyValueFactory<Marks,String>("mark")); 

アップデート同じ第二カラムのため、あなたが列を設定した後、テーブルに値を追加するので、table.setItems(lis);

table.getColumns().setAll(first, second);後を使用して、あなたの問題を解決することを。

乾杯

+1

生の 'PropertyValueFactory'型を使うのは間違いではありません**、それは悪い習慣です。とにかく実行時に型パラメータに関する情報は関係ありません。また、行または列を最初に追加しても問題ありません。 – fabian

+0

@Chean Hallanはまだ動作しません。準備されたコードは[ここ](http://pastebin.com/v3G6REPP) – wolacinio

+0

@ wolacinioあなたがあなたのコードで使用しているテーブルの宣言を見ることができませんそれを指定することはできますか? –

関連する問題