2012-12-12 200 views
0

我試圖將我在一個表格中選擇的行添加到另一個表格。我不知道如何動態追加行。我到目前爲止所做的代碼只是改變了第一行。JavaFX將數據行從一個表格添加到另一個表格

int hr = 1; 
if (hr == 1){ 
    ObservableList<TableColumn<ObservableList<StringProperty>, ?>> header = tableId.getColumns(); 
    auswTable.getColumns().addAll(header); 
    hr = 2; 
} 
    ObservableList<ObservableList<StringProperty>> content = 
      tableId.getSelectionModel().getSelectedItems(); 
    auswTable.setItems(content); 
+0

幫助我理解你的問題,當過用戶在表1中選擇一行時,它會自動添加表2?或者當用戶選擇Table1中的某些行後,如果他點擊addToTable2按鈕,那麼數據應該添加到表2中?第二個是 – invariant

+0

。用戶應該能夠在table1中選擇一行(代碼中的tableId)。如果用戶點擊addToTable2,該行應該出現在Table2(auswTable)中。 if語句傳輸列和標題。 – Chromos

+0

現在它只是向table2發送一行,並在用戶每次單擊該按鈕時交換其內容。我想從table1的table2中添加更多行。 – Chromos

回答

0

現在它只是發送一個行表2和交換在用戶每次點擊該按鈕時其內容 。我喜歡在table1中添加 table2中更多的行。

這是因爲發生在你對錶2的代碼,可以設置selectedItems觀察到的列表作爲setItems,所以當過用戶選擇的行/表1的行,它會自動添加表2。要解決此問題,請爲table2定義一個新的ObserbaleList,並將選定項目的值添加到它。

示例代碼:

private ObservableList<ObservableList<StringProperty>> table2Observable = 
              FXCollections.observableArrayList(); 

private boolean init = true; 

    if(init) { 

     ObservableList<TableColumn<ObservableList<StringProperty>, ?>> header = 
          tableId.getColumns(); 
    auswTable.getColumns().addAll(header); 
    auswTable.setItems(table2Observable); 
    init = false; 
    } 

    table2Observable.addAll(tableId.getSelectionModel().getSelectedItems()); 
+0

爲我工作:) thx – Chromos

相關問題