Интерфейс TreeSelectionModel
- Все известные реализующие классы:
-
DefaultTreeSelectionModel,JTree.EmptySelectionModel
public interface TreeSelectionModel
Состояние выбора дерева характеризуется набором TreePath и, необязательно, набором целых чисел. Сопоставление между TreePath и целыми числами осуществляется с помощью экземпляра RowMapper. Для корректной работы TreeSelectionModel не обязательно иметь RowMapper, но без RowMapper getSelectionRows вернёт null.
TreeSelectionModel может быть настроен для разрешения только одного пути (SINGLE_TREE_SELECTION) нескольких смежных путей (CONTIGUOUS_TREE_SELECTION) или нескольких несмежных путей (DISCONTIGUOUS_TREE_SELECTION). Для определения, являются ли TreePath смежными, используется RowMapper. При отсутствии RowMapper CONTIGUOUS_TREE_SELECTION и DISCONTIGUOUS_TREE_SELECTION ведут себя одинаково, то есть они разрешают любое количество путей в TreeSelectionModel.
Для модели выбора CONTIGUOUS_TREE_SELECTION каждый раз при изменении путей (setSelectionPath, addSelectionPath ...) TreePath проверяются на смежность. Проверку TreePath также можно принудительно выполнить, вызвав resetRowSelection. Способ сопоставления набора несмежных TreePath со смежным набором остается на усмотрение разработчиков этого интерфейса для реализации конкретной политики.
Реализации должны объединять дублирующиеся TreePath, которые добавляются в выбор. Например, следующий код
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 в список слушателей, которые уведомляются каждый раз при изменении набора выбранных TreePath. |
void |
clearSelection() |
Очищает текущий выбор. |
TreePath |
getLeadSelectionPath() |
Возвращает последний добавленный путь. |
int |
getLeadSelectionRow() |
Возвращает индекс ведущего выбора. |
int |
getMaxSelectionRow() |
Возвращает наибольшее значение, полученное от RowMapper для текущего набора выбранных TreePath. |
int |
getMinSelectionRow() |
Возвращает наименьшее значение, полученное от RowMapper для текущего набора выбранных TreePath. |
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 из списка слушателей, которые уведомляются каждый раз при изменении набора выбранных TreePath. |
void |
resetRowSelection() |
Обновляет сопоставление между TreePath и строками в этом объекте. |
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, 2023, 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/21/docs/api/java.desktop/javax/swing/tree/TreeSelectionModel.html