Spec-Zone.ru › OpenJDK 17

Класс BasicListUI

java.lang.Object
javax.swing.plaf.ComponentUI
javax.swing.plaf.ListUI
javax.swing.plaf.basic.BasicListUI
Прямые известные подклассы:
SynthListUI
public class BasicListUI extends ListUI
Расширяемая реализация ListUI.

Экземпляры BasicListUI не могут быть совместно использованы между несколькими списками.

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

Модификатор и тип Класс Описание
class  BasicListUI.FocusHandler
Этот класс следует рассматривать как "защищённый" внутренний класс.
class  BasicListUI.ListDataHandler
Слушатель ListDataListener, добавляемый к модели JLists во время installUI time, и при каждом изменении свойства JList.model.
class  BasicListUI.ListSelectionHandler
Слушатель ListSelectionListener, добавляемый к модели выбора JList в момент установки интерфейса и при каждом изменении свойства JList.selectionModel.
class  BasicListUI.MouseInputHandler
Обработка событий мыши и фокуса для JList.
class  BasicListUI.PropertyChangeHandler
Слушатель PropertyChangeListener, добавляемый к JList при установке интерфейса.

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

Модификатор и тип Поле Описание
protected int cellHeight
Высота ячейки.
protected int[] cellHeights
Массив высот ячеек.
protected static final int cellRendererChanged
Флаг, связанный с изменением свойства рендера ячейки.
protected int cellWidth
Ширина ячейки.
protected static final int fixedCellHeightChanged
Флаг, связанный с изменением свойства фиксированной высоты ячейки.
protected static final int fixedCellWidthChanged
Флаг, связанный с изменением свойства фиксированной ширины ячейки.
protected FocusListener focusListener
FocusListener прикреплённый к JList.
protected static final int fontChanged
Флаг, связанный с изменением свойства шрифта.
protected JList<Object> list
Экземпляр JList.
protected ListDataListener listDataListener
ListDataListener прикреплённый к JList.
protected ListSelectionListener listSelectionListener
ListSelectionListener прикреплённый к JList.
protected static final int modelChanged
Флаг, связанный с изменением свойства модели.
protected MouseInputListener mouseInputListener
MouseInputListener прикреплённый к JList.
protected PropertyChangeListener propertyChangeListener
PropertyChangeListener прикреплённый к JList.
protected static final int prototypeCellValueChanged
Флаг, связанный с изменением свойства значения ячейки прототипа.
protected CellRendererPane rendererPane
Экземпляр CellRendererPane.
protected static final int selectionModelChanged
Флаг, связанный с изменением свойства модели выбора.
protected int updateLayoutStateNeeded
Значение, отражающее изменения в модели JList.

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

Конструктор Описание
BasicListUI()
Создаёт BasicListUI.

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

