Интерфейс TreeSelectionModel
- Все известные классы-реализации:
DefaultTreeSelectionModel, JTree.EmptySelectionModel
public interface TreeSelectionModel
Состояние выбора в дереве характеризуется набором TreePaths и, при необходимости, набором целых чисел. Сопоставление TreePath с целым числом выполняется с помощью экземпляра RowMapper. Для корректной работы TreeSelectionModel не обязательно иметь RowMapper, однако без RowMapper getSelectionRows вернет null.
TreeSelectionModel можно настроить так, чтобы разрешить только один путь (SINGLE_TREE_SELECTION), несколько смежных путей (CONTIGUOUS_TREE_SELECTION) или несколько несмежных путей (DISCONTIGUOUS_TREE_SELECTION). Для определения смежности TreePaths используется RowMapper. При отсутствии RowMapper CONTIGUOUS_TREE_SELECTION и DISCONTIGUOUS_TREE_SELECTION работают одинаково, то есть позволяют включать в TreeSelectionModel любое количество путей.
Для модели выбора с режимом CONTIGUOUS_TREE_SELECTION при каждом изменении путей (setSelectionPath, addSelectionPath ...) TreePaths снова проверяются на смежность. Проверку TreePaths также можно принудительно выполнить, вызвав resetRowSelection. Реализации этого интерфейса могут самостоятельно выбрать политику преобразования набора несмежных TreePaths в смежный набор.
Реализации должны объединять повторяющиеся TreePaths, добавляемые к выбору. Например, приведенный ниже код
TreePath[] paths = new TreePath[] { treePath, treePath };
treeSelectionModel.setSelectionPaths(paths);
должен привести к выбору только одного пути: treePath, а не двух копий treePath. Ведущий TreePath — это последний добавленный (или установленный) путь. Ведущая строка — это строка, соответствующая TreePath согласно RowMapper.
Краткое описание полей
| Модификатор и тип | Поле | Описание |
|---|---|---|
static final int |
CONTIGUOUS_TREE_SELECTION |
Выбор может содержать только смежные элементы. |
static final int |
DISCONTIGUOUS_TREE_SELECTION |
Выбор может содержать любое количество элементов, которые не обязательно должны быть смежными. |
static final int |
SINGLE_TREE_SELECTION |
В выборе одновременно может находиться только один путь. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
void |
addPropertyChangeListener |
Добавляет PropertyChangeListener в список слушателей. |
void |
addSelectionPath |
Добавляет путь к текущему выбору. |
void |
addSelectionPaths |
Добавляет пути к текущему выбору. |
void |
addTreeSelectionListener |
Добавляет x в список слушателей, получающих уведомления при каждом изменении набора выбранных TreePaths. |
void |
clearSelection() |
Очищает текущий выбор. |
TreePath |
getLeadSelectionPath() |
Возвращает последний добавленный путь. |
int |
getLeadSelectionRow() |
Возвращает индекс ведущего элемента выбора. |
int |
getMaxSelectionRow() |
Возвращает наибольшее значение, полученное от RowMapper для текущего набора выбранных TreePaths. |
int |
getMinSelectionRow() |
Возвращает наименьшее значение, полученное от RowMapper для текущего набора выбранных TreePaths. |
RowMapper |
getRowMapper() |
Возвращает экземпляр RowMapper, способный сопоставить TreePath со строкой. |
int |
getSelectionCount() |
Возвращает количество выбранных путей. |
int |
getSelectionMode() |
Возвращает текущий режим выбора: SINGLE_TREE_SELECTION, CONTIGUOUS_TREE_SELECTION или DISCONTIGUOUS_TREE_SELECTION. |
TreePath |
getSelectionPath() |
Возвращает первый путь в выборе. |
TreePath[] |
getSelectionPaths() |
Возвращает пути в выборе. |
int[] |
getSelectionRows() |
Возвращает все строки, выбранные в данный момент. |
boolean |
isPathSelected |
Возвращает true, если путь path присутствует в текущем выборе. |
boolean |
isRowSelected |
Возвращает true, если выбрана строка, обозначенная row. |
boolean |
isSelectionEmpty() |
Возвращает true, если выбор в данный момент пуст. |
void |
removePropertyChangeListener |
Удаляет PropertyChangeListener из списка слушателей. |
void |
removeSelectionPath |
Удаляет путь из выбора. |
void |
removeSelectionPaths |
Удаляет пути из выбора. |
void |
removeTreeSelectionListener |
Удаляет x из списка слушателей, получающих уведомления при каждом изменении набора выбранных TreePaths. |
void |
resetRowSelection() |
Обновляет сопоставление путей TreePaths со строками для этого объекта. |
void |
setRowMapper |
Устанавливает экземпляр RowMapper. |
void |
setSelectionMode |
Задает модель выбора, которая должна быть одной из следующих: SINGLE_TREE_SELECTION, CONTIGUOUS_TREE_SELECTION или DISCONTIGUOUS_TREE_SELECTION. |
void |
setSelectionPath |
Устанавливает путь в качестве выбранного. |
void |
setSelectionPaths |
Устанавливает путь в качестве выбранного. |
Подробное описание полей
SINGLE_TREE_SELECTION
static final int SINGLE_TREE_SELECTION
- См. также:
CONTIGUOUS_TREE_SELECTION
static final int CONTIGUOUS_TREE_SELECTION
- См. также:
DISCONTIGUOUS_TREE_SELECTION
static final int DISCONTIGUOUS_TREE_SELECTION
- См. также:
Подробное описание методов
setSelectionMode
void setSelectionMode(int mode)
Если текущий выбор недопустим для нового режима, он может измениться. Например, если при переключении режима выбраны три TreePaths, а новый режим — SINGLE_TREE_SELECTION, выбранным останется только один TreePath. Конкретная реализация определяет, какой именно TreePath останется выбранным.
- Параметры:
-
mode— задаваемый режим выбора
getSelectionMode
int getSelectionMode()
SINGLE_TREE_SELECTION, CONTIGUOUS_TREE_SELECTION или DISCONTIGUOUS_TREE_SELECTION.- Возвращает:
- текущий режим выбора
setSelectionPath
void setSelectionPath(TreePath path)
path имеет значение null, результат такой же, как при вызове clearSelection.- Параметры:
-
path— новый путь для выбора
setSelectionPaths
void setSelectionPaths(TreePath[] paths)
paths имеет значение null, результат такой же, как при вызове clearSelection.- Параметры:
-
paths— новый набор выбранных путей
addSelectionPath
void addSelectionPath(TreePath path)
path имеет значение null.- Параметры:
-
path— новый путь для добавления к текущему выбору
addSelectionPaths
void addSelectionPaths(TreePath[] paths)
paths имеет значение null.- Параметры:
-
paths— новые пути для добавления к текущему выбору
removeSelectionPath
void removeSelectionPath(TreePath path)
path имеет значение null.- Параметры:
-
path— путь для удаления из выбора
removeSelectionPaths
void removeSelectionPaths(TreePath[] paths)
paths входят в выбор, уведомляются TreeSelectionListeners. Метод ничего не делает, если paths имеет значение null.- Параметры:
-
paths— пути для удаления из выбора
getSelectionPath
TreePath getSelectionPath()
RowMapper.- Возвращает:
- первый путь в выборе
getSelectionPaths
TreePath[] getSelectionPaths()
- Возвращает:
- пути в выборе
getSelectionCount
int getSelectionCount()
- Возвращает:
- количество выбранных путей
isPathSelected
boolean isPathSelected(TreePath path)
path присутствует в текущем выборе.- Параметры:
-
path— проверяемый путь - Возвращает:
- входит ли
pathв текущий выбор
isSelectionEmpty
boolean isSelectionEmpty()
- Возвращает:
- является ли выбор в данный момент пустым
clearSelection
void clearSelection()
setRowMapper
void setRowMapper(RowMapper newMapper)
- Параметры:
-
newMapper— задаваемый RowMapper
getRowMapper
RowMapper getRowMapper()
- Возвращает:
- экземпляр RowMapper, способный сопоставить TreePath со строкой
getSelectionRows
int[] getSelectionRows()
- Возвращает:
- все строки, выбранные в данный момент
getMinSelectionRow
int getMinSelectionRow()
- Возвращает:
- наименьшее значение, полученное от RowMapper для текущего набора выбранных TreePaths
getMaxSelectionRow
int getMaxSelectionRow()
- Возвращает:
- наибольшее значение, полученное от RowMapper для текущего набора выбранных TreePaths
isRowSelected
boolean isRowSelected(int row)
row.- Параметры:
-
row— проверяемая строка - Возвращает:
- выбрана ли строка
resetRowSelection
void resetRowSelection()
Обычно вызывать этот метод не требуется: JTree и связанные с ним слушатели сделают это за вас. Если вы реализуете собственный класс представления, этот метод необходимо вызвать самостоятельно.
getLeadSelectionRow
int getLeadSelectionRow()
- Возвращает:
- индекс ведущего элемента выбора
getLeadSelectionPath
TreePath getLeadSelectionPath()
- Возвращает:
- последний добавленный путь
addPropertyChangeListener
void addPropertyChangeListener(PropertyChangeListener listener)
При изменении режима выбора будет сгенерировано событие PropertyChangeEvent.
- Параметры:
-
listener— добавляемый PropertyChangeListener
removePropertyChangeListener
void removePropertyChangeListener(PropertyChangeListener listener)
- Параметры:
-
listener— удаляемый PropertyChangeListener
addTreeSelectionListener
void addTreeSelectionListener(TreeSelectionListener x)
- Параметры:
-
x— добавляемый слушатель
removeTreeSelectionListener
void removeTreeSelectionListener(TreeSelectionListener x)
- Параметры:
-
x— удаляемый слушатель
© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/25/docs/api/java.desktop/javax/swing/tree/TreeSelectionModel.html