Класс 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
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. Рендерер предоставляет компонент, который используется как «штамп» для отрисовки ячеек. Каждый раз, когда требуется отрисовать ячейку, ListUI списка запрашивает у рендерера ячейки компонент, помещает его в нужное место и заставляет его отрисовать содержимое ячейки с помощью метода paint. По умолчанию, рендер ячеек, использующий компонент JLabel для отрисовки, устанавливается ListUI списка. Вы можете заменить его своим рендерером, например:
// Display an icon and a string for each object in the list.
class MyCellRenderer extends JLabel implements ListCellRenderer<Object> {
final static ImageIcon longIcon = new ImageIcon("long.gif");
final static 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 не реализует прокрутку напрямую. Чтобы создать прокручиваемый список, сделайте его viewport-вьюпортом 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 для получения дополнительной документации.
- См. также:
-
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(ListModel<E> dataModel) Создает |
JList(Vector<? extends E> listData) Создает |
Методы
| Модификатор и тип | Метод и описание |
|---|---|
void |
addListSelectionListener(ListSelectionListener listener) Добавляет слушатель в список, чтобы уведомлять о каждом изменении выбора; предпочтительный способ прослушивания изменений состояния выбора. |
void |
addSelectionInterval(int anchor,
int lead) Устанавливает выбор как объединение указанного интервала с текущим выбором. |
void |
clearSelection() Очищает выбор; после вызова этого метода, |
protected ListSelectionModel |
createSelectionModel() Возвращает экземпляр |
void |
ensureIndexIsVisible(int index) Прокручивает список внутри содержащего его viewport, чтобы сделать указанную ячейку полностью видимой. |
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() Вычисляет размер viewport, необходимый для отображения |
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, заменено на |
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 inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, 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 Methods inherited from 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 inherited from 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, 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, getPeer, 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, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait Поля
VERTICAL
public static final int VERTICAL
Указывает вертикальную компоновку ячеек в одном столбце; компоновка по умолчанию.
- С версии:
- 1.4
- См. также:
-
setLayoutOrientation(int), Constant Field Values
VERTICAL_WRAP
public static final int VERTICAL_WRAP
Указывает компоновку в стиле «газеты», где ячейки располагаются вертикально, а затем горизонтально.
- С версии:
- 1.4
- См. также:
-
setLayoutOrientation(int), Constant Field Values
HORIZONTAL_WRAP
public static final int HORIZONTAL_WRAP
Указывает компоновку в стиле «газеты», где ячейки располагаются горизонтально, а затем вертикально.
- С версии:
- 1.4
- См. также:
-
setLayoutOrientation(int), Constant Field Values
Конструкторы
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, объект внешнего вида, который отображает этот компонент.
- Возвращает:
- объект
ListUI, который отображает этот компонент
setUI
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
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
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
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
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
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
public void setSelectionForeground(Color selectionForeground)
Устанавливает цвет, используемый для рисования переднего плана выделенных элементов, который рендереры ячеек могут использовать для отображения текста и графики. DefaultListCellRenderer использует этот цвет для рисования переднего плана элементов в выделенном состоянии, как и рендереры, установленные в большинстве реализаций ListUI.
Значение по умолчанию этого свойства определяется реализацией внешнего вида.
Это свойство, связанное с JavaBeans.
- Параметры:
-
selectionForeground- цвет, который будет использоваться для переднего плана выделенных элементов списка - См. также:
-
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
public void setSelectionBackground(Color selectionBackground)
Устанавливает цвет, используемый для рисования фона выделенных элементов, который рендереры ячеек могут использовать для заполнения выделенных ячеек. DefaultListCellRenderer использует этот цвет для заполнения фона элементов в выделенном состоянии, как и рендереры, установленные в большинстве реализаций ListUI.
Значение по умолчанию этого свойства определяется реализацией внешнего вида.
Это свойство, связанное с JavaBeans.
- Параметры:
-
selectionBackground- цвет, который будет использоваться для фона выделенных ячеек - См. также:
-
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
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
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
public int getFirstVisibleIndex()
Возвращает наименьший индекс списка, который в данный момент виден. В componentOrientation слева направо первая видимая ячейка находится ближе к верхнему левому углу списка. В ориентации справа налево она находится ближе к верхнему правому углу. Если ничего не видно или список пуст, возвращается -1. Обратите внимание, что возвращаемая ячейка может быть только частично видимой.
- Возвращает:
- индекс первой видимой ячейки
- См. также:
-
getLastVisibleIndex(),JComponent.getVisibleRect()
getLastVisibleIndex
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
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
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—MouseEventдля получения текста всплывающей подсказки - См. также:
-
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
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 следит за изменениями состояния выделения в модели выделения и уведомляет указанного слушателя о каждом изменении. ListSelectionEvent, отправленные слушателю, имеют свойство source, установленное в значение этого списка.
- Параметры:
-
listener- слушательListSelectionListenerдля добавления - См. также:
-
getSelectionModel(),getListSelectionListeners()
removeListSelectionListener
public void removeListSelectionListener(ListSelectionListener listener)
Удаляет слушателя выделения из списка.
- Параметры:
-
listener- слушательListSelectionListenerдля удаления - См. также:
-
addListSelectionListener(javax.swing.event.ListSelectionListener),getSelectionModel()
getListSelectionListeners
public ListSelectionListener[] getListSelectionListeners()
Возвращает массив всех ListSelectionListener, добавленных к этому JList с помощью addListSelectionListener.
- Возвращает:
- все
ListSelectionListenerв этом списке или пустой массив, если слушатели не были добавлены - Since:
- 1.4
- См. также:
addListSelectionListener(javax.swing.event.ListSelectionListener)
setSelectionModel
public void setSelectionModel(ListSelectionModel selectionModel)
Устанавливает selectionModel для списка на реализацию ListSelectionModel, отличную от null. Модель выделения отвечает за выполнение одиночных выделений, выделений непрерывных диапазонов и несмежных выделений.
Это свойство, привязанное к JavaBeans.
- Параметры:
-
selectionModel-ListSelectionModel, реализующая выделение - Исключения:
-
IllegalArgumentException- еслиselectionModelявляетсяnull - См. также:
getSelectionModel()
setSelectionMode
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
public int getAnchorSelectionIndex()
Возвращает индекс анкера выделения. Это метод-обёртка, делегирующий вызов одноимённому методу модели выделения списка.
- Возвращает:
- индекс анкера выделения
- См. также:
ListSelectionModel.getAnchorSelectionIndex()
getLeadSelectionIndex
public int getLeadSelectionIndex()
Возвращает индекс ведущего выделения. Это метод-обёртка, делегирующий вызов одноимённому методу модели выделения списка.
- Возвращает:
- индекс ведущего выделения
- См. также:
ListSelectionModel.getLeadSelectionIndex()
getMinSelectionIndex
public int getMinSelectionIndex()
Возвращает наименьший индекс выделенной ячейки или -1, если выделение пустое. Это метод-обёртка, делегирующий вызов одноимённому методу модели выделения списка.
- Возвращает:
- наименьший индекс выделенной ячейки или
-1 - См. также:
ListSelectionModel.getMinSelectionIndex()
getMaxSelectionIndex
public int getMaxSelectionIndex()
Возвращает наибольший индекс выделенной ячейки или -1, если выделение пустое. Это метод-обёртка, делегирующий вызов одноимённому методу модели выделения списка.
- Возвращает:
- наибольший индекс выделенной ячейки
- См. также:
ListSelectionModel.getMaxSelectionIndex()
isSelectedIndex
public boolean isSelectedIndex(int index)
Возвращает true, если указанный индекс выделен, иначе false. Это метод-обёртка, делегирующий вызов одноимённому методу модели выделения списка.
- Параметры:
-
index- индекс, состояние выделения которого необходимо проверить - Возвращает:
-
true, если указанный индекс выделен, иначеfalse - См. также:
-
ListSelectionModel.isSelectedIndex(int),setSelectedIndex(int)
isSelectionEmpty
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
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 public Object[] getSelectedValues()
Устарело. Начиная с JDK 1.7, заменено на getSelectedValuesList()
Возвращает массив всех выбранных значений в возрастающем порядке, основанном на их индексах в списке.
- Возвращает:
- выбранные значения или пустой массив, если ничего не выбрано
- См. также:
-
isSelectedIndex(int),getModel(),addListSelectionListener(javax.swing.event.ListSelectionListener)
getSelectedValuesList
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
public E getSelectedValue()
Возвращает значение для наименьшего индекса выбранной ячейки; выбранное значение, когда в списке выбран только один элемент. Когда выбрано несколько элементов, это просто значение для наименьшего выбранного индекса. Возвращает null, если ничего не выбрано.
Это удобный метод, который просто возвращает значение модели для getMinSelectionIndex.
- Возвращает:
- первое выбранное значение
- См. также:
-
getMinSelectionIndex(),getModel(),addListSelectionListener(javax.swing.event.ListSelectionListener)
setSelectedValue
public void setSelectedValue(Object anObject,
boolean shouldScroll) Выбирает указанный объект из списка.
- Параметры:
-
anObject- объект для выбора -
shouldScroll-true, если список должен прокрутиться для отображения выбранного объекта, если он есть; в противном случаеfalse
getPreferredScrollableViewportSize
public Dimension getPreferredScrollableViewportSize()
Вычисляет размер области просмотра, необходимый для отображения visibleRowCount строк. Возвращаемое значение зависит от ориентации макета:
VERTICAL:
Это тривиально, если оба fixedCellWidth и fixedCellHeight были установлены (явно или путем задания значения ячейки-прототипа). Ширина просто равна fixedCellWidth плюс горизонтальные отступы списка. Высота — это fixedCellHeight, умноженная на visibleRowCount, плюс вертикальные отступы списка.
Если либо fixedCellWidth, либо fixedCellHeight не указаны, используются эвристики. Если модель пуста, ширина — это fixedCellWidth, если она больше 0, или жёстко заданное значение 256. Высота — это fixedCellHeight, умноженное на visibleRowCount, если fixedCellHeight больше 0, иначе жёстко заданное значение 16, умноженное на visibleRowCount.
Если модель не пуста, ширина — это предпочтительная ширина, обычно ширина самого широкого элемента списка. Высота — это fixedCellHeight, умноженное на 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
public boolean getScrollableTracksViewportWidth()
Возвращает true, если этот JList отображается в JViewport и область просмотра шире, чем предпочтительная ширина списка, или если ориентация макета является HORIZONTAL_WRAP и visibleRowCount <= 0; в противном случае возвращает false.
Если false, то ширина области просмотра не отслеживается. Это позволяет горизонтальную прокрутку, если сам JViewport вложен в JScrollPane.
- Указано в:
-
getScrollableTracksViewportWidthв интерфейсеScrollable - Возвращает:
- указывает, следует ли контейнер-области просмотра принудительно сделать ширину списка равной своей собственной
- См. также:
Scrollable.getScrollableTracksViewportWidth()
getScrollableTracksViewportHeight
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
public AccessibleContext getAccessibleContext()
Получает AccessibleContext, связанный с этим JList. Для JList, AccessibleContext принимает форму AccessibleJList.
Новый экземпляр AccessibleJList создается при необходимости.
- Указано в:
-
getAccessibleContextв интерфейсеAccessible - Переопределяет:
-
getAccessibleContextв классеComponent - Возвращает:
- объект
AccessibleJList, являющийсяAccessibleContextэтого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.