Spec-Zone.ru › OpenJDK 25

Класс JList<E>

java.lang.Object
java.awt.Component
java.awt.Container
javax.swing.JComponent
javax.swing.JList<E>
Параметры типа:
E - тип элементов этого списка
Все реализуемые интерфейсы:
ImageObserver, MenuContainer, Serializable, Accessible, Scrollable
@JavaBean(defaultProperty="UI", description="A component which allows for the selection of one or more objects from a list.") public class JList<E> extends JComponent implements Scrollable, Accessible
Компонент, отображающий список объектов и позволяющий пользователю выбирать один или несколько элементов. Содержимое списка поддерживается отдельной моделью ListModel.

Массив или вектор объектов легко отобразить с помощью конструктора JList, который автоматически создает для вас доступный только для чтения экземпляр ListModel:


// Create a JList that displays strings from an array

String[] data = {"one", "two", "three", "four"};
JList<String> myList = new JList<String>(data);

// Create a JList that displays the superclasses of JList.class, by
// creating it with a Vector populated with this data

Vector<Class<?>> superClasses = new Vector<Class<?>>();
Class<JList> rootClass = javax.swing.JList.class;
for(Class<?> cls = rootClass; cls != null; cls = cls.getSuperclass()) {
    superClasses.addElement(cls);
}
JList<Class<?>> myList = new JList<Class<?>>(superClasses);

// The automatically created model is stored in JList's "model"
// property, which you can retrieve

ListModel<Class<?>> model = myList.getModel();
for(int i = 0; i < model.getSize(); i++) {
    System.out.println(model.getElementAt(i));
}

ListModel можно напрямую передать в JList с помощью конструктора или метода setModel. Содержимое не обязательно должно быть статичным — количество элементов и их значения могут меняться со временем. Корректная реализация ListModel уведомляет набор добавленных в нее javax.swing.event.ListDataListener каждый раз при изменении. Эти изменения описываются объектом javax.swing.event.ListDataEvent, который указывает диапазон индексов списка, которые были изменены, добавлены или удалены. JList с помощью своего ListUI отвечает за актуализацию визуального представления при изменении модели, отслеживая ее изменения.

Для простых приложений JList с динамическим содержимым можно использовать класс DefaultListModel для поддержки элементов списка. Этот класс реализует интерфейс ListModel, а также предоставляет API, похожий на java.util.Vector. Для приложений, которым требуется более специализированная реализация ListModel, может быть предпочтительнее создать подкласс AbstractListModel, предоставляющий базовую поддержку управления слушателями и их уведомления. Например, реализация AbstractListModel, доступная только для чтения:


// This list model has about 2^16 elements.  Enjoy scrolling.

ListModel<String> bigData = new AbstractListModel<String>() {
    public int getSize() { return Short.MAX_VALUE; }
    public String getElementAt(int index) { return "Index " + index; }
};

Состояние выбора в JList управляется другой, отдельной моделью — экземпляром ListSelectionModel. При создании JList инициализируется моделью выбора; кроме того, в нем имеются методы для получения или установки этой модели. Также JList предоставляет удобные методы для управления выбором. Эти методы, например setSelectedIndex и getSelectedValue, являются обертками, которые берут на себя детали взаимодействия с моделью выбора. По умолчанию модель выбора JList настроена так, чтобы одновременно можно было выбрать любое сочетание элементов; режим выбора MULTIPLE_INTERVAL_SELECTION. Режим выбора можно изменить непосредственно в модели выбора или с помощью метода-обертки JList. За обновление модели выбора в ответ на действия пользователя отвечает ListUI списка.

Корректная реализация ListSelectionModel уведомляет набор добавленных в нее javax.swing.event.ListSelectionListener каждый раз при изменении выбора. Эти изменения описываются объектом javax.swing.event.ListSelectionEvent, который указывает диапазон измененного выбора.

Предпочтительный способ отслеживать изменения выбора в списке — напрямую добавлять ListSelectionListener в JList. Затем JList отслеживает модель выбора и уведомляет ваши слушатели об изменениях.

За отслеживание изменений выбора и актуализацию визуального представления списка отвечает ListUI списка.

Отрисовку ячеек в JList выполняет делегат, называемый рендерером ячеек и устанавливаемый в списке как свойство cellRenderer. Рендерер предоставляет java.awt.Component, которое используется для отрисовки ячеек как «резиновый штамп». Каждый раз, когда требуется отрисовать ячейку, ListUI списка запрашивает у рендерера ячеек компонент, размещает его в нужном месте и отрисовывает содержимое ячейки с помощью метода paint этого компонента. ListUI списка устанавливает рендерер ячеек по умолчанию, который использует для отрисовки компонент JLabel. Вы можете заменить собственным рендерером, например, с помощью такого кода:


 // Display an icon and a string for each object in the list.

class MyCellRenderer extends JLabel implements ListCellRenderer<Object> {
    static final ImageIcon longIcon = new ImageIcon("long.gif");
    static final ImageIcon shortIcon = new ImageIcon("short.gif");

    // This is the only method defined by ListCellRenderer.
    // We just reconfigure the JLabel each time we're called.

    public Component getListCellRendererComponent(
      JList<?> list,           // the list
      Object value,            // value to display
      int index,               // cell index
      boolean isSelected,      // is the cell selected
      boolean cellHasFocus)    // does the cell have focus
    {
        String s = value.toString();
        setText(s);
        setIcon((s.length() > 10) ? longIcon : shortIcon);
        if (isSelected) {
            setBackground(list.getSelectionBackground());
            setForeground(list.getSelectionForeground());
        } else {
            setBackground(list.getBackground());
            setForeground(list.getForeground());
        }
        setEnabled(list.isEnabled());
        setFont(list.getFont());
        setOpaque(true);
        return this;
    }
}

myList.setCellRenderer(new MyCellRenderer());

Еще одна задача рендерера ячеек — помогать определять размеры списка. По умолчанию ListUI списка определяет размер ячеек, запрашивая у рендерера ячеек предпочтительный размер для каждого элемента списка. Для больших списков такие вычисления могут быть затратными. Чтобы избежать этих вычислений, можно задать для списка fixedCellWidth и fixedCellHeight либо автоматически вычислить эти значения на основе одного образца:


JList<String> bigDataList = new JList<String>(bigData);

// We don't want the JList implementation to compute the width
// or height of all of the list cells, so we give it a string
// that's as big as we'll need for any cell.  It uses this to
// compute values for the fixedCellWidth and fixedCellHeight
// properties.

bigDataList.setPrototypeCellValue("Index 1234567890");

JList не реализует прокрутку напрямую. Чтобы создать прокручиваемый список, поместите его в качестве представления области просмотра в JScrollPane. Например:

JScrollPane scrollPane = new JScrollPane(myList);

// Or in two steps:
JScrollPane scrollPane = new JScrollPane();
scrollPane.getViewport().setView(myList);

JList не обеспечивает специальную обработку двойных, тройных (или N-кратных) щелчков мышью, но при необходимости легко добавить MouseListener для выполнения действий при возникновении этих событий. Используйте метод locationToIndex, чтобы определить, по какой ячейке щелкнули. Например:

MouseListener mouseListener = new MouseAdapter() {
    public void mouseClicked(MouseEvent e) {
        if (e.getClickCount() == 2) {
            int index = list.locationToIndex(e.getPoint());
            System.out.println("Double clicked on Item " + index);
         }
    }
};
list.addMouseListener(mouseListener);

Предупреждение: Swing не является потокобезопасным. Дополнительные сведения см. в разделе Политика Swing в отношении потоков.

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

Дополнительную документацию см. в разделе Использование списков Руководства по Java.

Начиная с версии:
1.2
См. также:
  • ListModel
  • AbstractListModel
  • DefaultListModel
  • ListSelectionModel
  • DefaultListSelectionModel
  • ListCellRenderer
  • DefaultListCellRenderer

Краткое описание вложенных классов

Модификатор и тип Класс Описание
protected class  JList.AccessibleJList
Этот класс реализует поддержку специальных возможностей для класса JList.
static final class  JList.DropLocation
Подкласс TransferHandler.DropLocation, представляющий место сброса для JList.