Модификатор и тип Метод Описание
protected int convertRowToY(int row)
Возвращает относительную координату Y начала указанной строки или -1, если строка недействительна.
protected int convertYToRow(int y0)
Преобразует относительную координату к строке, которая ее содержит, на основе текущего макета.
protected FocusListener createFocusListener()
Возвращает экземпляр FocusListener.
protected ListDataListener createListDataListener()
Создает экземпляр ListDataListener, который добавляется к JLists моделью по мере необходимости.
protected ListSelectionListener createListSelectionListener()
Создает экземпляр ListSelectionHandler, который добавляется к JLists объектом selectionModel по мере необходимости.
protected MouseInputListener createMouseInputListener()
Создает делегат, который реализует MouseInputListener.
protected PropertyChangeListener createPropertyChangeListener()
Создает экземпляр PropertyChangeHandler, который добавляется к JList объектом installUI() по мере необходимости.
static ComponentUI createUI(JComponent list)
Возвращает новый экземпляр BasicListUI.
int getBaseline(JComponent c, int width, int height)
Возвращает линию базовой строки.
Component.BaselineResizeBehavior getBaselineResizeBehavior(JComponent c)
Возвращает перечисление, указывающее, как базовая строка компонента изменяется при изменении размера.
Rectangle getCellBounds(JList<?> list, int index1, int index2)
Возвращает прямоугольник ограничительной рамки, в системе координат данного списка, для диапазона ячеек, определенного двумя индексами.
Dimension getPreferredSize(JComponent c)
Предпочтительный размер списка зависит от ориентации макета.
protected int getRowHeight(int row)
Возвращает высоту указанной строки на основе текущего макета.
Point indexToLocation(JList<?> list, int index)
Возвращает начало указанного элемента в данной JList, в системе координат списка.
protected void installDefaults()
Инициализирует свойства списка, такие как шрифт, цвет переднего плана и заднего фона, и добавляет CellRendererPane.
protected void installKeyboardActions()
Регистрирует привязки клавиатуры к JList, с которым связан BasicListUI.
protected void installListeners()
Создаёт и устанавливает слушателей для JList, его модели и его selectionModel.
void installUI(JComponent c)
Инициализирует this.list, вызывая installDefaults(), installListeners(), и installKeyboardActions() в указанном порядке.
int locationToIndex(JList<?> list, Point location)
Возвращает индекс ячейки в указанном JList, наиболее близкий к заданному положению в системе координат списка.
protected void maybeUpdateLayoutState()
Если updateLayoutStateNeeded не равно нулю, вызовите updateLayoutState() и сбросьте updateLayoutStateNeeded.
void paint(Graphics g, JComponent c)
Отображает строки, пересекающие область обрезки объекта Graphics.
protected void paintCell(Graphics g, int row, Rectangle rowBounds, ListCellRenderer<Object> cellRenderer, ListModel<Object> dataModel, ListSelectionModel selModel, int leadIndex)
Отображает одну ячейку списка: вычисляет соответствующее состояние, получает компонент-рендерер ячейки «штамп» и затем использует CellRendererPane для его отображения.
protected void selectNextIndex()
Выделяет предыдущую строку и принудительно делает её видимой.
protected void selectPreviousIndex()
Выделяет предыдущую строку и принудительно делает её видимой.
protected void uninstallDefaults()
Устанавливает свойства списка, которые не были явно переопределены, в null.
protected void uninstallKeyboardActions()
Отменяет регистрацию действий клавиатуры, установленных из installKeyboardActions.
protected void uninstallListeners()
Удаляет слушателей из JList, его модели и его selectionModel.
void uninstallUI(JComponent c)
Деинициализирует this.list вызовом uninstallListeners(), uninstallKeyboardActions(), и uninstallDefaults() в указанном порядке.
protected void updateLayoutState()
Пересчитывает значение cellHeight или cellHeights на основе cellWidth, текущего шрифта и текущих значений fixedCellWidth, fixedCellHeight и prototypeCellValue.

Методы, объявленные в классе javax.swing.plaf.ComponentUI

contains, getAccessibleChild, getAccessibleChildrenCount, getMaximumSize, getMinimumSize, update

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

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

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

list

protected JList<Object> list
Экземпляр JList.

rendererPane

protected CellRendererPane rendererPane
Экземпляр CellRendererPane.

focusListener

protected FocusListener focusListener
FocusListener , прикреплённый к JList.

mouseInputListener

protected MouseInputListener mouseInputListener
MouseInputListener , прикреплённый к JList.

listSelectionListener

protected ListSelectionListener listSelectionListener
ListSelectionListener , прикреплённый к JList.

listDataListener

protected ListDataListener listDataListener
ListDataListener , прикреплённый к JList.

propertyChangeListener

protected PropertyChangeListener propertyChangeListener
PropertyChangeListener , прикреплённый к JList.

cellHeights

protected int[] cellHeights
Массив высот ячеек

cellHeight

protected int cellHeight
Высота ячейки.

cellWidth

protected int cellWidth
Ширина ячейки.

updateLayoutStateNeeded

protected int updateLayoutStateNeeded
Значение, обозначающее изменения в модели JList.

modelChanged

