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

現在、1行をtable2に送信し、ユーザーがボタンをクリックするたびにそのコンテンツを交換します。table1からtable2に行を追加するのが好きです。

これは、table2のコードで、selectedItems監視可能リストをsetItemsとして設定したために発生しました。したがって、ユーザーがテーブル1で行を選択すると、table2が自動的に追加されます。この問題を修正するには、table2の新しいObserbaleListを定義し、selecteditemsから値を追加します。

サンプルコード:

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 に答える