Класс JList<E>
- java.lang.Object
-
- java.awt.Component
-
- java.awt.Container
-
- javax.swing.JComponent
-
- javax.swing.JList<E>
- Type Parameters:
-
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, который автоматически создаёт для вас экземпляр read-only 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's ListUI отвечает за поддержание визуального представления в актуальном состоянии с помощью прослушивания изменений модели.
Простые приложения с динамическим содержимым, JList, могут использовать класс DefaultListModel для управления элементами списка. Этот класс реализует интерфейс ListModel и также предоставляет API, подобный java.util.Vector. Приложения, которым нужна более настраиваемая реализация ListModel, могут вместо этого наследоваться от AbstractListModel, который обеспечивает базовую поддержку управления и уведомления слушателей. Например, read-only реализация 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. По умолчанию рендерер ячеек, использующий компонент JLabel для отрисовки, устанавливается ListUI списка. Вы можете заменить свой собственный рендерер, используя код такого рода:
// 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, поддержка долгосрочного хранения всех JavaBeans™ добавлена в пакет java.beans. Пожалуйста, обратитесь к XMLEncoder.
См. Как использовать списки в Java Tutorial для дополнительной документации.
- С момента:
- 1.2
- См. также:
-
ListModel,AbstractListModel,DefaultListModel,ListSelectionModel,DefaultListSelectionModel,ListCellRenderer,DefaultListCellRenderer, Сериализованная форма
Вложенные классы
| Модификатор и тип | Класс | Описание |
|---|---|---|
protected class | JList.AccessibleJList | Этот класс реализует поддержку доступности для класса |
static class | JList.DropLocation | Подкласс |
Вложенные классы/интерфейсы, объявленные в классе javax.swing.JComponent
JComponent.AccessibleJComponent Вложенные классы/интерфейсы, объявленные в классе java.awt.Container
Container.AccessibleAWTContainer Вложенные классы/интерфейсы, объявленные в классе java.awt.Component
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy Краткое описание полей
| Модификатор и тип | Поле | Описание |
|---|---|---|
static int | HORIZONTAL_WRAP | Означает "газетную" компоновку с ячейками, текущими по горизонтали, а затем по вертикали. |
static int | VERTICAL | Означает вертикальную компоновку ячеек в одном столбце; по умолчанию. |
static int | VERTICAL_WRAP | Означает "газетную" компоновку с ячейками, текущими по вертикали, а затем по горизонтали. |
Поля, объявленные в классе javax.swing.JComponent
listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW Поля, объявленные в классе java.awt.Component
accessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT Поля, объявленные в интерфейсе java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
JList() | Создаёт |
JList(E[] listData) | Создаёт |
JList(Vector<? extends E> listData) | Создаёт |
JList(ListModel<E> dataModel) | Создаёт |
Методы
| Модификатор и тип | Метод | Описание |
|---|---|---|
void | addListSelectionListener(ListSelectionListener listener) | Добавляет слушателя в список, чтобы уведомлять о каждом изменении в выборе; предпочтительный способ прослушивания изменений состояния выбора. |
void | addSelectionInterval(int anchor,
int lead) | Устанавливает выбор в объединение указанного интервала с текущим выбором. |
void | clearSelection() | Очищает выбор; после вызова этого метода |
protected ListSelectionModel | createSelectionModel() | Возвращает экземпляр |
void | ensureIndexIsVisible(int index) | Прокручивает список внутри охватывающего области видимости элемента, чтобы сделать указанную ячейку полностью видимой. |
protected void | fireSelectionValueChanged(int firstIndex,
int lastIndex,
boolean isAdjusting) | Уведомляет |
AccessibleContext | getAccessibleContext() | Получает |
int | getAnchorSelectionIndex() | Возвращает индекс якоря выбора. |
Rectangle | getCellBounds(int index0,
int index1) | Возвращает прямоугольник, ограничивающий область в системе координат списка, для диапазона ячеек, заданного двумя индексами. |
ListCellRenderer<? super E> | getCellRenderer() | Возвращает объект, отвечающий за отрисовку элементов списка. |
boolean | getDragEnabled() | Возвращает, включена ли автоматическая обработка перетаскивания. |
JList.DropLocation | getDropLocation() | Возвращает расположение, которое этот компонент должен визуально указывать как место выгрузки во время операции перетаскивания над компонентом, или |
DropMode | getDropMode() | Возвращает режим выгрузки для этого компонента. |
int | getFirstVisibleIndex() | Возвращает наименьший индекс элемента списка, который сейчас виден. |
int | getFixedCellHeight() | Возвращает значение свойства |
int | getFixedCellWidth() | Возвращает значение свойства |
int | getLastVisibleIndex() | Возвращает наибольший индекс элемента списка, который сейчас виден. |
int | getLayoutOrientation() | Возвращает свойство ориентации макета списка: |
int | getLeadSelectionIndex() | Возвращает индекс ведущего выбора. |
ListSelectionListener[] | getListSelectionListeners() | Возвращает массив всех |
int | getMaxSelectionIndex() | Возвращает наибольший индекс выбранной ячейки или |
int | getMinSelectionIndex() | Возвращает наименьший индекс выбранной ячейки или |
ListModel<E> | getModel() | Возвращает модель данных, которая содержит список элементов, отображаемых компонентом |
int | getNextMatch(String prefix,
int startIndex,
Position.Bias bias) | Возвращает следующий элемент списка, значение |
Dimension | getPreferredScrollableViewportSize() | Вычисляет размер области видимости, необходимый для отображения |
E | getPrototypeCellValue() | Возвращает «прототипичное» значение ячейки — значение, используемое для расчёта фиксированной ширины и высоты ячеек. |
int | getScrollableBlockIncrement(Rectangle visibleRect,
int orientation,
int direction) | Возвращает расстояние для прокрутки, чтобы отобразить следующий или предыдущий блок. |
boolean | getScrollableTracksViewportHeight() | Возвращает |
boolean | getScrollableTracksViewportWidth() | Возвращает |
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() | Возвращает |
String | getUIClassID() | Возвращает |
boolean | getValueIsAdjusting() | Возвращает значение свойства |
int | getVisibleRowCount() | Возвращает значение свойства |
Point | indexToLocation(int index) | Возвращает начало указанного элемента в системе координат списка. |
boolean | isSelectedIndex(int index) | Возвращает |
boolean | isSelectionEmpty() | Возвращает |
int | locationToIndex(Point location) | Возвращает индекс ячейки, ближайшей к указанному расположению в системе координат списка. |
protected String | paramString() | Возвращает представление |
void | removeListSelectionListener(ListSelectionListener listener) | Удаляет слушателя выбора из списка. |
void | removeSelectionInterval(int index0,
int index1) | Устанавливает выбор в разность указанного интервала и текущего выбора. |
void | setCellRenderer(ListCellRenderer<? super E> cellRenderer) | Устанавливает делегата, используемого для отрисовки каждой ячейки в списке. |
void | setDragEnabled(boolean b) | Включает или отключает автоматическую обработку перетаскивания. |
|---|---|---|
void | setDropMode(DropMode dropMode) | Устанавливает режим выдачи для этого компонента. |
void | setFixedCellHeight(int height) | Устанавливает фиксированное значение для высоты каждой ячейки в списке. |
void | setFixedCellWidth(int width) | Устанавливает фиксированное значение для ширины каждой ячейки в списке. |
void | setLayoutOrientation(int layoutOrientation) | Определяет способ вывода ячеек списка. |
void | setListData(E[] listData) | Создаёт доступный только для чтения |
void | setListData(Vector<? extends E> listData) | Создаёт доступный только для чтения |
void | setModel(ListModel<E> model) | Устанавливает модель, представляющую содержимое или «значение» списка, уведомляет слушателей об изменениях свойств и затем очищает выделение в списке. |
void | setPrototypeCellValue(E prototypeCellValue) | Устанавливает свойство |
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) | Устанавливает |
void | setUI(ListUI ui) | Устанавливает |
void | setValueIsAdjusting(boolean b) | Устанавливает свойство |
void | setVisibleRowCount(int visibleRowCount) | Устанавливает свойство |
void | updateUI() | Сбрасывает свойство |
Methods declared in class javax.swing.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, 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 Methods declared in class java.awt.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 Methods declared in class java.awt.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, hide, 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 Methods declared in class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait Поля
VERTICAL
public static final int VERTICAL
Указывает вертикальную компоновку ячеек в один столбец; предпочтительная компоновка.
- Since:
- 1.4
- See Also:
-
setLayoutOrientation(int), Значения константных полей
VERTICAL_WRAP
public static final int VERTICAL_WRAP
Указывает компоновку в стиле «газеты» с ячейками, выравниваемыми вертикально, а затем горизонтально.
- Since:
- 1.4
- See Also:
-
setLayoutOrientation(int), Значения константных полей
HORIZONTAL_WRAP
public static final int HORIZONTAL_WRAP
Указывает компоновку в стиле «газеты» с ячейками, выравниваемыми горизонтально, а затем вертикально.
- Since:
- 1.4
- See Also:
-
setLayoutOrientation(int), Значения константных полей
Конструкторы
JList
public JList(ListModel<E> dataModel)
Создаёт JList, отображающий элементы из указанной, non-null, модели. Все конструкторы JList делегируют этому.
Этот конструктор регистрирует список в ToolTipManager, позволяя компонентам визуализации ячеек предоставлять всплывающие подсказки.
- Parameters:
-
dataModel- модель для списка - Throws:
-
IllegalArgumentException- если модель являетсяnull
JList
public JList(E[] listData)
Создаёт JList, отображающий элементы в указанном массиве. Этот конструктор создаёт доступную только для чтения модель для данного массива, а затем делегирует конструктору, принимающему ListModel.
Попытка передать null значение в этот метод приводит к неопределённому поведению и, скорее всего, к исключениям. Созданная модель ссылается на заданный массив непосредственно. Попытка изменить массив после построения списка приводит к неопределённому поведению.
- Parameters:
-
listData- массив объектов для загрузки в модель данных,non-null
JList
public JList(Vector<? extends E> listData)
Создаёт JList, отображающий элементы в указанном Vector. Этот конструктор создаёт доступную только для чтения модель для данного Vector, а затем делегирует конструктору, принимающему ListModel.
Попытка передать null значение в этот метод приводит к неопределённому поведению и, скорее всего, к исключениям. Созданная модель ссылается на заданный Vector непосредственно. Попытка изменить Vector после построения списка приводит к неопределённому поведению.
- Parameters:
-
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(javax.swing.JComponent)
updateUI
public void updateUI()
Сбрасывает свойство ListUI, установив его значение, предоставляемое текущим визуальным оформлением. Если текущий обработчик ячейки был установлен разработчиком (а не самим визуальным оформлением), это также приводит к обновлению обработчика ячейки и его дочерних элементов, вызывая SwingUtilities.updateComponentTreeUI на нём.
- Переопределяет:
-
updateUIв классеJComponent - См. также:
-
UIManager.getUI(javax.swing.JComponent),SwingUtilities.updateComponentTreeUI(java.awt.Component)
getUIClassID
@BeanProperty(bound=false) public String getUIClassID()
Возвращает "ListUI", ключ UIDefaults, используемый для поиска имени класса javax.swing.plaf.ListUI, определяющего визуальное оформление для этого компонента.
- Переопределяет:
-
getUIClassIDв классеJComponent - Возвращает:
- строку "ListUI"
- См. также:
-
JComponent.getUIClassID(),UIDefaults.getUI(javax.swing.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(java.beans.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),setFixedCellWidth(int),Container.addPropertyChangeListener(java.beans.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(java.beans.PropertyChangeListener)
getCellRenderer
public ListCellRenderer<? super E> getCellRenderer()
Возвращает объект, ответственный за рисование элементов списка.
- Возвращает:
- значение свойства
cellRenderer - См. также:
setCellRenderer(javax.swing.ListCellRenderer<? super E>)
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(java.awt.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(java.awt.Color),JComponent.setForeground(java.awt.Color),JComponent.setBackground(java.awt.Color),JComponent.setFont(java.awt.Font),DefaultListCellRenderer
getSelectionBackground
public Color getSelectionBackground()
Возвращает цвет, используемый для рисования фона выделенных элементов. DefaultListCellRenderer использует этот цвет для рисования фона элементов в выделенном состоянии, как и обработчики, установленные большинством реализаций ListUI.
- Возвращает:
- цвет для рисования фона выделенных элементов
- См. также:
-
setSelectionBackground(java.awt.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(java.awt.Color),JComponent.setForeground(java.awt.Color),JComponent.setBackground(java.awt.Color),JComponent.setFont(java.awt.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 layed 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 |
Ячейки выстраиваются горизонтально, переходя на новую строку при необходимости. Если свойство 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(java.awt.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(javax.swing.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_SELECTIONDropMode.ONDropMode.INSERTDropMode.ON_OR_INSERT
TransferHandler, принимающий выгрузку.- Параметры:
-
dropMode- режим выгрузки для использования - Исключения:
-
IllegalArgumentException- если режим выгрузки не поддерживается илиnull - С:
- 1.6
- См. также:
-
getDropMode(),getDropLocation(),JComponent.setTransferHandler(javax.swing.TransferHandler),TransferHandler
getDropMode
public final DropMode getDropMode()
Возвращает режим выгрузки для этого компонента.
- Возвращает:
- режим выгрузки для этого компонента
- С:
- 1.6
- См. также:
setDropMode(javax.swing.DropMode)
getDropLocation
@BeanProperty(bound=false) public final JList.DropLocation getDropLocation()
Возвращает расположение, которое этот компонент должен визуально указывать как расположение выгрузки во время операции перетаскивания над компонентом, или null, если в данный момент не отображается ни одно расположение.
Этот метод не предназначен для запроса расположения выгрузки из TransferHandler, так как расположение выгрузки устанавливается только после того, как TransferHandler's canImport вернул результат и позволил отобразить расположение.
При изменении этого свойства компонент генерирует событие изменения свойства с именем «dropLocation».
По умолчанию, ответственность за прослушивание изменений этого свойства и визуальное указание расположения выгрузки лежит на ListUI списка, который может отображать его непосредственно и/или устанавливать обработчик ячеек для этого.
- Возвращает:
- расположение выгрузки
- С:
- 1.6
- См. также:
-
setDropMode(javax.swing.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- событие для извлечения текста всплывающей подсказки - Возвращает:
- строка, содержащая всплывающую подсказку
- См. также:
-
JComponent.setToolTipText(java.lang.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(javax.swing.ListModel<E>)
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(javax.swing.ListModel<E>)
setListData
public void setListData(Vector<? extends E> listData)
Создаёт читаемую только ListModel из Vector и вызывает setModel с этой моделью.
Попытка передать значение null в этот метод приводит к неопределённому поведению и, скорее всего, к исключениям. Созданная модель ссылается на заданный Vector напрямую. Попытки изменить Vector после вызова этого метода приводят к неопределённому поведению.
- Параметры:
-
listData-Vector, содержащий элементы для отображения в списке - См. также:
setModel(javax.swing.ListModel<E>)
createSelectionModel
protected ListSelectionModel createSelectionModel()
Возвращает экземпляр DefaultListSelectionModel; вызывается во время построения для инициализации свойства модели выбора списка.
- Возвращает:
- экземпляр
DefaultListSelecitonModel, используемый для инициализации свойства модели выбора списка во время построения - См. также:
-
setSelectionModel(javax.swing.ListSelectionModel),DefaultListSelectionModel
getSelectionModel
public ListSelectionModel getSelectionModel()
Возвращает текущую модель выбора. Модель выбора сохраняет состояние выбора в списке. Дополнительные сведения см. в документации класса.
- Возвращает:
ListSelectionModel, которая сохраняет состояния выбора в списке- См. также:
-
setSelectionModel(javax.swing.ListSelectionModel),ListSelectionModel
fireSelectionValueChanged
protected void fireSelectionValueChanged(int firstIndex,
int lastIndex,
boolean isAdjusting) Уведомляет ListSelectionListener, добавленных непосредственно в список, об изменениях, внесённых в модель выбора. JList следит за изменениями, внесёнными в модель выбора, и пересылает уведомления слушателям, добавленным непосредственно в список, вызывая этот метод.
Этот метод создаёт ListSelectionEvent с этим списком в качестве источника и указанными аргументами и отправляет его зарегистрированным ListSelectionListeners.
- Параметры:
-
firstIndex- первый индекс в диапазоне,<= lastIndex -
lastIndex- последний индекс в диапазоне,>= firstIndex -
isAdjusting- указывает, является ли это одним из серии событий, где изменения всё ещё вносятся - См. также:
-
addListSelectionListener(javax.swing.event.ListSelectionListener),removeListSelectionListener(javax.swing.event.ListSelectionListener),ListSelectionEvent,EventListenerList
addListSelectionListener
public void addListSelectionListener(ListSelectionListener listener)
Добавляет слушателя в список для уведомления каждый раз, когда происходит изменение выбора; предпочтительный способ прослушивания изменений состояния выбора. JList следит за изменениями состояния выбора в модели выбора и уведомляет данного слушателя о каждом изменении. Сообщения, отправленные слушателю, имеют свойство source, установленное на этот список.
- Параметры:
-
listener- слушательListSelectionListenerдля добавления - См. также:
-
getSelectionModel(),getListSelectionListeners()
removeListSelectionListener
public void removeListSelectionListener(ListSelectionListener listener)
Удаляет слушателя изменений выбора из списка.
- Параметры:
-
listener- слушательListSelectionListenerдля удаления - См. также:
-
addListSelectionListener(javax.swing.event.ListSelectionListener),getSelectionModel()
getListSelectionListeners
@BeanProperty(bound=false) public ListSelectionListener[] getListSelectionListeners()
Возвращает массив всех ListSelectionListener, добавленных в этот JList с помощью addListSelectionListener.
- Возвращает:
- все
ListSelectionListenerв этом списке или пустой массив, если слушатели не добавлены - С версии:
- 1.4
- См. также:
addListSelectionListener(javax.swing.event.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. Это метод-обёртка, который делегирует вызов методу с таким же именем в модели выбора списка.
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(javax.swing.event.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(javax.swing.event.ListSelectionListener)
setSelectedIndices
public void setSelectedIndices(int[] indices)
Изменяет выбор на множество индексов, заданных в заданном массиве. Индексы, которые больше или равны размеру модели, игнорируются. Это удобный метод, который очищает выбор и затем использует addSelectionInterval в модели выбора для добавления индексов. Обратитесь к документации используемого класса модели выбора для получения подробностей о том, как обрабатываются значения, меньшие чем 0.
- Параметры:
-
indices- массив индексов ячеек для выбора,non-null - Исключения:
-
NullPointerException- если заданный массив являетсяnull - См. также:
-
ListSelectionModel.addSelectionInterval(int, int),isSelectedIndex(int),addListSelectionListener(javax.swing.event.ListSelectionListener)
getSelectedValues
@Deprecated @BeanProperty(bound=false) public Object[] getSelectedValues()
getSelectedValuesList()
Возвращает массив всех выбранных значений в порядке возрастания, основываясь на их индексах в списке.
- Возвращает:
- выбранные значения или пустой массив, если ничего не выбрано
- См. также:
-
isSelectedIndex(int),getModel(),addListSelectionListener(javax.swing.event.ListSelectionListener)
getSelectedValuesList
@BeanProperty(bound=false) public List<E> getSelectedValuesList()
Возвращает список всех выбранных элементов в порядке возрастания, основываясь на их индексах в списке.
- Возвращает:
- выбранные элементы или пустой список, если ничего не выбрано
- С:
- 1.7
- См. также:
-
isSelectedIndex(int),getModel(),addListSelectionListener(javax.swing.event.ListSelectionListener)
getSelectedIndex
public int getSelectedIndex()
Возвращает наименьший индекс выбранной ячейки; выбор при выборе только одного элемента в списке. При выборе нескольких элементов — это просто наименьший выбранный индекс. Возвращает -1, если ничего не выбрано.
Этот метод является обработкой, делегирующей вызов getMinSelectionIndex.
- Возвращает:
- наименьший индекс выбранной ячейки
- См. также:
-
getMinSelectionIndex(),addListSelectionListener(javax.swing.event.ListSelectionListener)
getSelectedValue
@BeanProperty(bound=false) public E getSelectedValue()
Возвращает значение для наименьшего индекса выбранной ячейки; выбранное значение при выборе только одного элемента в списке. При выборе нескольких элементов — это просто значение для наименьшего выбранного индекса. Возвращает null, если ничего не выбрано.
Это метод удобства, который просто возвращает значение модели для getMinSelectionIndex.
- Возвращает:
- первое выбранное значение
- См. также:
-
getMinSelectionIndex(),getModel(),addListSelectionListener(javax.swing.event.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(java.awt.Rectangle, int, int),Scrollable.getScrollableUnitIncrement(java.awt.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(java.awt.Rectangle, int, int),Scrollable.getScrollableBlockIncrement(java.awt.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()
Возвращает строковое представление этого JList. Этот метод предназначен только для отладки, и содержание и формат возвращаемой строки могут отличаться между реализациями. Возвращаемая строка может быть пустой, но не может быть null.
- Переопределяет:
-
paramStringв классеJComponent - Возвращает:
- строковое представление этого
JList.
getAccessibleContext
@BeanProperty(bound=false) public AccessibleContext getAccessibleContext()
Получает связанный с этим JList контекст доступности. Для JList контекст доступности имеет вид AccessibleJList.
Новый экземпляр AccessibleJList создаётся при необходимости.
- Определяется:
-
getAccessibleContextв интерфейсеAccessible - Переопределяет:
-
getAccessibleContextв классеComponent - Возвращает:
- контекст доступности, который является контекстом доступности этого
JList
© 1993, 2020, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/11/docs/api/java.desktop/javax/swing/JList.html