Интерфейс TreeSelectionModel
- Все известные реализующие классы:
-
DefaultTreeSelectionModel,JTree.EmptySelectionModel
public interface TreeSelectionModel
Этот интерфейс представляет текущее состояние выделения для компонента дерева. Для получения информации и примеров использования моделей выделения дерева см. Как использовать деревья в Java Tutorial.
Состояние выделения дерева характеризуется набором TreePath и, необязательно, набором целых чисел. Сопоставление между TreePath и целым числом выполняется с помощью экземпляра RowMapper. Необязательно, чтобы TreeSelectionModel имел RowMapper для корректной работы, но без RowMapper getSelectionRows вернет null.
TreeSelectionModel может быть настроен для разрешения только одного пути (SINGLE_TREE_SELECTION) или набора смежных путей (CONTIGUOUS_TREE_SELECTION) или набора несмежных путей (DISCONTIGUOUS_TREE_SELECTION). Экземпляр RowMapper используется для определения, являются ли TreePath смежными. В отсутствии RowMapper CONTIGUOUS_TREE_SELECTION и DISCONTIGUOUS_TREE_SELECTION ведут себя одинаково, то есть разрешают любое количество путей в TreeSelectionModel.
Для модели выделения CONTIGUOUS_TREE_SELECTION всякий раз, когда пути изменяются (setSelectionPath, addSelectionPath ...), TreePaths снова проверяются на смежность. Проверку TreePaths также можно принудительно выполнить, вызвав resetRowSelection. Как набор несмежных TreePath отображается на смежный набор, остается на усмотрение разработчиков этого интерфейса для реализации определенной политики.
Реализации должны объединять дублирующиеся TreePath, которые добавляются к выделению. Например, следующий код
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 останется выбранным.
- Параметры:
-
mode- режим выбора, который нужно установить
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 находится в текущем выборе.
- Параметры:
-
path- путь для проверки - Возвращает:
- является ли
pathчастью текущего выбора
isSelectionEmpty
boolean isSelectionEmpty()
Возвращает true, если выбор пуст.
- Возвращает:
- является ли выбор пустым
clearSelection
void clearSelection()
Очищает текущий выбор. Если это изменение текущего выбора, то оповещаются слушатели выбора.
setRowMapper
void setRowMapper(RowMapper newMapper)
Устанавливает экземпляр RowMapper. Этот экземпляр используется для определения строки для определённого TreePath.
- Параметры:
-
newMapper- устанавливаемый RowMapper
getRowMapper
RowMapper getRowMapper()
Возвращает экземпляр RowMapper, который может сопоставить TreePath со строкой.
- Возвращает:
- экземпляр RowMapper, который может сопоставить TreePath со строкой
getSelectionRows
int[] getSelectionRows()
Возвращает все выбранные строки. Вернёт null (или пустой массив), если нет выбранных TreePaths или RowMapper не установлен.
- Возвращает:
- все выбранные строки
getMinSelectionRow
int getMinSelectionRow()
Возвращает наименьшее значение, полученное от RowMapper для текущего набора выбранных TreePaths. Если ничего не выбрано или RowMapper не задан, возвращает -1.
- Возвращает:
- наименьшее значение, полученное от RowMapper для текущего набора выбранных TreePaths
getMaxSelectionRow
int getMaxSelectionRow()
Возвращает наибольшее значение, полученное от RowMapper для текущего набора выбранных TreePaths. Если ничего не выбрано или RowMapper не задан, возвращает -1.
- Возвращает:
- наибольшее значение, полученное от RowMapper для текущего набора выбранных TreePaths
isRowSelected
boolean isRowSelected(int row)
Возвращает true, если строка с номером row выбрана.
- Параметры:
-
row- строка для проверки - Возвращает:
- является ли строка выбранной
resetRowSelection
void resetRowSelection()
Обновляет сопоставление этого объекта от TreePaths к строкам. Вызывается, когда сопоставление от TreePaths к целым числам изменилось (например, узел был развернут).
Обычно вызывать это не нужно; 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 в список слушателей, оповещаемых при каждом изменении набора выбранных TreePaths.
- Параметры:
-
x- новый добавляемый слушатель
removeTreeSelectionListener
void removeTreeSelectionListener(TreeSelectionListener x)
Удаляет x из списка слушателей, оповещаемых при каждом изменении набора выбранных TreePaths.
- Параметры:
-
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.
https://docs.oracle.com/en/java/javase/11/docs/api/java.desktop/javax/swing/tree/TreeSelectionModel.html