Spec-Zone.ru › OpenJDK 25

Класс DefaultListSelectionModel

java.lang.Object
javax.swing.DefaultListSelectionModel
Все реализуемые интерфейсы:
Serializable, Cloneable, ListSelectionModel
public class DefaultListSelectionModel extends Object implements ListSelectionModel, Cloneable, Serializable
Модель данных по умолчанию для выделения элементов списка.

Предупреждение: Сериализованные объекты этого класса не будут совместимы с будущими выпусками Swing. Текущая поддержка сериализации подходит для кратковременного хранения или обмена данными по RMI между приложениями, использующими одну и ту же версию Swing. Начиная с версии 1.4, в пакет java.beans добавлена поддержка долговременного хранения всех JavaBeans. См. XMLEncoder.

Начиная с:
1.2
См. также:
  • ListSelectionModel

Краткое описание полей

Модификатор и тип Поле Описание
protected boolean leadAnchorNotificationEnabled
Указывает, включено ли уведомление о ведущем якоре.
protected EventListenerList listenerList
Список слушателей.

Поля, объявленные в интерфейсе ListSelectionModel

MULTIPLE_INTERVAL_SELECTION, SINGLE_INTERVAL_SELECTION, SINGLE_SELECTION

Краткое описание конструкторов

Конструктор Описание
DefaultListSelectionModel()
Создает объект DefaultListSelectionModel.

Краткое описание методов

Модификатор и тип Метод Описание
void addListSelectionListener(ListSelectionListener l)
Добавляет слушателя в список, который получает уведомление при каждом изменении выделения.
void addSelectionInterval(int index0, int index1)
Изменяет выделение, объединяя текущее выделение с индексами от index0 до index1 включительно.
void clearSelection()
Очищает выделение.
Object clone()
Возвращает копию этой модели выделения с тем же выделением.
protected void fireValueChanged(boolean isAdjusting)
Уведомляет слушателей о завершении серии изменений.
protected void fireValueChanged(int firstIndex, int lastIndex)
Уведомляет ListSelectionListeners об изменении значения выделения в замкнутом интервале firstIndex, lastIndex.
protected void fireValueChanged(int firstIndex, int lastIndex, boolean isAdjusting)
Уведомляет ListSelectionListeners об изменении значения выделения в замкнутом интервале firstIndex, lastIndex, а также сообщает, является ли это изменение последним в серии.
int getAnchorSelectionIndex()
Возвращает первый аргумент-индекс из последнего вызова setSelectionInterval(), addSelectionInterval() или removeSelectionInterval().
int getLeadSelectionIndex()
Возвращает второй аргумент-индекс из последнего вызова setSelectionInterval(), addSelectionInterval() или removeSelectionInterval().
<T extends EventListener>
T[]
getListeners(Class<T> listenerType)
Возвращает массив всех объектов, зарегистрированных в этой модели как FooListener.
ListSelectionListener[] getListSelectionListeners()
Возвращает массив всех слушателей выделения списка, зарегистрированных в этой DefaultListSelectionModel.
int getMaxSelectionIndex()
Возвращает последний выделенный индекс или -1, если выделение пусто.
int getMinSelectionIndex()
Возвращает первый выделенный индекс или -1, если выделение пусто.
int getSelectionMode()
Возвращает текущий режим выделения.
boolean getValueIsAdjusting()
Возвращает true, если в выделении выполняется серия изменений.
void insertIndexInterval(int index, int length, boolean before)
Вставляет length индексов перед или после указанного индекса.
boolean isLeadAnchorNotificationEnabled()
Возвращает значение флага leadAnchorNotificationEnabled.
boolean isSelectedIndex(int index)
Возвращает true, если указанный индекс выделен.
boolean isSelectionEmpty()
Возвращает true, если ни один индекс не выделен.
void moveLeadSelectionIndex(int leadIndex)
Устанавливает ведущий индекс выделения, не изменяя значения выделения.
void removeIndexInterval(int index0, int index1)
Удаляет из модели выделения индексы интервала index0,index1 (включительно).
void removeListSelectionListener(ListSelectionListener l)
Удаляет из списка слушателя, который получает уведомление при каждом изменении выделения.
void removeSelectionInterval(int index0, int index1)
Изменяет выделение, удаляя из него индексы от index0 до index1 включительно.
void setAnchorSelectionIndex(int anchorIndex)
Устанавливает индекс якоря выделения, не изменяя значения выделения.
void setLeadAnchorNotificationEnabled(boolean flag)
Устанавливает значение флага leadAnchorNotificationEnabled.
void setLeadSelectionIndex(int leadIndex)
Устанавливает ведущий индекс выделения, гарантируя, что значения между якорем и новым ведущим индексом либо все выделены, либо все сняты с выделения.
void setSelectionInterval(int index0, int index1)
Изменяет выделение так, чтобы оно включало индексы от index0 до index1 включительно.
void setSelectionMode(int selectionMode)
Устанавливает режим выделения.
void setValueIsAdjusting(boolean isAdjusting)
Устанавливает свойство valueIsAdjusting, которое указывает, следует ли считать последующие изменения выделения частью одного изменения.
String toString()
Возвращает строку, описывающую и идентифицирующую свойства этого объекта.

