ListSelectionModel 如何获取多个选中元素
时间: 2023-12-19 21:03:45 浏览: 31
ListSelectionModel 提供了多种获取多个选中元素的方法,具体取决于你需要获取的元素类型和数量。以下是一些常用的方法:
1. `getMinSelectionIndex()` 和 `getMaxSelectionIndex()` 方法可以获取当前选中的最小和最大索引值,可以用来获取连续选中的元素。例如,你可以使用以下代码来获取选中的所有元素:
```
ListSelectionModel selectionModel = list.getSelectionModel();
int minIndex = selectionModel.getMinSelectionIndex();
int maxIndex = selectionModel.getMaxSelectionIndex();
if (minIndex != -1 && maxIndex != -1) {
for (int i = minIndex; i <= maxIndex; i++) {
if (selectionModel.isSelectedIndex(i)) {
Object item = list.getModel().getElementAt(i);
// 处理选中的元素
}
}
}
```
2. `getSelectedIndices()` 方法可以获取当前选中的所有索引值,返回一个 int 数组。例如,你可以使用以下代码来获取所有选中的元素:
```
ListSelectionModel selectionModel = list.getSelectionModel();
int[] selectedIndices = list.getSelectedIndices();
for (int i : selectedIndices) {
Object item = list.getModel().getElementAt(i);
// 处理选中的元素
}
```
3. `getSelectedValues()` 和 `getSelectedValuesList()` 方法可以获取当前选中的所有元素,分别返回一个 Object 数组和一个 List 对象。例如,你可以使用以下代码来获取所有选中的元素:
```
ListSelectionModel selectionModel = list.getSelectionModel();
Object[] selectedItems = list.getSelectedValues();
for (Object item : selectedItems) {
// 处理选中的元素
}
List<Object> selectedItemsList = list.getSelectedValuesList();
for (Object item : selectedItemsList) {
// 处理选中的元素
}
```