protected static final int modelChanged
Флаг, связанный с изменением модели.
См. также:
  • Значения константных полей

selectionModelChanged

protected static final int selectionModelChanged
Флаг, связанный с изменением модели выделения.
См. также:
  • Значения константных полей

fontChanged

protected static final int fontChanged
Флаг, связанный с изменением шрифта.
См. также:
  • Значения константных полей

fixedCellWidthChanged

protected static final int fixedCellWidthChanged
Флаг, связанный с изменением фиксированной ширины ячейки.
См. также:
  • Значения константных полей

fixedCellHeightChanged

protected static final int fixedCellHeightChanged
Флаг, связанный с изменением фиксированной высоты ячейки.
См. также:
  • Значения константных полей

prototypeCellValueChanged

protected static final int prototypeCellValueChanged
Флаг, связанный с изменением значения ячейки-прототипа.
См. также:
  • Значения константных полей

cellRendererChanged

protected static final int cellRendererChanged
Флаг, связанный с изменением рендерера ячеек.
См. также:
  • Значения константных полей

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

BasicListUI

public BasicListUI()
Создаёт BasicListUI.

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

paintCell

protected void paintCell(Graphics g, int row, Rectangle rowBounds, ListCellRenderer<Object> cellRenderer, ListModel<Object> dataModel, ListSelectionModel selModel, int leadIndex)
Отрисовка одной ячейки списка: вычисление соответствующего состояния, получение компонента-рендерера ячейки, и использование его для отрисовки. Подклассы могут переопределить этот метод вместо paint().
Параметры:
g - экземпляр Graphics
row - номер строки
rowBounds - прямоугольник для отрисовки
cellRenderer - рендерер ячейки
dataModel - модель списка
selModel - модель выделения
leadIndex - индекс ведущей строки
См. также:
  • paint(java.awt.Graphics, javax.swing.JComponent)

paint

public void paint(Graphics g, JComponent c)
Отрисовка строк, пересекающих область отрисовки графического контекста. Этот метод вызывает paintCell по необходимости. Подклассы могут переопределить эти методы.
Переопределяет:
paint в классе ComponentUI
Параметры:
g - контекст отрисовки
c - компонент, который отрисовывается
См. также:
  • paintCell(java.awt.Graphics, int, java.awt.Rectangle, javax.swing.ListCellRenderer<java.lang.Object>, javax.swing.ListModel<java.lang.Object>, javax.swing.ListSelectionModel, int)

getBaseline

public int getBaseline(JComponent c, int width, int height)
Возвращает значение базовой линии.
Переопределяет:
getBaseline в классе ComponentUI
Параметры:
c - компонент, для которого запрашивается базовая линия
width - высота для получения базовой линии
Возвращает:
значение базовой линии или значение < 0, если базовая линия не может быть определена
Исключение:
NullPointerException - если c - null
IllegalArgumentException - если ширина или высота < 0
См. также:
  • JComponent.getBaseline(int, int)

getBaselineResizeBehavior

public Component.BaselineResizeBehavior getBaselineResizeBehavior(JComponent c)
Возвращает перечисление, указывающее, как изменяется базовая линия компонента при изменении размера.
Переопределяет:
getBaselineResizeBehavior в классе ComponentUI
Параметры:
c - компонент, для которого запрашивается поведение изменения базовой линии
Возвращает:
перечисление, указывающее, как изменяется базовая линия при изменении размера компонента
Исключение:
NullPointerException - если c - null
См. также:
  • JComponent.getBaseline(int, int)

getPreferredSize