Методы, объявленные в классе Object

equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait

Методы, объявленные в интерфейсе ListSelectionModel

getSelectedIndices, getSelectedItemsCount

Подробное описание полей

listenerList

protected EventListenerList listenerList
Список слушателей.

leadAnchorNotificationEnabled

protected boolean leadAnchorNotificationEnabled
Включено ли уведомление о ведущем и опорном индексах.

Подробное описание конструкторов

DefaultListSelectionModel

public DefaultListSelectionModel()
Создает DefaultListSelectionModel.

Подробное описание методов

getMinSelectionIndex

public int getMinSelectionIndex()
Возвращает первый выбранный индекс или -1, если выбор пуст.
Указано в:
getMinSelectionIndex в интерфейсе ListSelectionModel
Возвращает:
первый выбранный индекс или -1, если выбор пуст.

getMaxSelectionIndex

public int getMaxSelectionIndex()
Возвращает последний выбранный индекс или -1, если выбор пуст.
Указано в:
getMaxSelectionIndex в интерфейсе ListSelectionModel
Возвращает:
последний выбранный индекс или -1, если выбор пуст.

getValueIsAdjusting

public boolean getValueIsAdjusting()
Возвращает true, если выбор подвергается серии изменений.
Указано в:
getValueIsAdjusting в интерфейсе ListSelectionModel
Возвращает:
true, если выбор подвергается серии изменений
См. также:
  • ListSelectionModel.setValueIsAdjusting(boolean)

getSelectionMode

public int getSelectionMode()
Возвращает текущий режим выбора.
Указано в:
getSelectionMode в интерфейсе ListSelectionModel
Возвращает:
текущий режим выбора
См. также:
  • ListSelectionModel.setSelectionMode(int)

setSelectionMode

public void setSelectionMode(int selectionMode)
Задает режим выбора. В следующем списке описаны допустимые режимы выбора:
  • ListSelectionModel.SINGLE_SELECTION — одновременно можно выбрать только один индекс списка. В этом режиме setSelectionInterval и addSelectionInterval эквивалентны: оба заменяют текущий выбор индексом, заданным вторым аргументом («ведущим»).
  • ListSelectionModel.SINGLE_INTERVAL_SELECTION — одновременно можно выбрать только один непрерывный интервал. В этом режиме addSelectionInterval действует как setSelectionInterval (заменяет текущий выбор), если только заданный интервал не примыкает непосредственно к существующему выбору или не перекрывает его, так что его можно расширить.
  • ListSelectionModel.MULTIPLE_INTERVAL_SELECTION — в этом режиме нет ограничений на то, что можно выбрать.
Указано в:
setSelectionMode в интерфейсе ListSelectionModel
Параметры:
selectionMode — режим выбора
Вызывает исключение:
IllegalArgumentException — если режим выбора не входит в число допустимых
См. также:
  • ListSelectionModel.getSelectionMode()