Вложенные классы/интерфейсы, объявленные в классе JComponent

JComponent.AccessibleJComponent

Вложенные классы/интерфейсы, объявленные в классе Container

Container.AccessibleAWTContainer

Вложенные классы/интерфейсы, объявленные в классе Component

Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy

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

Модификатор и тип Поле Описание
static final int HORIZONTAL_WRAP
Обозначает макет в «газетном стиле», в котором ячейки располагаются сначала по горизонтали, затем по вертикали.
static final int VERTICAL
Обозначает вертикальное расположение ячеек в одном столбце; макет по умолчанию.
static final int VERTICAL_WRAP
Обозначает макет в «газетном стиле», в котором ячейки располагаются сначала по вертикали, затем по горизонтали.

Поля, объявленные в классе JComponent

listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW

Поля, объявленные в классе Component

accessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT

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

ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH

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

Конструктор Описание
JList()
Создает JList с пустой моделью, доступной только для чтения.
JList(E[] listData)
Создает JList, отображающий элементы указанного массива.
JList(Vector<? extends E> listData)
Создает JList, отображающий элементы указанного Vector.
JList(ListModel<E> dataModel)
Создает JList, отображающий элементы из указанной модели non-null.

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

Модификатор и тип Метод Описание
void addListSelectionListener(ListSelectionListener listener)
Добавляет слушателя в список, чтобы уведомлять его каждый раз при изменении выбора; предпочтительный способ отслеживания изменений состояния выбора.
void addSelectionInterval(int anchor, int lead)
Задает выбор как объединение указанного интервала с текущим выбором.
void clearSelection()
Снимает выделение; после вызова этого метода isSelectionEmpty вернет true.
protected ListSelectionModel createSelectionModel()
Возвращает экземпляр DefaultListSelectionModel; вызывается при создании для инициализации свойства модели выбора списка.
void ensureIndexIsVisible(int index)
Прокручивает список в содержащей его области просмотра, чтобы указанная ячейка стала полностью видимой.
protected void fireSelectionValueChanged(int firstIndex, int lastIndex, boolean isAdjusting)
Уведомляет ListSelectionListener, непосредственно добавленных в список, об изменениях выбора, внесенных в модель выбора.
AccessibleContext getAccessibleContext()
Возвращает AccessibleContext, связанный с этим JList.
int getAnchorSelectionIndex()
Возвращает индекс привязки выбора.
Rectangle getCellBounds(int index0, int index1)
Возвращает ограничивающий прямоугольник в системе координат списка для диапазона ячеек, заданного двумя индексами.
ListCellRenderer<? super E> getCellRenderer()
Возвращает объект, отвечающий за отрисовку элементов списка.
boolean getDragEnabled()
Возвращает, включена ли автоматическая обработка перетаскивания.
final JList.DropLocation getDropLocation()
Возвращает место, которое этот компонент должен визуально обозначить как место сброса во время операции DnD над компонентом, или null, если в данный момент не нужно показывать место сброса.
final DropMode getDropMode()
Возвращает режим сброса для этого компонента.
int getFirstVisibleIndex()
Возвращает наименьший индекс списка, видимый в данный момент.
int getFixedCellHeight()
Возвращает значение свойства fixedCellHeight.
int getFixedCellWidth()
Возвращает значение свойства fixedCellWidth.
int getLastVisibleIndex()
Возвращает наибольший индекс списка, видимый в данный момент.
int getLayoutOrientation()
Возвращает свойство ориентации макета списка: VERTICAL, если макет представляет собой один столбец ячеек; VERTICAL_WRAP, если макет выполнен в «газетном стиле» и содержимое располагается сначала по вертикали, затем по горизонтали; или HORIZONTAL_WRAP, если макет выполнен в «газетном стиле» и содержимое располагается сначала по горизонтали, затем по вертикали.
int getLeadSelectionIndex()
Возвращает ведущий индекс выбора.
ListSelectionListener[] getListSelectionListeners()
Возвращает массив всех ListSelectionListener, добавленных в этот JList с помощью addListSelectionListener.
int getMaxSelectionIndex()
Возвращает наибольший индекс выбранной ячейки или -1, если выбор пуст.
int getMinSelectionIndex()
Возвращает наименьший индекс выбранной ячейки или -1, если выбор пуст.
ListModel<E> getModel()
Возвращает модель данных, содержащую список элементов, отображаемых компонентом JList.
int getNextMatch(String prefix, int startIndex, Position.Bias bias)
Возвращает следующий элемент списка, значение toString которого начинается с заданного префикса.
Dimension getPreferredScrollableViewportSize()
Вычисляет размер области просмотра, необходимый для отображения visibleRowCount строк.
E getPrototypeCellValue()
Возвращает значение ячейки-образца — значение, используемое для вычисления фиксированных ширины и высоты ячеек.
int getScrollableBlockIncrement(Rectangle visibleRect, int orientation, int direction)
Возвращает расстояние прокрутки для отображения следующего или предыдущего блока.
boolean getScrollableTracksViewportHeight()
Возвращает true, если этот JList отображается в JViewport и область просмотра выше предпочтительной высоты списка, либо если ориентация макета — VERTICAL_WRAP и visibleRowCount <= 0; в противном случае возвращает false.
boolean getScrollableTracksViewportWidth()
Возвращает true, если этот JList отображается в JViewport и область просмотра шире предпочтительной ширины списка, либо если ориентация макета — HORIZONTAL_WRAP и visibleRowCount <= 0; в противном случае возвращает false.
int getScrollableUnitIncrement(Rectangle visibleRect, int orientation, int direction)
Возвращает расстояние прокрутки для отображения следующей или предыдущей строки (при вертикальной прокрутке) либо колонки (при горизонтальной прокрутке).
int getSelectedIndex()
Возвращает наименьший индекс выбранной ячейки; выбор, когда в списке выбран только один элемент.
int[] getSelectedIndices()
Возвращает массив всех выбранных индексов в порядке возрастания.
E getSelectedValue()
Возвращает значение для наименьшего индекса выбранной ячейки; выбранное значение, когда в списке выбран только один элемент.
Object[] getSelectedValues()
Устарело.
Начиная с JDK 1.7 заменен методом getSelectedValuesList()
List<E> getSelectedValuesList()
Возвращает список всех выбранных элементов в порядке возрастания их индексов в списке.
Color getSelectionBackground()
Возвращает цвет, используемый для отрисовки фона выбранных элементов.
Color getSelectionForeground()
Возвращает цвет, используемый для отрисовки переднего плана выбранных элементов.
int getSelectionMode()
Возвращает текущий режим выбора для списка.
ListSelectionModel getSelectionModel()
Возвращает текущую модель выбора.
String getToolTipText(MouseEvent event)
Возвращает текст подсказки для указанного события.
ListUI getUI()
Возвращает ListUI — объект оформления, отрисовывающий этот компонент.
String getUIClassID()
Возвращает "ListUI" — ключ UIDefaults, используемый для получения имени класса javax.swing.plaf.ListUI, определяющего оформление этого компонента.
boolean getValueIsAdjusting()
Возвращает значение свойства isAdjusting модели выбора.
int getVisibleRowCount()
Возвращает значение свойства visibleRowCount.
Point indexToLocation(int index)
Возвращает начало указанного элемента в системе координат списка.
boolean isSelectedIndex(int index)
Возвращает true, если указанный индекс выбран, иначе — false.
boolean isSelectionEmpty()
Возвращает true, если ничего не выбрано, иначе — false.
int locationToIndex(Point location)
Возвращает индекс ячейки, ближайшей к указанному местоположению в системе координат списка.
protected String paramString()
Возвращает представление этого JList в виде String.
void removeListSelectionListener(ListSelectionListener listener)
Удаляет из списка слушателя выбора.
void removeSelectionInterval(int index0, int index1)
Задает выбор как разность множеств указанного интервала и текущего выбора.
void setCellRenderer(ListCellRenderer<? super E> cellRenderer)
Задает делегат, используемый для отрисовки каждой ячейки списка.
void setDragEnabled(boolean b)
Включает или выключает автоматическую обработку перетаскивания.
final void setDropMode(DropMode dropMode)
Задает режим сброса для этого компонента.
void setFixedCellHeight(int height)
Задает фиксированное значение высоты каждой ячейки списка.
void setFixedCellWidth(int width)
Задает фиксированное значение ширины каждой ячейки списка.
void setLayoutOrientation(int layoutOrientation)
Определяет способ размещения ячеек списка.
void setListData(E[] listData)
Создает доступный только для чтения ListModel из массива элементов и вызывает setModel с этой моделью.
void setListData(Vector<? extends E> listData)
Создает доступный только для чтения ListModel из Vector и вызывает setModel с этой моделью.
void setModel(ListModel<E> model)
Задает модель, представляющую содержимое, или «значение» списка, уведомляет слушателей об изменении свойства, а затем снимает выделение в списке.
void setPrototypeCellValue(E prototypeCellValue)
Задает свойство prototypeCellValue и затем (если новое значение — non-null) вычисляет свойства fixedCellWidth и fixedCellHeight, запрашивая у рендерера ячеек компонент для заданного значения (и индекса 0) и используя предпочтительный размер этого компонента.
void setSelectedIndex(int index)
Выбирает одну ячейку.
void setSelectedIndices(int[] indices)
Изменяет выбор, устанавливая набор индексов, указанных в заданном массиве.
void setSelectedValue(Object anObject, boolean shouldScroll)
Выбирает указанный объект из списка.
void setSelectionBackground(Color selectionBackground)
Задает цвет, используемый для отрисовки фона выбранных элементов; рендереры ячеек могут использовать его для заливки выбранных ячеек.
void setSelectionForeground(Color selectionForeground)
Задает цвет, используемый для отрисовки переднего плана выбранных элементов; рендереры ячеек могут использовать его для отображения текста и графики.
void setSelectionInterval(int anchor, int lead)
Выбирает указанный интервал.
void setSelectionMode(int selectionMode)
Задает режим выбора для списка.
void setSelectionModel(ListSelectionModel selectionModel)
Задает для списка свойство selectionModel с реализацией ListSelectionModel, не являющейся null.
void setUI(ListUI ui)
Задает ListUI — объект оформления, отрисовывающий этот компонент.
void setValueIsAdjusting(boolean b)
Задает свойство valueIsAdjusting модели выбора.
void setVisibleRowCount(int visibleRowCount)
Задает свойство visibleRowCount, значение которого зависит от ориентации макета: при ориентации макета VERTICAL оно задает предпочтительное количество строк, отображаемых без необходимости прокрутки; при других ориентациях влияет на перенос ячеек.
void updateUI()
Сбрасывает свойство ListUI, устанавливая значение, предоставляемое текущим оформлением.

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

addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update

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

add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusDownCycle, validate, validateTree

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

action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setMixingCutoutShape, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle

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

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

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

VERTICAL

public static final int VERTICAL
Указывает вертикальное расположение ячеек в одном столбце; используется по умолчанию.
Начиная с:
1.4
См. также:
  • setLayoutOrientation(int)
  • Значения константных полей

VERTICAL_WRAP

public static final int VERTICAL_WRAP
Указывает расположение ячеек в «газетном стиле»: сначала вертикально, затем горизонтально.
Начиная с:
1.4
См. также:
  • setLayoutOrientation(int)
  • Значения константных полей

HORIZONTAL_WRAP

public static final int HORIZONTAL_WRAP
Указывает расположение ячеек в «газетном стиле»: сначала горизонтально, затем вертикально.
Начиная с:
1.4
См. также:
  • setLayoutOrientation(int)
  • Значения константных полей

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

JList

public JList(ListModel<E> dataModel)
Создает JList, отображающий элементы из указанной модели non-null. Все конструкторы JList делегируют вызов этому конструктору.

Этот конструктор регистрирует список в ToolTipManager, что позволяет визуализаторам ячеек предоставлять всплывающие подсказки.

Параметры:
dataModel — модель списка
Исключения:
IllegalArgumentException — если модель является null

JList

public JList(E[] listData)
Создает JList, отображающий элементы указанного массива. Этот конструктор создает модель только для чтения для данного массива, а затем делегирует вызов конструктору, принимающему ListModel.

Передача в этот метод значения null приводит к неопределенному поведению и, скорее всего, к исключениям. Созданная модель напрямую ссылается на данный массив. Изменение массива после создания списка приводит к неопределенному поведению.

Параметры:
listData — массив объектов, загружаемых в модель данных, non-null

JList

public JList(Vector<? extends E> listData)
Создает JList, отображающий элементы указанного Vector. Этот конструктор создает модель только для чтения для данного Vector, а затем делегирует вызов конструктору, принимающему ListModel.

Передача в этот метод значения null приводит к неопределенному поведению и, скорее всего, к исключениям. Созданная модель напрямую ссылается на данный Vector. Изменение Vector после создания списка приводит к неопределенному поведению.

Параметры:
listData — Vector, загружаемый в модель данных, non-null

JList

public JList()
Создает JList с пустой моделью, доступной только для чтения.

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

getUI

public ListUI getUI()
Возвращает ListUI — объект оформления, который отображает этот компонент.
Переопределяет:
getUI в классе JComponent
Возвращает:
объект ListUI, который отображает этот компонент

setUI

@BeanProperty(hidden=true, visualUpdate=true, description="The UI object that implements the Component's LookAndFeel.") public void setUI(ListUI ui)
Задает ListUI — объект оформления, который отображает этот компонент.
Параметры:
ui — объект ListUI
См. также:
  • UIDefaults.getUI(JComponent)

updateUI

public void updateUI()
Сбрасывает свойство ListUI, присваивая ему значение, предоставленное текущим оформлением. Если текущий визуализатор ячеек был установлен разработчиком (а не самим оформлением), это также приводит к обновлению визуализатора ячеек и его дочерних элементов путем вызова для него SwingUtilities.updateComponentTreeUI.
Переопределяет:
updateUI в классе JComponent
См. также:
  • UIManager.getUI(JComponent)
  • SwingUtilities.updateComponentTreeUI(Component)

getUIClassID

@BeanProperty(bound=false) public String getUIClassID()
Возвращает "ListUI" — ключ UIDefaults, используемый для поиска имени класса javax.swing.plaf.ListUI, определяющего оформление этого компонента.
Переопределяет:
getUIClassID в классе JComponent
Возвращает:
строку "ListUI"
См. также:
  • JComponent.getUIClassID()
  • UIDefaults.getUI(JComponent)

getPrototypeCellValue

public E getPrototypeCellValue()
Возвращает «образцовое» значение ячейки — значение, используемое для вычисления фиксированных ширины и высоты ячеек. Если такого значения нет, может быть возвращено null.
Возвращает:
значение свойства prototypeCellValue
См. также:
  • setPrototypeCellValue(E)

setPrototypeCellValue

@BeanProperty(visualUpdate=true, description="The cell prototype value, used to compute cell width and height.") public void setPrototypeCellValue(E prototypeCellValue)
Задает свойство prototypeCellValue и затем (если новое значение — non-null) вычисляет свойства fixedCellWidth и fixedCellHeight, запрашивая у визуализатора ячеек компонент визуализатора для указанного значения (и индекса 0) и используя предпочтительный размер этого компонента.

Этот метод полезен, когда список слишком длинный, чтобы ListUI вычислял ширину и высоту каждой ячейки, а известно одно значение ячейки, занимающее не меньше места, чем любое другое, — так называемый образец.

Хотя этот метод может изменить все три свойства: prototypeCellValue, fixedCellHeight и fixedCellWidth, уведомления PropertyChangeEvent отправляются только при изменении свойства prototypeCellValue.

Пример задания этого свойства см. в приведенном выше описании класса.

Значение этого свойства по умолчанию — null.

Это связанное свойство JavaBeans.

Параметры:
prototypeCellValue — значение, на основе которого задаются fixedCellWidth и fixedCellHeight
См. также:
  • getPrototypeCellValue()
  • setFixedCellWidth(int)
  • setFixedCellHeight(int)
  • Container.addPropertyChangeListener(PropertyChangeListener)

