2017-03-04 16 views
0

Java FXのTableViewに入るObservable ArrayListがあります。 weeksData.clear()をクリアするたびに、変数を再割り当てすることはできません。テーブルとデータは空になります。 FXCollections.observableArrayList()は追加される元の配列を保持していますが、単に参照変数をクリアしていますか?Observable Listをリセットしてください

ObservableList<Week> weeksData; 
weeksData = FXCollections.observableArrayList(); 

ログイン

ログイン初めて

ログイン二度目も同じコマンドでクリア以下でweeksData.clear();で2回ログイン情報

をクリアせずに最初にテーブルに値が設定されました

私のプログラムにログインして、テーブルにデータを複製したくない場合。ちょうどそれを再構築する。これは理にかなっていますか?

+1

あなたが何を求めているのかははっきりしていません。期待した行動(例)と、今見ている行動をもう少し説明できますか? – n247s

+0

@ n247s写真を使って説明を更新し、あなたがより良いことを示していることを示しました。どのように私は助けることができますか? – HelixTitan

+0

テストデータをカレンダーに追加するのにどのコード行を使用していますか? – Sedrick

答えて

0

コードを表示せずにTableViewtableView.getItems().addAll(weeksData);などのデータを入力していると仮定していますが、それは正しいですか?基本的には、weeksDataリストのすべての要素をtableViewの項目リストにコピーするだけです。基礎となるweeksDataリストをクリアまたは変更すると、tableViewは「通知」されません。

あなたがsetItems()メソッドを使用してtableViewの項目を設定する必要があります。

ObservableList<Week> weeksData; 
weeksData = FXCollections.observableArrayList(); 
tableView.setItems(weeksData); 

これは基本的に同期して、あなたのweeksDatatableViewを保持します。

他のオプション、あなたは両方のリストが同期したくない場合は、代わりにアイテムのTableViewのリストにclear()メソッドを呼び出すことです:

tableview.getItems().clear(); 
0

私はそれを考え出しました。それは、静的で最終的なオブジェクトを介してテーブルを埋める方法でした。 weeksDataをクリアすると、それはフィルタリングされ、接続クラスフィールドからデータが消去されます。しかし、すべての答えに感謝!

関連する問題