isSelectedIndex

public boolean isSelectedIndex(int index)
Возвращает true, если указанный индекс выбран.
Указано в:
isSelectedIndex в интерфейсе ListSelectionModel
Параметры:
index — индекс
Возвращает:
true, если указанный индекс выбран

isSelectionEmpty

public boolean isSelectionEmpty()
Возвращает true, если не выбрано ни одного индекса.
Указано в:
isSelectionEmpty в интерфейсе ListSelectionModel
Возвращает:
true, если не выбрано ни одного индекса.

addListSelectionListener

public void addListSelectionListener(ListSelectionListener l)
Добавляет слушателя в список; он получает уведомление при каждом изменении выбора.
Указано в:
addListSelectionListener в интерфейсе ListSelectionModel
Параметры:
l — ListSelectionListener
См. также:
  • ListSelectionModel.removeListSelectionListener(ListSelectionListener)
  • ListSelectionModel.setSelectionInterval(int, int)
  • ListSelectionModel.addSelectionInterval(int, int)
  • ListSelectionModel.removeSelectionInterval(int, int)
  • ListSelectionModel.clearSelection()
  • ListSelectionModel.insertIndexInterval(int, int, boolean)
  • ListSelectionModel.removeIndexInterval(int, int)

removeListSelectionListener

public void removeListSelectionListener(ListSelectionListener l)
Удаляет слушателя из списка, который получает уведомление при каждом изменении выбора.
Указано в:
removeListSelectionListener в интерфейсе ListSelectionModel
Параметры:
l — ListSelectionListener
См. также:
  • ListSelectionModel.addListSelectionListener(ListSelectionListener)

getListSelectionListeners

public ListSelectionListener[] getListSelectionListeners()
Возвращает массив всех слушателей выбора списка, зарегистрированных в этой DefaultListSelectionModel.
Возвращает:
все ListSelectionListeners этой модели или пустой массив, если в данный момент не зарегистрировано ни одного слушателя выбора списка
С момента версии:
1.4
См. также:
  • addListSelectionListener(ListSelectionListener)
  • removeListSelectionListener(ListSelectionListener)

fireValueChanged

protected void fireValueChanged(boolean isAdjusting)
Уведомляет слушателей о завершении серии изменений.
Параметры:
isAdjusting — true, если это последнее изменение в серии

fireValueChanged

protected void fireValueChanged(int firstIndex, int lastIndex)
Уведомляет ListSelectionListeners об изменении значения выбора в замкнутом интервале firstIndex, lastIndex.
Параметры:
firstIndex — первый индекс интервала
lastIndex — последний индекс интервала

fireValueChanged

protected void fireValueChanged(int firstIndex, int lastIndex, boolean isAdjusting)
Уведомляет ListSelectionListeners об изменении значения выбора в замкнутом интервале firstIndex, lastIndex, и сообщает, является ли это изменение последним в серии.
Параметры:
firstIndex — первый индекс интервала
lastIndex — последний индекс интервала
isAdjusting — true, если это последнее изменение в серии
См. также:
  • EventListenerList

getListeners

public <T extends EventListener> T[] getListeners(Class<T> listenerType)
Возвращает массив всех объектов, зарегистрированных в этой модели в качестве FooListeners. FooListeners регистрируются с помощью метода addFooListener.

В качестве аргумента listenerType можно указать литерал класса, например FooListener.class. Например, можно запросить у экземпляра DefaultListSelectionModel m список слушателей выбора списка следующим образом:

ListSelectionListener[] lsls = (ListSelectionListener[])(m.getListeners(ListSelectionListener.class));
Если таких слушателей нет, этот метод возвращает пустой массив.
Параметры типа:
T — тип запрашиваемого класса EventListener
Параметры:
listenerType — тип запрашиваемых слушателей; этот параметр должен указывать интерфейс, производный от java.util.EventListener
Возвращает:
массив всех объектов, зарегистрированных в этой модели в качестве FooListeners, или пустой массив, если такие слушатели не добавлены
Вызывает исключение:
ClassCastException — если listenerType не указывает класс или интерфейс, реализующий java.util.EventListener
С момента версии:
1.3
См. также:
  • getListSelectionListeners()