getFixedCellWidth

public int getFixedCellWidth()
Возвращает значение свойства fixedCellWidth.
Возвращает:
фиксированную ширину ячейки
См. также:
  • setFixedCellWidth(int)

setFixedCellWidth

@BeanProperty(visualUpdate=true, description="Defines a fixed cell width when greater than zero.") public void setFixedCellWidth(int width)
Задает фиксированное значение ширины для каждой ячейки списка. Если width равно -1, ширина ячеек вычисляется в ListUI путем применения getPreferredSize к компоненту визуализатора ячеек для каждого элемента списка.

Значение этого свойства по умолчанию — -1.

Это связанное свойство JavaBeans.

Параметры:
width — ширина, используемая для всех ячеек списка
См. также:
  • setPrototypeCellValue(E)
  • getFixedCellWidth()
  • Container.addPropertyChangeListener(PropertyChangeListener)

getFixedCellHeight

public int getFixedCellHeight()
Возвращает значение свойства fixedCellHeight.
Возвращает:
фиксированную высоту ячейки
См. также:
  • setFixedCellHeight(int)

setFixedCellHeight

@BeanProperty(visualUpdate=true, description="Defines a fixed cell height when greater than zero.") public void setFixedCellHeight(int height)
Задает фиксированное значение высоты для каждой ячейки списка. Если height равно -1, высота ячеек вычисляется в ListUI путем применения getPreferredSize к компоненту визуализатора ячеек для каждого элемента списка.

Значение этого свойства по умолчанию — -1.

Это связанное свойство JavaBeans.

Параметры:
height — высота, используемая для всех ячеек списка
См. также:
  • setPrototypeCellValue(E)
  • setFixedCellWidth(int)
  • Container.addPropertyChangeListener(PropertyChangeListener)

getCellRenderer

public ListCellRenderer<? super E> getCellRenderer()
Возвращает объект, отвечающий за отрисовку элементов списка.
Возвращает:
значение свойства cellRenderer
См. также:
  • setCellRenderer(ListCellRenderer)

setCellRenderer

@BeanProperty(visualUpdate=true, description="The component used to draw the cells.") public void setCellRenderer(ListCellRenderer<? super E> cellRenderer)
Задает делегат, используемый для отрисовки каждой ячейки списка. Назначение визуализатора ячеек подробно описано в документации на уровне класса.

Если свойство prototypeCellValue имеет значение non-null, установка визуализатора ячеек также приводит к повторному вычислению свойств fixedCellWidth и fixedCellHeight. Однако генерируется только одно PropertyChangeEvent — для свойства cellRenderer.

Значение этого свойства по умолчанию предоставляется делегатом ListUI, то есть реализацией оформления.

Это связанное свойство JavaBeans.

Параметры:
cellRenderer — ListCellRenderer, выполняющий отрисовку ячеек списка
См. также:
  • getCellRenderer()

getSelectionForeground

public Color getSelectionForeground()
Возвращает цвет, используемый для отрисовки переднего плана выбранных элементов. DefaultListCellRenderer использует этот цвет для отрисовки переднего плана элементов в выбранном состоянии; так же поступают визуализаторы, устанавливаемые большинством реализаций ListUI.
Возвращает:
цвет переднего плана выбранных элементов
См. также:
  • setSelectionForeground(Color)
  • DefaultListCellRenderer

setSelectionForeground

@BeanProperty(visualUpdate=true, description="The foreground color of selected cells.") public void setSelectionForeground(Color selectionForeground)
Задает цвет переднего плана выбранных элементов, который визуализаторы ячеек могут использовать для отображения текста и графики. DefaultListCellRenderer использует этот цвет для отрисовки переднего плана элементов в выбранном состоянии; так же поступают визуализаторы, устанавливаемые большинством реализаций ListUI.

Значение этого свойства по умолчанию определяется реализацией оформления.

Это связанное свойство JavaBeans.

Параметры:
selectionForeground — Color, используемый для переднего плана выбранных элементов списка
См. также:
  • getSelectionForeground()
  • setSelectionBackground(Color)
  • JComponent.setForeground(Color)
  • JComponent.setBackground(Color)
  • JComponent.setFont(Font)
  • DefaultListCellRenderer

getSelectionBackground

public Color getSelectionBackground()
Возвращает цвет, используемый для отрисовки фона выбранных элементов. DefaultListCellRenderer использует этот цвет для отрисовки фона элементов в выбранном состоянии; так же поступают визуализаторы, устанавливаемые большинством реализаций ListUI.
Возвращает:
цвет фона выбранных элементов
См. также:
  • setSelectionBackground(Color)
  • DefaultListCellRenderer

setSelectionBackground

@BeanProperty(visualUpdate=true, description="The background color of selected cells.") public void setSelectionBackground(Color selectionBackground)
Задает цвет фона выбранных элементов, который визуализаторы ячеек могут использовать для заливки выбранных ячеек. DefaultListCellRenderer использует этот цвет для заливки фона элементов в выбранном состоянии; так же поступают визуализаторы, устанавливаемые большинством реализаций ListUI.

Значение этого свойства по умолчанию определяется реализацией оформления.

Это связанное свойство JavaBeans.

Параметры:
selectionBackground — Color, используемый для фона выбранных ячеек
См. также:
  • getSelectionBackground()
  • setSelectionForeground(Color)
  • JComponent.setForeground(Color)
  • JComponent.setBackground(Color)
  • JComponent.setFont(Font)
  • DefaultListCellRenderer

getVisibleRowCount

public int getVisibleRowCount()
Возвращает значение свойства visibleRowCount. Подробное описание того, как интерпретировать это значение, см. в документации к методу setVisibleRowCount(int).
Возвращает:
значение свойства visibleRowCount.
См. также:
  • setVisibleRowCount(int)

setVisibleRowCount

@BeanProperty(visualUpdate=true, description="The preferred number of rows to display without requiring scrolling") public void setVisibleRowCount(int visibleRowCount)
Задает свойство visibleRowCount, значение которого имеет разный смысл в зависимости от ориентации расположения: для ориентации VERTICAL задает предпочтительное число строк, отображаемых без прокрутки; для остальных ориентаций влияет на перенос ячеек.

При ориентации VERTICAL:
Задание этого свойства влияет на значение, возвращаемое методом getPreferredScrollableViewportSize(), который используется для вычисления предпочтительного размера содержащей области просмотра. Подробные сведения см. в документации к этому методу.

При ориентациях HORIZONTAL_WRAP и VERTICAL_WRAP:
Это свойство влияет на перенос ячеек. Подробные сведения см. в документации к методу setLayoutOrientation(int).

Значение этого свойства по умолчанию — 8.

При вызове этого метода с отрицательным значением свойству присваивается 0.

Это связанное свойство JavaBeans.

Параметры:
visibleRowCount — целое число, задающее предпочтительное количество строк, отображаемых без прокрутки
См. также:
  • getVisibleRowCount()
  • getPreferredScrollableViewportSize()
  • setLayoutOrientation(int)
  • JComponent.getVisibleRect()
  • JViewport

getLayoutOrientation

public int getLayoutOrientation()
Возвращает свойство ориентации расположения списка: VERTICAL, если ячейки расположены в одном столбце; VERTICAL_WRAP, если содержимое расположено в «газетном стиле» — сначала вертикально, затем горизонтально; или HORIZONTAL_WRAP, если содержимое расположено в «газетном стиле» — сначала горизонтально, затем вертикально.
Возвращает:
значение свойства layoutOrientation
Начиная с:
1.4
См. также:
  • setLayoutOrientation(int)

setLayoutOrientation

@BeanProperty(visualUpdate=true, enumerationValues={"JList.VERTICAL","JList.HORIZONTAL_WRAP","JList.VERTICAL_WRAP"}, description="Defines the way list cells are laid out.") public void setLayoutOrientation(int layoutOrientation)
Определяет способ расположения ячеек списка. Рассмотрим JList с пятью ячейками. Ячейки можно расположить одним из следующих способов:
VERTICAL:          0
                   1
                   2
                   3
                   4