public Dimension getPreferredSize(JComponent c)
Предпочтительный размер списка зависит от ориентации макета.
Описание предпочтительного размера для каждой ориентации макета
Ориентация макета Предпочтительный размер
JList.VERTICAL Предпочтительный размер списка — это общая высота строк и максимальная ширина ячеек. Если задан JList.fixedCellHeight, то общая высота строк — это просто (cellVerticalMargins + fixedCellHeight) * model.getSize(), где rowVerticalMargins — это пространство, которое мы выделяем для рисования жёлтой рамки фокуса. Аналогично, если задан fixedCellWidth, мы просто используем его.
JList.VERTICAL_WRAP Если количество видимых строк больше нуля, предпочтительная высота равна максимальной высоте ячейки * количество видимых строк. Если количество видимых строк меньше или равно 0, предпочтительная высота равна либо текущей высоте списка, либо максимальной высоте ячейки, в зависимости от того, какая больше. Предпочтительная ширина — это максимальная ширина ячейки * количество необходимых столбцов. Где количество необходимых столбцов — это list.height / максимальная высота ячейки. Максимальная высота ячейки — это либо фиксированная высота ячейки, либо определяется итерацией по всем ячейкам для поиска максимальной высоты от ListCellRenderer.
JList.HORIZONTAL_WRAP Если количество видимых строк больше нуля, предпочтительная высота равна максимальной высоте ячейки * изменённому количеству строк. Где visibleRowCount используется для определения количества столбцов. Поскольку это выстраивание по горизонтали, количество строк затем определяется по количеству столбцов. Например, предположим, что у вас есть модель с 10 элементами, а видимое количество строк равно 8. Количество необходимых столбцов для отображения этого — 2, но вам больше не нужны 8 строк для отображения этого, вам нужны только 5, следовательно, изменённое количество строк (adjustedRowCount) равно 5.

Если количество видимых строк меньше или равно 0, предпочтительная высота определяется количеством столбцов, которое будет равно количеству столбцов, которые могут поместиться в ширине JList (ширина / максимальная ширина ячейки), по крайней мере, один столбец. Предпочтительная высота затем становится размером модели / количество столбцов * максимальная высота ячейки. Максимальная высота ячейки — это либо фиксированная высота ячейки, либо определяется итерацией по всем ячейкам для поиска максимальной высоты от ListCellRenderer.

Выше указаны исходная предпочтительная ширина и высота. Результирующая предпочтительная ширина — это указанная выше ширина + insets.left + insets.right, а результирующая предпочтительная высота — это указанная выше высота + insets.top + insets.bottom. Где Insets определяются из list.getInsets().
Overrides:
getPreferredSize in class ComponentUI
Parameters:
c - The JList component.
Returns:
Общий размер списка.
See Also:
  • JComponent.getPreferredSize()
  • LayoutManager.preferredLayoutSize(java.awt.Container)

selectPreviousIndex

protected void selectPreviousIndex()
Выбирает предыдущую строку и заставляет её быть видимой.
See Also:
  • JList.ensureIndexIsVisible(int)

selectNextIndex

protected void selectNextIndex()
Выбирает предыдущую строку и заставляет её быть видимой.
See Also:
  • JList.ensureIndexIsVisible(int)

installKeyboardActions

protected void installKeyboardActions()
Регистрирует привязки клавиатуры к JList, с которым связан BasicListUI. Этот метод вызывается во время installUI().
See Also:
  • installUI(javax.swing.JComponent)

uninstallKeyboardActions

protected void uninstallKeyboardActions()
Отменяет регистрацию действий клавиатуры, установленных из installKeyboardActions. Этот метод вызывается во время uninstallUI() — подклассы должны убедиться, что все действия клавиатуры, зарегистрированные в installUI, удалены здесь.
See Also:
  • installUI(javax.swing.JComponent)

installListeners

protected void installListeners()
Создаёт и устанавливает слушатели для JList, его модели и его selectionModel. Этот метод вызывается во время installUI().
See Also:
  • installUI(javax.swing.JComponent)
  • uninstallListeners()

uninstallListeners

protected void uninstallListeners()
Удаляет слушателей из JList, его модели и его selectionModel. Все поля слушателей сбрасываются в null. Этот метод вызывается во время uninstallUI(), он должен быть синхронизирован с installListeners.
See Also:
  • uninstallUI(javax.swing.JComponent)
  • installListeners()

installDefaults