setLeadAnchorNotificationEnabled

public void setLeadAnchorNotificationEnabled(boolean flag)
Задает значение флага leadAnchorNotificationEnabled.
Параметры:
flag — логическое значение для leadAnchorNotificationEnabled
См. также:
  • isLeadAnchorNotificationEnabled()

isLeadAnchorNotificationEnabled

public boolean isLeadAnchorNotificationEnabled()
Возвращает значение флага leadAnchorNotificationEnabled. Если leadAnchorNotificationEnabled имеет значение true, модель генерирует события уведомления с границами, охватывающими все изменения выбора, а также изменения ведущего и опорного индексов. Если задать флагу значение false, границы события сужаются и включают только элементы, выбранные или снятые с выбора после последнего изменения. В любом случае модель продолжает хранить переменные ведущего и опорного индексов внутри себя. Значение по умолчанию — true.

Примечание. Ведущий или опорный индекс может измениться без изменения выбора. Уведомление об этих изменениях часто важно, например, когда в представлении нужно обновить новый ведущий или опорный индекс. Поэтому рекомендуется соблюдать осторожность при изменении значения по умолчанию.

Возвращает:
значение флага leadAnchorNotificationEnabled
См. также:
  • setLeadAnchorNotificationEnabled(boolean)

clearSelection

public void clearSelection()
Изменяет выбор на пустое множество. Если это меняет текущий выбор, уведомляет каждый ListSelectionListener.
Указано в:
clearSelection в интерфейсе ListSelectionModel
См. также:
  • ListSelectionModel.addListSelectionListener(ListSelectionListener)

setSelectionInterval

public void setSelectionInterval(int index0, int index1)
Изменяет выбор так, чтобы он охватывал интервал от index0 до index1 включительно. index0 не обязательно должен быть меньше или равен index1.

В режиме выбора SINGLE_SELECTION используется только второй индекс.

Если это меняет текущий выбор, каждому ListSelectionListener отправляется уведомление об изменении.

Если любой из индексов равен -1, этот метод ничего не делает и завершается без исключения. В противном случае, если любой из индексов меньше -1, выбрасывается IndexOutOfBoundsException.

Указано в:
setSelectionInterval в интерфейсе ListSelectionModel
Параметры:
index0 — один конец интервала.
index1 — другой конец интервала
Вызывает исключение:
IndexOutOfBoundsException — если любой из индексов меньше -1 (и ни один из индексов не равен -1)
См. также:
  • addListSelectionListener(ListSelectionListener)

addSelectionInterval

public void addSelectionInterval(int index0, int index1)
Изменяет выбор, объединяя текущее множество выбранных индексов с индексами от index0 до index1 включительно.

В режиме выбора SINGLE_SELECTION этот вызов эквивалентен вызову setSelectionInterval; используется только второй индекс. В режиме выбора SINGLE_INTERVAL_SELECTION этот метод действует как setSelectionInterval, если только заданный интервал не примыкает непосредственно к существующему выбору или не перекрывает его, так что его можно расширить.

Если это меняет текущий выбор, каждому ListSelectionListener отправляется уведомление об изменении. Обратите внимание, что index0 не обязательно должен быть меньше или равен index1.

Если любой из индексов равен -1, этот метод ничего не делает и завершается без исключения. В противном случае, если любой из индексов меньше -1, выбрасывается IndexOutOfBoundsException.

Указано в:
addSelectionInterval в интерфейсе ListSelectionModel
Параметры:
index0 — один конец интервала.
index1 — другой конец интервала
Вызывает исключение:
IndexOutOfBoundsException — если любой из индексов меньше -1 (и ни один из индексов не равен -1)
См. также:
  • addListSelectionListener(ListSelectionListener)
  • setSelectionInterval(int, int)

removeSelectionInterval

public void removeSelectionInterval(int index0, int index1)
Изменяет выбор, исключая из текущего множества выбранных индексов индексы от index0 до index1 включительно. index0 не обязательно должен быть меньше или равен index1.