HORIZONTAL_WRAP:   0  1  2
                   3  4

VERTICAL_WRAP:     0  3
                   1  4
                   2

Ниже приведено описание этих вариантов расположения:

Описание вариантов расположения VERTICAL, HORIZONTAL_WRAP и VERTICAL_WRAP
Значение Описание
VERTICAL Ячейки располагаются вертикально в одном столбце.
HORIZONTAL_WRAP Ячейки располагаются горизонтально, при необходимости переносясь на новую строку. Если свойство visibleRowCount меньше или равно нулю, перенос определяется шириной списка; в противном случае перенос выполняется так, чтобы в списке было visibleRowCount строк.
VERTICAL_WRAP Ячейки располагаются вертикально, при необходимости переносясь в новый столбец. Если свойство visibleRowCount меньше или равно нулю, перенос определяется высотой списка; в противном случае перенос выполняется через visibleRowCount строк.
Значение этого свойства по умолчанию — VERTICAL.
Параметры:
layoutOrientation — новая ориентация расположения, одно из значений: VERTICAL, HORIZONTAL_WRAP или VERTICAL_WRAP
Исключения:
IllegalArgumentException — если layoutOrientation не является допустимым значением
Начиная с:
1.4
См. также:
  • getLayoutOrientation()
  • setVisibleRowCount(int)
  • getScrollableTracksViewportHeight()
  • getScrollableTracksViewportWidth()

getFirstVisibleIndex

@BeanProperty(bound=false) public int getFirstVisibleIndex()
Возвращает наименьший индекс списка, который в данный момент виден. При ориентации списка componentOrientation первая видимая ячейка находится ближе всего к верхнему левому углу списка. При ориентации справа налево она находится ближе всего к верхнему правому углу. Если ничего не видно или список пуст, возвращается -1. Обратите внимание, что возвращенная ячейка может быть видна лишь частично.
Возвращает:
индекс первой видимой ячейки
См. также:
  • getLastVisibleIndex()
  • JComponent.getVisibleRect()

getLastVisibleIndex

@BeanProperty(bound=false) public int getLastVisibleIndex()
Возвращает наибольший индекс списка, который в данный момент виден. Если ничего не видно или список пуст, возвращается -1. Обратите внимание, что возвращенная ячейка может быть видна лишь частично.
Возвращает:
индекс последней видимой ячейки
См. также:
  • getFirstVisibleIndex()
  • JComponent.getVisibleRect()

ensureIndexIsVisible

public void ensureIndexIsVisible(int index)
Прокручивает список внутри содержащей его области просмотра так, чтобы указанная ячейка была видна полностью. Вызывает scrollRectToVisible с границами указанной ячейки. Чтобы этот метод работал, JList должен находиться внутри JViewport.

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

Параметры:
index — индекс ячейки, которую нужно сделать видимой
См. также:
  • JComponent.scrollRectToVisible(Rectangle)
  • JComponent.getVisibleRect()

setDragEnabled

@BeanProperty(bound=false, description="determines whether automatic drag handling is enabled") public void setDragEnabled(boolean b)
Включает или отключает автоматическую обработку перетаскивания. Чтобы включить автоматическую обработку перетаскивания, этому свойству следует присвоить значение true, а свойство TransferHandler списка должно иметь значение non-null. Значение свойства dragEnabled по умолчанию — false.

За обработку этого свойства и распознавание жеста перетаскивания пользователя отвечает реализация оформления, в частности ListUI списка. Когда автоматическая обработка перетаскивания включена, большинство вариантов оформления (включая те, которые являются подклассами BasicLookAndFeel) начинают операцию перетаскивания при нажатии пользователем кнопки мыши над элементом и перемещении мыши на несколько пикселей. Поэтому присвоение этому свойству значения true может незаметно повлиять на поведение выбора.

Если используется оформление, игнорирующее это свойство, операцию перетаскивания все равно можно начать, вызвав exportAsDrag у TransferHandler списка.

Параметры:
b — следует ли включить автоматическую обработку перетаскивания
Исключения:
HeadlessException — если b имеет значение true, а GraphicsEnvironment.isHeadless() возвращает true
Начиная с:
1.4
См. также:
  • GraphicsEnvironment.isHeadless()
  • getDragEnabled()
  • JComponent.setTransferHandler(TransferHandler)
  • TransferHandler

getDragEnabled

public boolean getDragEnabled()
Возвращает, включена ли автоматическая обработка перетаскивания.
Возвращает:
значение свойства dragEnabled
Начиная с:
1.4
См. также:
  • setDragEnabled(boolean)

setDropMode

public final void setDropMode(DropMode dropMode)
Задает режим сброса для этого компонента. Для обеспечения обратной совместимости значением этого свойства по умолчанию является DropMode.USE_SELECTION. Однако для улучшения взаимодействия с пользователем рекомендуется использовать один из других режимов. Например, DropMode.ON позволяет выделять элементы так же, как при обычном выборе, но не изменяет фактический выбор в списке.

JList поддерживает следующие режимы сброса:

  • DropMode.USE_SELECTION
  • DropMode.ON
  • DropMode.INSERT
  • DropMode.ON_OR_INSERT
Режим сброса имеет смысл, только если у компонента есть TransferHandler, принимающий сбрасываемые данные.
Параметры:
dropMode — используемый режим сброса
Исключения:
IllegalArgumentException — если режим сброса не поддерживается или null
Начиная с:
1.6
См. также:
  • getDropMode()
  • getDropLocation()
  • JComponent.setTransferHandler(TransferHandler)
  • TransferHandler

getDropMode

public final DropMode getDropMode()
Возвращает режим сброса для этого компонента.
Возвращает:
режим сброса для этого компонента
Начиная с:
1.6
См. также:
  • setDropMode(DropMode)

getDropLocation

@BeanProperty(bound=false) public final JList.DropLocation getDropLocation()
Возвращает местоположение, которое этот компонент должен визуально обозначать как место сброса во время операции DnD над компонентом, или null, если в данный момент местоположение не должно отображаться.

Этот метод не предназначен для получения сведений о месте сброса из TransferHandler, поскольку место сброса задаётся только после того, как TransferHandler's canImport вернул результат и разрешил отображение местоположения.

При изменении этого свойства компонент генерирует событие изменения свойства с именем "dropLocation".

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

Возвращает:
место сброса
С версии:
1.6
См. также:
  • setDropMode(DropMode)
  • TransferHandler.canImport(TransferHandler.TransferSupport)

getNextMatch

public int getNextMatch(String prefix, int startIndex, Position.Bias bias)
Возвращает следующий элемент списка, значение toString которого начинается с указанного префикса.
Параметры:
prefix - строка для проверки на совпадение
startIndex - индекс, с которого начинается поиск
bias - направление поиска: Position.Bias.Forward или Position.Bias.Backward.
Возвращает:
индекс следующего элемента списка, начинающегося с префикса; в противном случае — -1
Вызывает исключение:
IllegalArgumentException - если префикс равен null или startIndex выходит за допустимые границы
С версии:
1.4

getToolTipText

public String getToolTipText(MouseEvent event)
Возвращает текст всплывающей подсказки для указанного события. Этот метод переопределяет JComponent's getToolTipText: сначала он проверяет компонент средства отображения ячейки, над которой произошло событие, и возвращает его текст всплывающей подсказки, если он есть. Эта реализация позволяет задавать текст всплывающей подсказки на уровне ячейки с помощью setToolTipText в компоненте средства отображения ячеек.

Примечание: Чтобы JList корректно отображал всплывающие подсказки своих средств отображения таким способом, JList должен быть зарегистрированным компонентом в ToolTipManager. Эта регистрация выполняется автоматически в конструкторе. Однако если позднее JList будет отменён, например, вызовом setToolTipText(null), подсказки средств отображения больше не будут отображаться.

Переопределяет:
getToolTipText в классе JComponent
Параметры:
event - MouseEvent, для которого нужно получить текст всплывающей подсказки
Возвращает:
строку с текстом всплывающей подсказки
См. также:
  • JComponent.setToolTipText(String)
  • JComponent.getToolTipText()

