2017-03-04 47 views
0

所以我有一個可觀察的ArrayList進入Java FX的TableView。每當我清除weeksData.clear(),我似乎無法重新分配變量。表和數據只是變空了。 FXCollections.observableArrayList()保持添加的原始數組,我只是簡單地清除參考變量?Reset Observable List

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

登錄

登錄首次

登錄第二時間而不清除數據

登錄第二次用weeksData.clear();即使以下清澈用相同的命令即第一次填寫表格

我想重新登錄到我的程序,但沒有將數據重複存入我的表中。只是爲了重建它。這是否更有意義?

+1

這是相當不清楚你在問什麼。你能否多描述一下你期望的行爲(舉例),以及你現在看到什麼樣的行爲? – n247s

+0

@ n247s我用圖片更新了描述,表明你想要我的意思是更好。我還能怎麼幫忙? – HelixTitan

+0

你用什麼代碼將測試數據添加到日曆中? – Sedrick

回答

0

沒有看到代碼,我假設你正在使用tableView.getItems().addAll(weeksData);或類似的東西來填充TableView,那是對的嗎?基本上,這只是將weeksData列表中的所有元素複製到tableView的項目列表中。當您清除或修改底層的weeksData列表時,可以這麼說,tableView未被「通知」。

你應該在你tableView使用setItems()方法來設置項目:

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

這基本上讓您weeksDatatableView同步。

另一種選擇,如果你不想兩個列表保持同步,是調用項目的TableView的列表,而不是在clear()方法:

tableview.getItems().clear(); 
0

我想通了。事實證明,我填充表格的方式是通過一個靜態的和最終的對象。當我清除weeksData時,它過濾掉並從連接類字段中擦除數據。儘管感謝所有的答案!