В режиме выбора SINGLE_INTERVAL_SELECTION, если удаление разделило бы выбор на два непересекающихся участка, оно распространяется до большего конца выбора. Например, если выбраны 0-10, а в качестве индексов переданы 5,6 (в любом порядке), результатом будет выбор 0-4.

Если это меняет текущий выбор, каждому ListSelectionListener отправляется уведомление об изменении.

Если любой из индексов равен -1, этот метод ничего не делает и завершается без исключения. В противном случае, если любой из индексов меньше -1, выбрасывается IndexOutOfBoundsException.

Указано в:
removeSelectionInterval в интерфейсе ListSelectionModel
Параметры:
index0 — один конец интервала
index1 — другой конец интервала
Вызывает исключение:
IndexOutOfBoundsException — если любой из индексов меньше -1 (и ни один из индексов не равен -1)
См. также:
  • addListSelectionListener(ListSelectionListener)

insertIndexInterval

public void insertIndexInterval(int index, int length, boolean before)
Вставляет length индексов до или после индекса index. Если значение по индексу index выбрано и режим выбора не равен SINGLE_SELECTION, помечает все вновь вставленные элементы как выбранные. В противном случае оставляет их невыбранными. Этот метод обычно вызывается для синхронизации модели выбора с соответствующим изменением модели данных.
Указано в:
insertIndexInterval в интерфейсе ListSelectionModel
Параметры:
index — начало интервала
length — длина интервала
before — если true, интервал вставляется перед index, иначе интервал вставляется после index
Вызывает исключение:
IndexOutOfBoundsException — если index или length отрицательно

removeIndexInterval

public void removeIndexInterval(int index0, int index1)
Удаляет из модели выбора индексы в интервале index0,index1 (включительно). Этот метод обычно вызывается для синхронизации модели выбора с соответствующим изменением модели данных. Обратите внимание, что (как и всегда) index0 не обязательно должен быть <= index1.
Указано в:
removeIndexInterval в интерфейсе ListSelectionModel
Параметры:
index0 — начало интервала
index1 — конец интервала
Вызывает исключение:
IndexOutOfBoundsException — если любой из индексов отрицателен

setValueIsAdjusting

public void setValueIsAdjusting(boolean isAdjusting)
Задает свойство valueIsAdjusting, указывающее, следует ли считать предстоящие изменения выбора частью одного изменения. Значение этого свойства используется для инициализации свойства valueIsAdjusting у создаваемых ListSelectionEvents.

Например, если выбор обновляется в ответ на перетаскивание пользователем, этому свойству можно задать значение true при начале перетаскивания и false по его завершении. Во время перетаскивания слушатели получают события со свойством valueIsAdjusting, равным true. По окончании перетаскивания, когда изменение завершено, слушатели получают событие со значением false. Слушатели могут использовать этот шаблон, если им нужно обновлять состояние только после завершения изменения.

Установка этому свойству значения true начинает серию изменений, которая должна считаться одним изменением. Когда свойство снова получает значение false, отправляется событие, описывающее изменение всего выбора (если оно было), причем свойству valueIsAdjusting этого события присваивается значение false.

Указано в:
setValueIsAdjusting в интерфейсе ListSelectionModel
Параметры:
isAdjusting — новое значение свойства
См. также:
  • ListSelectionModel.getValueIsAdjusting()
  • ListSelectionEvent.getValueIsAdjusting()

toString

public String toString()
Возвращает строку, отображающую свойства этого объекта и идентифицирующую его.
Переопределяет:
toString в классе Object
Возвращает:
представление этого объекта в виде String

clone

public Object clone() throws CloneNotSupportedException
Возвращает копию этой модели выбора с тем же выбором. listenerLists не дублируются.
Переопределяет:
clone в классе Object
Возвращает:
копию этого экземпляра.
Вызывает исключение:
CloneNotSupportedException — если модель выбора не реализует интерфейс Cloneable и не определяет метод clone.
См. также:
  • Cloneable

getAnchorSelectionIndex