locationToIndex

public int locationToIndex(Point location)
Возвращает индекс ячейки, ближайшей к указанному местоположению в системе координат списка. Чтобы определить, содержит ли ячейка указанное местоположение, сравните точку с границами ячейки, полученными с помощью getCellBounds. Если модель пуста, этот метод возвращает -1.

Это вспомогательный метод, который делегирует вызов одноимённому методу ListUI списка. Он возвращает -1, если у списка нет ListUI.

Параметры:
location - координаты точки
Возвращает:
индекс ячейки, ближайшей к указанному местоположению, или -1

indexToLocation

public Point indexToLocation(int index)
Возвращает начало указанного элемента в системе координат списка. Если индекс недопустим, этот метод возвращает null.

Это вспомогательный метод, который делегирует вызов одноимённому методу ListUI списка. Он возвращает null, если у списка нет ListUI.

Параметры:
index - индекс ячейки
Возвращает:
начало ячейки или null

getCellBounds

public Rectangle getCellBounds(int index0, int index1)
Возвращает ограничивающий прямоугольник в системе координат списка для диапазона ячеек, заданного двумя индексами. Индексы можно указать в любом порядке.

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

Это вспомогательный метод, который делегирует вызов одноимённому методу ListUI списка. Он возвращает null, если у списка нет ListUI.

Параметры:
index0 - первый индекс диапазона
index1 - второй индекс диапазона
Возвращает:
ограничивающий прямоугольник для диапазона ячеек или null

getModel

public ListModel<E> getModel()
Возвращает модель данных, содержащую список элементов, отображаемых компонентом JList.
Возвращает:
ListModel, предоставляющую отображаемый список элементов
См. также:
  • setModel(ListModel)

setModel

@BeanProperty(visualUpdate=true, description="The object that contains the data to be drawn by this JList.") public void setModel(ListModel<E> model)
Задаёт модель, представляющую содержимое или «значение» списка, уведомляет слушателей об изменении свойства, а затем снимает выделение в списке.

Это связанное свойство JavaBeans.

Параметры:
model - ListModel, предоставляющая список элементов для отображения
Вызывает исключение:
IllegalArgumentException - если model равно null
См. также:
  • getModel()
  • clearSelection()

setListData

public void setListData(E[] listData)
Создаёт доступную только для чтения ListModel из массива элементов и вызывает setModel с этой моделью.

Передача значения null этому методу приводит к неопределённому поведению и, скорее всего, к исключениям. Созданная модель напрямую ссылается на указанный массив. Изменение массива после вызова этого метода приводит к неопределённому поведению.

Параметры:
listData - массив E, содержащий элементы для отображения в списке
См. также:
  • setModel(ListModel)

setListData

public void setListData(Vector<? extends E> listData)
Создаёт доступную только для чтения ListModel из Vector и вызывает setModel с этой моделью.

Передача значения null этому методу приводит к неопределённому поведению и, скорее всего, к исключениям. Созданная модель напрямую ссылается на указанный Vector. Изменение Vector после вызова этого метода приводит к неопределённому поведению.

Параметры:
listData - Vector, содержащий элементы для отображения в списке
См. также:
  • setModel(ListModel)

createSelectionModel

protected ListSelectionModel createSelectionModel()
Возвращает экземпляр DefaultListSelectionModel; вызывается во время создания объекта для инициализации свойства модели выделения списка.
Возвращает:
DefaultListSelectionModel, используемую для инициализации свойства модели выделения списка во время создания объекта
См. также:
  • setSelectionModel(ListSelectionModel)
  • DefaultListSelectionModel

getSelectionModel

public ListSelectionModel getSelectionModel()
Возвращает текущую модель выделения. Модель выделения хранит состояние выделения списка. Подробнее см. документацию на уровне класса.
Возвращает:
ListSelectionModel, хранящую выделенные элементы списка
См. также:
  • setSelectionModel(ListSelectionModel)
  • ListSelectionModel

fireSelectionValueChanged

protected void fireSelectionValueChanged(int firstIndex, int lastIndex, boolean isAdjusting)
Уведомляет ListSelectionListeners, непосредственно добавленных в список, об изменениях выделения, внесённых в модель выделения. JList отслеживает изменения выделения в модели выделения и пересылает уведомления слушателям, непосредственно добавленным в список, вызывая этот метод.

Этот метод создаёт ListSelectionEvent с этим списком в качестве источника и указанными аргументами, а затем отправляет его зарегистрированным ListSelectionListeners.

Параметры:
firstIndex - первый индекс диапазона, <= lastIndex
lastIndex - последний индекс диапазона, >= firstIndex
isAdjusting - указывает, является ли это одним из серии событий, во время которых изменения продолжают вноситься
См. также:
  • addListSelectionListener(ListSelectionListener)
  • removeListSelectionListener(ListSelectionListener)
  • ListSelectionEvent
  • EventListenerList

addListSelectionListener

public void addListSelectionListener(ListSelectionListener listener)
Добавляет слушателя списка, который будет получать уведомления при каждом изменении выделения; это предпочтительный способ отслеживания изменений состояния выделения. JList отслеживает изменения состояния выделения в модели выделения и уведомляет указанного слушателя о каждом изменении. У отправляемых слушателю ListSelectionEvent свойство source имеет значение этого списка.
Параметры:
listener - ListSelectionListener, который нужно добавить
См. также:
  • getSelectionModel()
  • getListSelectionListeners()

removeListSelectionListener

public void removeListSelectionListener(ListSelectionListener listener)
Удаляет слушателя выделения из списка.
Параметры:
listener - ListSelectionListener, который нужно удалить
См. также:
  • addListSelectionListener(ListSelectionListener)
  • getSelectionModel()

getListSelectionListeners

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

setSelectionModel

@BeanProperty(description="The selection model, recording which cells are selected.") public void setSelectionModel(ListSelectionModel selectionModel)
Задаёт для списка selectionModel — реализацию null ListSelectionModel. Модель выделения отвечает за создание одиночных выделений, выделений непрерывных диапазонов и выделений несмежных элементов.

Это связанное свойство JavaBeans.

Параметры:
selectionModel - ListSelectionModel, реализующая выделение
Вызывает исключение:
IllegalArgumentException - если selectionModel равно null
См. также:
  • getSelectionModel()

setSelectionMode

@BeanProperty(bound=false, enumerationValues={"ListSelectionModel.SINGLE_SELECTION","ListSelectionModel.SINGLE_INTERVAL_SELECTION","ListSelectionModel.MULTIPLE_INTERVAL_SELECTION"}, description="The selection mode.") public void setSelectionMode(int selectionMode)
Задаёт режим выделения списка. Это вспомогательный метод, который напрямую задаёт режим выделения в модели выделения.

Ниже перечислены допустимые режимы выделения:

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

getSelectionMode

public int getSelectionMode()
Возвращает текущий режим выделения списка. Это вспомогательный метод, который делегирует вызов одноимённому методу модели выделения списка.
Возвращает:
текущий режим выделения
См. также:
  • setSelectionMode(int)

getAnchorSelectionIndex

@BeanProperty(bound=false) public int getAnchorSelectionIndex()
Возвращает индекс опорного элемента выделения. Это вспомогательный метод, который делегирует вызов одноимённому методу модели выделения списка.
Возвращает:
индекс опорного элемента выделения
См. также:
  • ListSelectionModel.getAnchorSelectionIndex()

getLeadSelectionIndex

@BeanProperty(bound=false, description="The lead selection index.") public int getLeadSelectionIndex()
Возвращает индекс ведущего элемента выделения. Это вспомогательный метод, который делегирует вызов одноимённому методу модели выделения списка.
Возвращает:
индекс ведущего элемента выделения
См. также:
  • ListSelectionModel.getLeadSelectionIndex()

getMinSelectionIndex

@BeanProperty(bound=false) public int getMinSelectionIndex()
Возвращает наименьший индекс выделенной ячейки или -1, если выделение пусто. Это вспомогательный метод, который делегирует вызов одноимённому методу модели выделения списка.
Возвращает:
наименьший индекс выделенной ячейки или -1
См. также:
  • ListSelectionModel.getMinSelectionIndex()

