0

我正在尝试将我在一个表中选择的行添加到另一个表中。我不确定如何动态追加行。到目前为止我所做的代码只是改变了第一行。

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);
4

1 回答 1

0

现在它只是将一行发送到 table2 并在用户每次单击按钮时交换其内容。我喜欢在 table2 中从 table1 添加更多行。

发生这种情况是因为在 table2 的代码中,您将 selectedItems 可观察列表设置为 setItems ,因此当用户在表 1 中选择一行/行时,它将自动添加 table2。要解决此问题,请为 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());
于 2012-12-14T20:10:33.520 回答