public int getAnchorSelectionIndex()
Возвращает первый аргумент-индекс из последнего вызова setSelectionInterval(), addSelectionInterval() или removeSelectionInterval(). Последний index0 считается «опорным», а последний index1 — «ведущим». Некоторые интерфейсы отображают эти индексы особым образом; например, Windows95 показывает ведущий индекс в виде пунктирной желтой рамки.
Указано в:
getAnchorSelectionIndex в интерфейсе ListSelectionModel
Возвращает:
опорный индекс выбора
См. также:
  • ListSelectionModel.getLeadSelectionIndex()
  • ListSelectionModel.setSelectionInterval(int, int)
  • ListSelectionModel.addSelectionInterval(int, int)

getLeadSelectionIndex

public int getLeadSelectionIndex()
Возвращает второй аргумент-индекс из последнего вызова setSelectionInterval(), addSelectionInterval() или removeSelectionInterval().
Указано в:
getLeadSelectionIndex в интерфейсе ListSelectionModel
Возвращает:
ведущий индекс выбора.
См. также:
  • ListSelectionModel.getAnchorSelectionIndex()
  • ListSelectionModel.setSelectionInterval(int, int)
  • ListSelectionModel.addSelectionInterval(int, int)

setAnchorSelectionIndex

public void setAnchorSelectionIndex(int anchorIndex)
Задает опорный индекс выбора, не изменяя значения выбора. Если leadAnchorNotificationEnabled имеет значение true, отправляет уведомление, охватывающее старую и новую ячейки опорного индекса.
Указано в:
setAnchorSelectionIndex в интерфейсе ListSelectionModel
Параметры:
anchorIndex — опорный индекс выбора
См. также:
  • getAnchorSelectionIndex()
  • setLeadSelectionIndex(int)

moveLeadSelectionIndex

public void moveLeadSelectionIndex(int leadIndex)
Задает ведущий индекс выбора, не изменяя значения выбора. Если leadAnchorNotificationEnabled имеет значение true, отправляет уведомление, охватывающее старую и новую ячейки ведущего индекса.
Параметры:
leadIndex — новый ведущий индекс выбора
С момента версии:
1.5
См. также:
  • setAnchorSelectionIndex(int)
  • setLeadSelectionIndex(int)
  • getLeadSelectionIndex()

setLeadSelectionIndex

public void setLeadSelectionIndex(int leadIndex)
Задает ведущий индекс выбора, гарантируя, что значения между опорным и новым ведущим индексами либо выбраны все, либо не выбрано ни одного. Если значение по опорному индексу выбрано, сначала снимает выбор со всех значений в диапазоне [anchor, oldLeadIndex], а затем выбирает все значения в диапазоне [anchor, newLeadIndex], где oldLeadIndex — прежнее значение leadIndex, а newLeadIndex — новое.

Если значение по опорному индексу не выбрано, выполняет те же действия в обратном порядке: выбирает значения в старом диапазоне и снимает выбор со значений в новом.

Генерирует для этого изменения одно событие и уведомляет всех слушателей. Чтобы задать в этом событии минимальные границы, выполняет операцию за один проход; таким образом, первый и последний индексы в рассылаемом ListSelectionEvent будут указывать на ячейки, значения которых действительно изменились в результате вызова этого метода. Если бы операция выполнялась в два этапа, состояние выбора осталось бы тем же, но были бы сгенерированы два события, а границы измененных значений оказались бы шире и включали бы ячейки, выбор с которых сначала сняли, а затем восстановили.

Этот метод можно использовать в методе mouseDragged класса пользовательского интерфейса для расширения выбора.

Указано в:
setLeadSelectionIndex в интерфейсе ListSelectionModel
Параметры:
leadIndex — ведущий индекс выбора
См. также:
  • getLeadSelectionIndex()
  • setAnchorSelectionIndex(int)

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в разделе Документация Java SE, содержащем более подробные описания для разработчиков, концептуальные обзоры, определения терминов, обходные решения и рабочие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторские права © 1993, 2025, Oracle и/или ее аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 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/DefaultListSelectionModel.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API