getMaxSelectionIndex

@BeanProperty(bound=false) public int getMaxSelectionIndex()
Возвращает наибольший индекс выделенной ячейки или -1, если выделение пусто. Это вспомогательный метод, который делегирует вызов одноимённому методу модели выделения списка.
Возвращает:
наибольший индекс выделенной ячейки
См. также:
  • ListSelectionModel.getMaxSelectionIndex()

isSelectedIndex

public boolean isSelectedIndex(int index)
Возвращает true, если указанный индекс выделен, иначе false. Это вспомогательный метод, который делегирует вызов одноимённому методу модели выделения списка.
Параметры:
index - индекс, для которого нужно проверить состояние выделения
Возвращает:
true, если указанный индекс выделен, иначе false
См. также:
  • ListSelectionModel.isSelectedIndex(int)
  • setSelectedIndex(int)

isSelectionEmpty

@BeanProperty(bound=false) public boolean isSelectionEmpty()
Возвращает true, если ничего не выделено, иначе false. Это вспомогательный метод, который делегирует вызов одноимённому методу модели выделения списка.
Возвращает:
true, если ничего не выделено, иначе false
См. также:
  • ListSelectionModel.isSelectionEmpty()
  • clearSelection()

clearSelection

public void clearSelection()
Снимает выделение; после вызова этого метода isSelectionEmpty вернёт true. Это вспомогательный метод, который делегирует вызов одноимённому методу модели выделения списка.
См. также:
  • ListSelectionModel.clearSelection()
  • isSelectionEmpty()

setSelectionInterval

public void setSelectionInterval(int anchor, int lead)
Выделяет указанный интервал. В него включаются оба индекса: anchor и lead. anchor не обязательно должен быть меньше или равен lead. Это вспомогательный метод, который делегирует вызов одноимённому методу модели выделения списка.

Подробные сведения об обработке значений меньше 0 см. в документации класса используемой модели выделения.

Параметры:
anchor - первый индекс для выделения
lead - последний индекс для выделения
См. также:
  • ListSelectionModel.setSelectionInterval(int, int)
  • DefaultListSelectionModel.setSelectionInterval(int, int)
  • createSelectionModel()
  • addSelectionInterval(int, int)
  • removeSelectionInterval(int, int)

addSelectionInterval

public void addSelectionInterval(int anchor, int lead)
Задаёт выделение как объединение указанного интервала с текущим выделением. В него включаются оба индекса: anchor и lead. anchor не обязательно должен быть меньше или равен lead. Это вспомогательный метод, который делегирует вызов одноимённому методу модели выделения списка.

Подробные сведения об обработке значений меньше 0 см. в документации класса используемой модели выделения.

Параметры:
anchor - первый индекс, добавляемый к выделению
lead - последний индекс, добавляемый к выделению
См. также:
  • ListSelectionModel.addSelectionInterval(int, int)
  • DefaultListSelectionModel.addSelectionInterval(int, int)
  • createSelectionModel()
  • setSelectionInterval(int, int)
  • removeSelectionInterval(int, int)

removeSelectionInterval

public void removeSelectionInterval(int index0, int index1)
Задаёт выделение как разность между указанным интервалом и текущим выделением. Удаляются оба индекса: index0 и index1. index0 не обязательно должен быть меньше или равен index1. Это вспомогательный метод, который делегирует вызов одноимённому методу модели выделения списка.

Подробные сведения об обработке значений меньше 0 см. в документации класса используемой модели выделения.

Параметры:
index0 - первый индекс, удаляемый из выделения
index1 - последний индекс, удаляемый из выделения
См. также:
  • ListSelectionModel.removeSelectionInterval(int, int)
  • DefaultListSelectionModel.removeSelectionInterval(int, int)
  • createSelectionModel()
  • setSelectionInterval(int, int)
  • addSelectionInterval(int, int)

setValueIsAdjusting

public void setValueIsAdjusting(boolean b)
Задаёт свойство valueIsAdjusting модели выделения. Когда true, последующие изменения выделения следует считать частью одного изменения. Это свойство используется внутри системы, и разработчикам обычно не требуется вызывать этот метод. Например, при обновлении модели в ответ на перетаскивание пользователем значение свойства устанавливается в true в начале перетаскивания и в false по его завершении. Это позволяет слушателям обновляться только после завершения изменения, а не обрабатывать все промежуточные значения.

Это свойство можно использовать напрямую, если выполняется серия изменений, которые следует считать частью одного изменения.

Это вспомогательный метод, который делегирует вызов одноимённому методу модели выделения списка. Дополнительные сведения см. в документации к ListSelectionModel.setValueIsAdjusting(boolean).

Параметры:
b - новое значение свойства
См. также:
  • ListSelectionModel.setValueIsAdjusting(boolean)
  • ListSelectionEvent.getValueIsAdjusting()
  • getValueIsAdjusting()

getValueIsAdjusting

public boolean getValueIsAdjusting()
Возвращает значение свойства isAdjusting модели выделения.

Это вспомогательный метод, который делегирует вызов одноимённому методу модели выделения списка.

Возвращает:
значение свойства isAdjusting модели выделения.
См. также:
  • setValueIsAdjusting(boolean)
  • ListSelectionModel.getValueIsAdjusting()

getSelectedIndices

public int[] getSelectedIndices()
Возвращает массив всех выделенных индексов в порядке возрастания.
Возвращает:
все выделенные индексы в порядке возрастания или пустой массив, если ничего не выделено
См. также:
  • removeSelectionInterval(int, int)
  • addListSelectionListener(ListSelectionListener)

setSelectedIndex

@BeanProperty(bound=false, description="The index of the selected cell.") public void setSelectedIndex(int index)
Выделяет одну ячейку. Ничего не делает, если указанный индекс больше или равен размеру модели. Это вспомогательный метод, использующий setSelectionInterval модели выделения. Подробные сведения об обработке значений меньше 0 см. в документации класса используемой модели выделения.
Параметры:
index - индекс ячейки для выделения
См. также:
  • ListSelectionModel.setSelectionInterval(int, int)
  • isSelectedIndex(int)
  • addListSelectionListener(ListSelectionListener)

setSelectedIndices

public void setSelectedIndices(int[] indices)
Изменяет выбор так, чтобы он состоял из индексов, указанных в данном массиве. Индексы, большие или равные размеру модели, игнорируются. Это вспомогательный метод, который очищает выбор, а затем использует addSelectionInterval для добавления индексов в модель выбора. Подробные сведения об обработке значений, меньших 0, см. в документации класса используемой модели выбора.
Параметры:
indices — массив индексов ячеек, которые нужно выбрать, non-null
Выбрасывает:
NullPointerException — если переданный массив равен null
См. также:
  • ListSelectionModel.addSelectionInterval(int, int)
  • isSelectedIndex(int)
  • addListSelectionListener(ListSelectionListener)

getSelectedValues

@Deprecated @BeanProperty(bound=false) public Object[] getSelectedValues()
Устарело.
Начиная с JDK 1.7 заменено на getSelectedValuesList()
Возвращает массив всех выбранных значений в порядке возрастания их индексов в списке.
Возвращает:
выбранные значения или пустой массив, если ничего не выбрано
См. также:
  • isSelectedIndex(int)
  • getModel()
  • addListSelectionListener(ListSelectionListener)

getSelectedValuesList

@BeanProperty(bound=false) public List<E> getSelectedValuesList()
Возвращает список всех выбранных элементов в порядке возрастания их индексов в списке.
Возвращает:
выбранные элементы или пустой список, если ничего не выбрано
Начиная с:
1.7
См. также:
  • isSelectedIndex(int)
  • getModel()
  • addListSelectionListener(ListSelectionListener)

getSelectedIndex

public int getSelectedIndex()
Возвращает наименьший индекс выбранной ячейки; при выборе только одного элемента в списке это выбранный элемент. Если выбрано несколько элементов, возвращается наименьший из выбранных индексов. Если ничего не выбрано, возвращает -1.