protected void installDefaults()
Инициализирует свойства списка, такие как шрифт, передний и задний цвета, и добавляет CellRendererPane. Свойства шрифта, переднего и заднего цветов устанавливаются только в том случае, если их текущее значение равно null или UIResource, другие свойства устанавливаются, если текущее значение равно null.
See Also:
  • uninstallDefaults()
  • installUI(javax.swing.JComponent)
  • CellRendererPane

uninstallDefaults

protected void uninstallDefaults()
Устанавливает свойства списка, которые не были явно переопределены, в значения по умолчанию. Свойство считается переопределённым, если его текущее значение не является UIResource.
See Also:
  • installDefaults()
  • uninstallUI(javax.swing.JComponent)
  • CellRendererPane

installUI

public void installUI(JComponent c)
Инициализирует this.list, вызвав installDefaults(), installListeners(), и installKeyboardActions() в порядке.
Overrides:
installUI in class ComponentUI
Parameters:
c - the component where this UI delegate is being installed
See Also:
  • installDefaults()
  • installListeners()
  • installKeyboardActions()

uninstallUI

public void uninstallUI(JComponent c)
Деинициализирует this.list, вызвав uninstallListeners(), uninstallKeyboardActions(), и uninstallDefaults() в порядке. Устанавливает this.list в null.
Overrides:
uninstallUI in class ComponentUI
Parameters:
c - the component from which this UI delegate is being removed; this argument is often ignored, but might be used if the UI object is stateless and shared by multiple components
See Also:
  • uninstallListeners()
  • uninstallKeyboardActions()
  • uninstallDefaults()

createUI

public static ComponentUI createUI(JComponent list)
Возвращает новый экземпляр BasicListUI. Делегирования BasicListUI выделяются по одному на каждый JList.
Parameters:
list - a component
Returns:
a new ListUI implementation for the Windows look and feel.

locationToIndex

public int locationToIndex(JList<?> list, Point location)
Возвращает индекс ячейки в указанном JList , ближайшей к заданной позиции в системе координат списка. Чтобы определить, действительно ли ячейка содержит указанную позицию, сравните точку с границами ячейки, предоставленными getCellBounds. Этот метод возвращает -1 , если модель списка пуста.
Specified by:
locationToIndex in class ListUI
Parameters:
list - the list
location - the coordinates of the point
Returns:
индекс ячейки, ближайшей к заданной позиции, или -1
Throws:
NullPointerException - if location is null

indexToLocation

public Point indexToLocation(JList<?> list, int index)
Возвращает начало в заданном JList, указанного элемента в системе координат списка. Возвращает null , если индекс недействителен.
Specified by:
indexToLocation in class ListUI
Parameters:
list - the list
index - the cell index
Returns:
начало ячейки, или null

getCellBounds

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

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

Specified by:
getCellBounds in class ListUI
Parameters:
list - список
index1 - первый индекс в диапазоне
index2 - второй индекс в диапазоне
Returns:
прямоугольник границ диапазона ячеек, или null

getRowHeight

protected int getRowHeight(int row)
Возвращает высоту указанной строки на основе текущего макета.
Parameters:
row - строка
Returns:
высота указанной строки или -1, если строка некорректна
See Also:
  • convertYToRow(int)
  • convertRowToY(int)
  • updateLayoutState()

convertYToRow

protected int convertYToRow(int y0)
Преобразует относительную координату JList в строку, содержащую её, на основе текущего макета. Если y0 не попадает ни в одну строку, возвращается -1.
Parameters:
y0 - относительная координата Y
Returns:
строка, содержащая y0, или -1
See Also:
  • getRowHeight(int)
  • updateLayoutState()

convertRowToY

protected int convertRowToY(int row)
Возвращает относительную координату Y начала указанной строки, или -1, если строка некорректна.
Parameters:
row - строка
Returns:
координата Y начала строки, или -1
See Also:
  • getRowHeight(int)
  • updateLayoutState()

maybeUpdateLayoutState

