Интерфейс TreeSelectionModel
- Все известные реализующие классы:
- DefaultTreeSelectionModel, JTree.EmptySelectionModel
public interface TreeSelectionModel
Этот интерфейс представляет текущее состояние выбора для компонента дерева. Информацию и примеры использования моделей выбора дерева см. на странице Как использовать деревья в Java Tutorial.
Состояние выбора дерева характеризуется набором TreePaths и, необязательно, набором целых чисел. Сопоставление между TreePath и целым числом выполняется с помощью экземпляра RowMapper. Модели выбора дерева не обязательно должны иметь RowMapper для корректной работы, но без RowMapper getSelectionRows вернёт null.
Модель выбора дерева может быть настроена на разрешение только одного пути (SINGLE_TREE_SELECTION) , нескольких смежных путей (CONTIGUOUS_TREE_SELECTION) или нескольких несвязанных путей (DISCONTIGUOUS_TREE_SELECTION). Экземпляр RowMapper используется для определения, являются ли TreePaths смежными. В отсутствие 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 int |
CONTIGUOUS_TREE_SELECTION Выбор может быть только смежным. |
static int |
DISCONTIGUOUS_TREE_SELECTION Выбор может содержать любое количество элементов, которые не обязательно должны быть смежными. |
static int |
SINGLE_TREE_SELECTION Выбор может содержать только один путь за раз. |
Методы
| Модификатор и тип | Метод и описание |
|---|---|
void |
addPropertyChangeListener(PropertyChangeListener listener) Добавляет PropertyChangeListener в список слушателей. |
void |
addSelectionPath(TreePath path) Добавляет путь к текущему выбору. |
void |
addSelectionPaths(TreePath[] paths) Добавляет пути к текущему выбору. |
void |
addTreeSelectionListener(TreeSelectionListener x) Добавляет x в список слушателей, уведомляемых при каждом изменении набора выбранных TreePaths. |
void |
clearSelection() Очищает текущий выбор. |
TreePath |
getLeadSelectionPath() Возвращает последний добавленный путь. |
int |
getLeadSelectionRow() Возвращает индекс ведущего выбора. |
int |
getMaxSelectionRow() Возвращает наибольшее значение, полученное от RowMapper для текущего набора выбранных TreePaths. |
int |
getMinSelectionRow() Возвращает наименьшее значение, полученное от RowMapper для текущего набора выбранных TreePaths. |
RowMapper |
getRowMapper() Возвращает экземпляр RowMapper, способный сопоставить TreePath со строкой. |
int |
getSelectionCount() Возвращает количество выбранных путей. |
int |
getSelectionMode() Возвращает текущий режим выбора, один из |
TreePath |
getSelectionPath() Возвращает первый путь в выборе. |
TreePath[] |
getSelectionPaths() Возвращает пути в выборе. |
int[] |
getSelectionRows() Возвращает все текущие выбранные строки. |
boolean |
isPathSelected(TreePath path) Возвращает true, если путь, |
boolean |
isRowSelected(int row) Возвращает true, если строка, идентифицированная по |
boolean |
isSelectionEmpty() Возвращает true, если выбор в настоящее время пуст. |
void |
removePropertyChangeListener(PropertyChangeListener listener) Удаляет PropertyChangeListener из списка слушателей. |
void |
removeSelectionPath(TreePath path) Удаляет путь из выбора. |
void |
removeSelectionPaths(TreePath[] paths) Удаляет пути из выбора. |
void |
removeTreeSelectionListener(TreeSelectionListener x) Удаляет x из списка слушателей, уведомляемых при каждом изменении набора выбранных TreePaths. |
void |
resetRowSelection() Обновляет сопоставление этого объекта между TreePaths и строками. |
void |
setRowMapper(RowMapper newMapper) Устанавливает экземпляр RowMapper. |
void |
setSelectionMode(int mode) Устанавливает модель выбора, которая должна быть одной из SINGLE_TREE_SELECTION, CONTIGUOUS_TREE_SELECTION или DISCONTIGUOUS_TREE_SELECTION. |
void |
setSelectionPath(TreePath path) Устанавливает выбор на путь. |
void |
setSelectionPaths(TreePath[] paths) Устанавливает выбор на путь. |
Поля
SINGLE_TREE_SELECTION
static final int SINGLE_TREE_SELECTION
Выбор может содержать только один путь одновременно.
- См. также:
- Значения константных полей
CONTIGUOUS_TREE_SELECTION
static final int CONTIGUOUS_TREE_SELECTION
Выбор может быть только смежным. Это будет выполняться только в том случае, если предоставлен экземпляр RowMapper. То есть, если RowMapper не задан, это ведет себя так же, как DISCONTIGUOUS_TREE_SELECTION.
- См. также:
- Значения константных полей
DISCONTIGUOUS_TREE_SELECTION
static final int DISCONTIGUOUS_TREE_SELECTION
Выбор может содержать любое количество элементов, которые не обязательно должны быть смежными.
- См. также:
- Значения константных полей
Методы
setSelectionMode
void setSelectionMode(int mode)
Устанавливает модель выбора, которая должна быть одной из SINGLE_TREE_SELECTION, CONTIGUOUS_TREE_SELECTION или DISCONTIGUOUS_TREE_SELECTION.
Это может изменить выбор, если текущий выбор не является допустимым для новой модели. Например, если выбраны три TreePath, когда режим изменяется на SINGLE_TREE_SELECTION, будет выбран только один TreePath. Конкретная реализация должна определить, какой TreePath останется выбранным.
getSelectionMode
int getSelectionMode()
Возвращает текущий режим выбора, один из SINGLE_TREE_SELECTION, CONTIGUOUS_TREE_SELECTION или DISCONTIGUOUS_TREE_SELECTION.
setSelectionPath
void setSelectionPath(TreePath path)
Устанавливает выбор на путь. Если это изменение, то TreeSelectionListeners уведомляются. Если path равно null, это имеет тот же эффект, что и вызов clearSelection.
- Параметры:
-
path- новый путь для выбора
setSelectionPaths
void setSelectionPaths(TreePath[] paths)
Устанавливает выбор на путь. Если это изменение, то TreeSelectionListeners уведомляются. Если paths равно null, это имеет тот же эффект, что и вызов clearSelection.
- Параметры:
-
paths- новый выбор
addSelectionPath
void addSelectionPath(TreePath path)
Добавляет путь к текущему выбору. Если путь отсутствует в текущем выборе, TreeSelectionListeners уведомляются. Это не имеет эффекта, если path равно null.
- Параметры:
-
path- новый путь для добавления к текущему выбору
addSelectionPaths
void addSelectionPaths(TreePath[] paths)
Добавляет пути к текущему выбору. Если любой из путей в paths отсутствует в текущем выборе, TreeSelectionListeners уведомляются. Это не имеет эффекта, если paths равно null.
- Параметры:
-
paths- новые пути для добавления к текущему выбору
removeSelectionPath
void removeSelectionPath(TreePath path)
Удаляет путь из выбора. Если путь присутствует в выборе, TreeSelectionListeners уведомляются. Это не имеет эффекта, если path равно null.
- Параметры:
-
path- путь для удаления из выбора
removeSelectionPaths
void removeSelectionPaths(TreePath[] paths)
Удаляет пути из выбора. Если любой из путей в paths присутствует в выборе, TreeSelectionListeners уведомляются. Этот метод не имеет эффекта, если paths равно null.
- Параметры:
-
paths- путь для удаления из выбора
getSelectionPath
TreePath getSelectionPath()
Возвращает первый путь в выборе. Как определяется "первый", зависит от реализатора и может не обязательно быть TreePath с наименьшим целочисленным значением, определённым из RowMapper.
getSelectionPaths
TreePath[] getSelectionPaths()
Возвращает пути в выборе. Возвращает null (или пустой массив), если ничего не выбрано.
getSelectionCount
int getSelectionCount()
Возвращает количество выбранных путей.
isPathSelected
boolean isPathSelected(TreePath path)
Возвращает true, если путь path присутствует в текущем выборе.
isSelectionEmpty
boolean isSelectionEmpty()
Возвращает true, если выбор пуст.
clearSelection
void clearSelection()
Очищает текущий выбор. Если это изменение текущего выбора, слушатели выбора уведомляются.
setRowMapper
void setRowMapper(RowMapper newMapper)
Устанавливает экземпляр RowMapper. Этот экземпляр используется для определения строки для конкретного TreePath.
getRowMapper
RowMapper getRowMapper()
Возвращает экземпляр RowMapper, способный сопоставить TreePath со строкой.
getSelectionRows
int[] getSelectionRows()
Возвращает все выбранные строки. Возвращает null (или пустой массив), если нет выбранных TreePath или RowMapper не установлен.
getMinSelectionRow
int getMinSelectionRow()
Возвращает наименьшее значение, полученное от RowMapper для текущего набора выбранных TreePath. Если ничего не выбрано или RowMapper не установлен, возвращает -1.
getMaxSelectionRow
int getMaxSelectionRow()
Возвращает наибольшее значение, полученное от RowMapper для текущего набора выбранных TreePath. Если ничего не выбрано или RowMapper не установлен, возвращает -1.
isRowSelected
boolean isRowSelected(int row)
Возвращает true, если строка с идентификатором row выбрана.
resetRowSelection
void resetRowSelection()
Обновляет отображение объекта из TreePath в строки. Это должно быть вызвано, когда отображение из TreePath в целые числа изменилось (например, узел был развернут).
Обычно вам не нужно вызывать это; JTree и его связанные слушатели вызовут это за вас. Если вы реализуете свой собственный класс представления, то вам нужно будет вызвать это.
getLeadSelectionRow
int getLeadSelectionRow()
Возвращает индекс ведущего выбора. То есть последний добавленный индекс.
getLeadSelectionPath
TreePath getLeadSelectionPath()
Возвращает последний добавленный путь. Он может отличаться от свойства leadSelectionPath, поддерживаемого JTree.
addPropertyChangeListener
void addPropertyChangeListener(PropertyChangeListener listener)
Добавляет PropertyChangeListener в список слушателей. Слушатель регистрируется для всех свойств.
PropertyChangeEvent будет сгенерирован при изменении режима выбора.
- Параметры:
-
listener- добавляемый PropertyChangeListener
removePropertyChangeListener
void removePropertyChangeListener(PropertyChangeListener listener)
Удаляет PropertyChangeListener из списка слушателей. Удаляет PropertyChangeListener, зарегистрированный для всех свойств.
- Параметры:
-
listener- удаляемый PropertyChangeListener
addTreeSelectionListener
void addTreeSelectionListener(TreeSelectionListener x)
Добавляет x в список слушателей, которые уведомляются каждый раз, когда изменяется набор выбранных TreePath.
- Параметры:
-
x- новый добавляемый слушатель
removeTreeSelectionListener
void removeTreeSelectionListener(TreeSelectionListener x)
Удаляет x из списка слушателей, которые уведомляются каждый раз, когда изменяется набор выбранных TreePath.
- Параметры:
-
x- удаляемый слушатель
© 1993, 2020, 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.