Javafx 将用户的选择从一个ListView移动到另一个ListView Java FX

Javafx 将用户的选择从一个ListView移动到另一个ListView Java FX,javafx,fxml,Javafx,Fxml,下面的代码包含两个Listview,用户要从第一个列表视图中选择一个名称,当点击add按钮时,它会将内容移动到一个数组中,第二个列表视图将在进行更改时更新和显示该数组 我认为我们的想法是正确的,将所选内容转换为字符串,然后将其添加到数组中。但当尝试打印阵列以进行测试时,不会显示任何内容 任何反馈或帮助都将不胜感激 package poolproject; import java.net.URL; import java.util.ArrayList; import java.util.Reso

下面的代码包含两个Listview,用户要从第一个列表视图中选择一个名称,当点击add按钮时,它会将内容移动到一个数组中,第二个列表视图将在进行更改时更新和显示该数组

我认为我们的想法是正确的,将所选内容转换为字符串,然后将其添加到数组中。但当尝试打印阵列以进行测试时,不会显示任何内容

任何反馈或帮助都将不胜感激

package poolproject;

import java.net.URL;
import java.util.ArrayList;
import java.util.ResourceBundle;
import javafx.beans.value.ChangeListener;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.Button;
import javafx.scene.control.ListView;

/**
 *
 * @author Alex
 */
public class FXMLDocumentController implements Initializable {

    @FXML
    private Button BtnAdd;

    @FXML
    private ListView<String> boxTeam;

    @FXML
    private ListView<String> boxPlayers;

    ArrayList<String> team= new ArrayList();
    String player;

    final ObservableList<String> playersAvailable = FXCollections.observableArrayList(
            "Kardi","Gilmore","Clark");

    final ObservableList<String> teamOutput = FXCollections.observableArrayList(team);

    @FXML
    private void deleteAction(ActionEvent action){
        int selectedItem = boxPlayers.getSelectionModel().getSelectedIndex();
        player = Integer.toString(selectedItem);
        team.add(player);

        playersAvailable.remove(selectedItem);
    }


    @Override
    public void initialize(URL url, ResourceBundle rb) {

        boxPlayers.setItems(playersAvailable);
        boxTeam.setItems(teamOutput);


    }    

}

将项添加到普通列表不会导致触发更新ArrayList没有注册任何侦听器的机制。将项目添加到ObservableList将导致侦听器收到通知


先生,您是一位绅士和学者谢谢。这个解决方案非常有效
String selectedItem = boxPlayers.getSelectionModel().getSelectedItem();
playersAvailable.remove(selectedItem);
teamOutput.add(selectedItem);