2012-12-12 160 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

相关问题