gpt4 book ai didi

listview - 在 javafx 中删除 ListView 上的选定项目

转载 作者:行者123 更新时间:2023-12-05 02:21:05 25 4
gpt4 key购买 nike

我有一个包含项目的 ListView,并开发了一个删除项目的删除函数。我面临的问题是当我删除一个项目时,下面的项目也会被删除。

为了让你更好的理解。例如:

如果我在列表中有 5 个项目并且我选择并删除了“项目 2”,那么项目 2 和 3 将被删除。项目 1、4 和 5 保留在 ListView 中。如果我删除列表中的最后一项,则该项目将被删除,并且我得到一个 java.lang.IndexOutOfBoundsException: Index: 0, Size: 0

这是我的代码:

    public void handleDeleteButton() {
btnDelete.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
final int selectedIdx = playerList.getSelectionModel().getSelectedIndex();
if (selectedIdx != -1) {
String itemToRemove = playerList.getSelectionModel().getSelectedItem();

final int newSelectedIdx =
(selectedIdx == playerList.getItems().size() - 1)
? selectedIdx - 1
: selectedIdx;

playerList.getItems().remove(selectedIdx);
playerList.getSelectionModel().select(newSelectedIdx);
//removes the player for the array
System.out.println("selectIdx: " + selectedIdx);
System.out.println("item: " + itemToRemove);
players.remove(selectedIdx);

}
}
});
}

我只想删除选定的项目。我怎么做?以及如何使表格可以多选?

playersListView 中使用的播放器列表。

最佳答案

您使用以下行从列表中删除了 2 个项目:

playerList.getItems().remove(selectedIdx);
// ^ this should return players
players.remove(selectedIdx);

删除其中一个。

要允许多选,设置MultipleSelectionModel.selectionModeSelectionMode.MULTIPLE .

关于listview - 在 javafx 中删除 ListView 上的选定项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36238918/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com