Этот метод является оболочкой, делегирующей вызов getMinSelectionIndex.

Возвращает:
наименьший индекс выбранной ячейки
См. также:
  • getMinSelectionIndex()
  • addListSelectionListener(ListSelectionListener)

getSelectedValue

@BeanProperty(bound=false) public E getSelectedValue()
Возвращает значение для наименьшего индекса выбранной ячейки; при выборе только одного элемента в списке это выбранное значение. Если выбрано несколько элементов, возвращается значение для наименьшего из выбранных индексов. Если ничего не выбрано, возвращает null.

Это вспомогательный метод, который просто возвращает значение модели для getMinSelectionIndex.

Возвращает:
первое выбранное значение
См. также:
  • getMinSelectionIndex()
  • getModel()
  • addListSelectionListener(ListSelectionListener)

setSelectedValue

public void setSelectedValue(Object anObject, boolean shouldScroll)
Выбирает указанный объект в списке. Если переданный объект равен null, выбор очищается.
Параметры:
anObject — объект, который нужно выбрать
shouldScroll — true, если список должен прокрутиться так, чтобы выбранный объект, если он существует, отобразился; в противном случае false

getPreferredScrollableViewportSize

@BeanProperty(bound=false) public Dimension getPreferredScrollableViewportSize()
Вычисляет размер области просмотра, необходимый для отображения visibleRowCount строк. Значение, возвращаемое этим методом, зависит от ориентации компоновки:

VERTICAL:
Это несложно, если заданы и fixedCellWidth, и fixedCellHeight (явно или посредством указания прототипа значения ячейки). Ширина равна fixedCellWidth плюс горизонтальные внутренние отступы списка. Высота равна fixedCellHeight, умноженному на visibleRowCount, плюс вертикальные внутренние отступы списка.

Если fixedCellWidth или fixedCellHeight не указаны, используются эвристические значения. Если модель пуста, ширина равна fixedCellWidth, если это значение больше 0, либо фиксированному значению 256. Высота равна fixedCellHeight, умноженному на visibleRowCount, если fixedCellHeight больше 0; в противном случае используется фиксированное значение 16, умноженное на visibleRowCount.

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

VERTICAL_WRAP или HORIZONTAL_WRAP:
Этот метод просто возвращает значение из getPreferredSize. Предполагается, что ListUI списка переопределяет getPreferredSize и возвращает подходящее значение.

Определено в:
getPreferredScrollableViewportSize в интерфейсе Scrollable
Возвращает:
размер области просмотра, необходимый для отображения visibleRowCount строк
См. также:
  • getPreferredScrollableViewportSize()
  • setPrototypeCellValue(E)

getScrollableUnitIncrement

public int getScrollableUnitIncrement(Rectangle visibleRect, int orientation, int direction)
Возвращает расстояние прокрутки, необходимое для отображения следующей или предыдущей строки (при вертикальной прокрутке) либо столбца (при горизонтальной прокрутке).

При горизонтальной прокрутке, если ориентация компоновки равна VERTICAL, возвращается размер шрифта списка (или 1, если шрифт равен null).

Определено в:
getScrollableUnitIncrement в интерфейсе Scrollable
Параметры:
visibleRect — видимая в области просмотра область
orientation — SwingConstants.HORIZONTAL или SwingConstants.VERTICAL
direction — значение меньше или равное нулю для прокрутки вверх/назад, больше нуля — для прокрутки вниз/вперёд
Возвращает:
приращение прокрутки на одну «единицу» в указанном направлении; всегда положительное
Выбрасывает:
IllegalArgumentException — если visibleRect равен null или orientation не является ни SwingConstants.VERTICAL, ни SwingConstants.HORIZONTAL
См. также:
  • getScrollableBlockIncrement(Rectangle, int, int)
  • Scrollable.getScrollableUnitIncrement(Rectangle, int, int)

getScrollableBlockIncrement

public int getScrollableBlockIncrement(Rectangle visibleRect, int orientation, int direction)
Возвращает расстояние прокрутки, необходимое для отображения следующего или предыдущего блока.

При вертикальной прокрутке применяются следующие правила:

  • при прокрутке вниз возвращается расстояние, при котором последний видимый элемент становится первым полностью видимым элементом
  • при прокрутке вверх возвращается расстояние, при котором первый видимый элемент становится последним полностью видимым элементом
  • если список пуст, возвращается visibleRect.height

При горизонтальной прокрутке, если ориентация компоновки равна VERTICAL_WRAP или HORIZONTAL_WRAP:

  • при прокрутке вправо возвращается расстояние, при котором последний видимый элемент становится первым полностью видимым элементом
  • при прокрутке влево возвращается расстояние, при котором первый видимый элемент становится последним полностью видимым элементом
  • если список пуст, возвращается visibleRect.width

При горизонтальной прокрутке и ориентации VERTICAL возвращается visibleRect.width.

Обратите внимание, что значение visibleRect должно быть равно this.getVisibleRect().

Определено в:
getScrollableBlockIncrement в интерфейсе Scrollable
Параметры:
visibleRect — видимая в области просмотра область
orientation — SwingConstants.HORIZONTAL или SwingConstants.VERTICAL
direction — значение меньше или равное нулю для прокрутки вверх/назад, больше нуля — для прокрутки вниз/вперёд
Возвращает:
приращение прокрутки на один «блок» в указанном направлении; всегда положительное
Выбрасывает:
IllegalArgumentException — если visibleRect равен null или orientation не является ни SwingConstants.VERTICAL, ни SwingConstants.HORIZONTAL
См. также:
  • getScrollableUnitIncrement(Rectangle, int, int)
  • Scrollable.getScrollableBlockIncrement(Rectangle, int, int)

getScrollableTracksViewportWidth

@BeanProperty(bound=false) public boolean getScrollableTracksViewportWidth()
Возвращает true, если этот JList отображается в JViewport, а ширина области просмотра превышает предпочтительную ширину списка, либо если ориентация компоновки равна HORIZONTAL_WRAP и visibleRowCount <= 0; в противном случае возвращает false.

Если false, ширина области просмотра не отслеживается. Это позволяет выполнять горизонтальную прокрутку, если сам JViewport встроен в JScrollPane.

Определено в:
getScrollableTracksViewportWidth в интерфейсе Scrollable
Возвращает:
должна ли внешняя область просмотра принудительно устанавливать ширину списка равной собственной ширине
См. также:
  • Scrollable.getScrollableTracksViewportWidth()

getScrollableTracksViewportHeight

@BeanProperty(bound=false) public boolean getScrollableTracksViewportHeight()
Возвращает true, если этот JList отображается в JViewport, а высота области просмотра превышает предпочтительную высоту списка, либо если ориентация компоновки равна VERTICAL_WRAP и visibleRowCount <= 0; в противном случае возвращает false.

Если false, высота области просмотра не отслеживается. Это позволяет выполнять вертикальную прокрутку, если сам JViewport встроен в JScrollPane.

Определено в:
getScrollableTracksViewportHeight в интерфейсе Scrollable
Возвращает:
должна ли внешняя область просмотра принудительно устанавливать высоту списка равной собственной высоте
См. также:
  • Scrollable.getScrollableTracksViewportHeight()

paramString

protected String paramString()
Возвращает String представление этого JList. Этот метод предназначен только для отладки; содержимое и формат возвращаемого String могут различаться в разных реализациях. Возвращаемое String может быть пустым, но не может быть null.
Переопределяет:
paramString в классе JComponent
Возвращает:
String представление этого JList.

getAccessibleContext

@BeanProperty(bound=false) public AccessibleContext getAccessibleContext()
Получает AccessibleContext, связанный с этим JList. Для JList объект AccessibleContext имеет вид AccessibleJList.

При необходимости создаётся новый экземпляр AccessibleJList.

Определено в:
getAccessibleContext в интерфейсе Accessible
Переопределяет:
getAccessibleContext в классе Component
Возвращает:
объект AccessibleJList, служащий AccessibleContext этого JList

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по 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/JList.html

Spec-Zone.ru

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