protected void maybeUpdateLayoutState()
Если updateLayoutStateNeeded не равно нулю, вызовите updateLayoutState() и сбросьте updateLayoutStateNeeded. Этот метод должен вызываться методами перед любыми вычислениями, основанными на геометрии списка. Например, это первый вызов в paint() и getPreferredSize().
See Also:
  • updateLayoutState()

updateLayoutState

protected void updateLayoutState()
Пересчитывает значение cellHeight или cellHeights, основанные на текущем шрифте и значениях fixedCellWidth, fixedCellHeight и prototypeCellValue.
See Also:
  • maybeUpdateLayoutState()

createMouseInputListener

protected MouseInputListener createMouseInputListener()
Создаёт делегата, реализующего MouseInputListener. Делегат добавляется в соответствующие списки слушателей java.awt.Component в момент installUI(). Подклассы могут переопределять этот метод, чтобы возвращать настраиваемого MouseInputListener, например,
 class MyListUI extends BasicListUI {
    protected MouseInputListener createMouseInputListener() {
        return new MyMouseInputHandler();
    }
    public class MyMouseInputHandler extends MouseInputHandler {
        public void mouseMoved(MouseEvent e) {
            // do some extra work when the mouse moves
            super.mouseMoved(e);
        }
    }
 }
 
Returns:
экземпляр MouseInputListener
See Also:
  • BasicListUI.MouseInputHandler
  • installUI(javax.swing.JComponent)

createFocusListener

protected FocusListener createFocusListener()
Возвращает экземпляр FocusListener.
Returns:
экземпляр FocusListener

createListSelectionListener

protected ListSelectionListener createListSelectionListener()
Создаёт экземпляр ListSelectionHandler, который добавляется к JLists выбором модели по мере необходимости. Подклассы могут переопределять этот метод, чтобы возвращать настраиваемого ListSelectionListener, например,
 class MyListUI extends BasicListUI {
    protected ListSelectionListener createListSelectionListener() {
        return new MySelectionListener();
    }
    public class MySelectionListener extends ListSelectionHandler {
        public void valueChanged(ListSelectionEvent e) {
            // do some extra work when the selection changes
            super.valueChange(e);
        }
    }
 }
 
Returns:
экземпляр ListSelectionHandler
See Also:
  • BasicListUI.ListSelectionHandler
  • installUI(javax.swing.JComponent)

createListDataListener

protected ListDataListener createListDataListener()
Создаёт экземпляр ListDataListener, который добавляется к JLists моделью по мере необходимости. Подклассы могут переопределять этот метод, чтобы возвращать настраиваемого ListDataListener, например,
 class MyListUI extends BasicListUI {
    protected ListDataListener createListDataListener() {
        return new MyListDataListener();
    }
    public class MyListDataListener extends ListDataHandler {
        public void contentsChanged(ListDataEvent e) {
            // do some extra work when the models contents change
            super.contentsChange(e);
        }
    }
 }
 
Returns:
экземпляр ListDataListener
See Also:
  • ListDataListener
  • JList.getModel()
  • installUI(javax.swing.JComponent)

createPropertyChangeListener

protected PropertyChangeListener createPropertyChangeListener()
Создаёт экземпляр PropertyChangeHandler, который добавляется к JList installUI(). Подклассы могут переопределять этот метод, чтобы возвращать настраиваемого PropertyChangeListener, например,
 class MyListUI extends BasicListUI {
    protected PropertyChangeListener createPropertyChangeListener() {
        return new MyPropertyChangeListener();
    }
    public class MyPropertyChangeListener extends PropertyChangeHandler {
        public void propertyChange(PropertyChangeEvent e) {
            if (e.getPropertyName().equals("model")) {
                // do some extra work when the model changes
            }
            super.propertyChange(e);
        }
    }
 }
 
Returns:
экземпляр PropertyChangeHandler
See Also:
  • PropertyChangeListener
  • installUI(javax.swing.JComponent)

© 1993, 2021, 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/17/docs/api/java.desktop/javax/swing/plaf/basic/BasicListUI.html

Spec-Zone.ru

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