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