Spec-Zone.ru › OpenJDK 21

Класс 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 в момент установки UI и при каждом изменении свойства JList.selectionModel.
class  BasicListUI.MouseInputHandler
Обработка ввода мыши и фокуса для JList.
class  BasicListUI.PropertyChangeHandler
PropertyChangeListener, добавляемый к JList в момент установки UI.

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

Модификатор и тип Поле Описание
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.

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

Modifier and Type Method Description
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 моделью выбора по мере необходимости.
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)
Возвращает начало указанного элемента в заданной системе координат, в системе координат списка.
protected void installDefaults()
Инициализирует свойства списка, такие как шрифт, цвет текста и фон, а также добавляет CellRendererPane.
protected void installKeyboardActions()
Регистрирует привязки клавиатуры к JList, с которым связан BasicListUI.
protected void installListeners()
Создаёт и устанавливает слушатели для JList, его модели и модели выбора.
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, его модели и модели выбора.
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)
Отрисовка одной ячейки списка: вычисление соответствующего состояния, получение компонента-рендерера ячейки и его отрисовка с помощью CellRendererPane. Подклассы могут переопределить этот метод вместо 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 - компонент, который отрисовывается; этот аргумент часто игнорируется, но может использоваться, если объект UI является бессостоятельным и используется несколькими компонентами
См. также:
  • 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 Если количество видимых строк больше нуля, preferredHeight — это максимальная высота ячейки * видимое количество строк. Если количество видимых строк меньше или равно 0, предпочтительная высота — это либо текущая высота списка, либо максимальная высота ячейки, whichever is bigger. Предпочтительная ширина — это максимальная ширина ячейки * количество необходимых столбцов. Количество необходимых столбцов — это list.height / максимальная высота ячейки. Максимальная высота ячейки — это либо фиксированная высота ячейки, либо определяется путем итерации по всем ячейкам для поиска максимальной высоты с помощью ListCellRenderer.
JList.HORIZONTAL_WRAP Если количество видимых строк больше нуля, preferredHeight — это максимальная высота ячейки * скорректированное количество строк. Где видимое количество строк используется для определения количества столбцов. Поскольку это компоновка по горизонтали, количество строк затем определяется из количества столбцов. Например, предположим, что у вас есть модель с 10 элементами, а видимое количество строк — 8. Количество необходимых столбцов для отображения — 2, но вам больше не нужны 8 строк для отображения, вам нужны только 5, следовательно, скорректированное количество строк — 5.

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

Выше указаны исходная предпочтительная ширина и высота. Результирующая предпочтительная ширина — это вышеуказанная ширина + insets.left + insets.right, а результирующая предпочтительная высота — это вышеуказанная высота + insets.top + insets.bottom. Где Insets определяются из list.getInsets().
Overrides:
getPreferredSize в классе ComponentUI
Parameters:
c - Компонент JList.
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, его модели и модели выделения. Этот метод вызывается во время installUI().
See Also:
  • installUI(javax.swing.JComponent)
  • uninstallListeners()

uninstallListeners

protected void uninstallListeners()
Удаляет обработчики событий из JList, его модели и модели выделения. Все поля обработчиков событий здесь сбрасываются в 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()
Устанавливает свойства списка, которые не были явно переопределены, в null. Свойство считается переопределённым, если его текущее значение не является UIResource.
See Also:
  • installDefaults()
  • uninstallUI(javax.swing.JComponent)
  • CellRendererPane

installUI

public void installUI(JComponent c)
Инициализирует this.list, вызвав installDefaults(), installListeners(), и installKeyboardActions() в указанном порядке.
Overrides:
installUI в классе ComponentUI
Parameters:
c - компонент, в котором устанавливается этот делегат пользовательского интерфейса
See Also:
  • installDefaults()
  • installListeners()
  • installKeyboardActions()

uninstallUI

public void uninstallUI(JComponent c)
Деинициализирует this.list, вызвав uninstallListeners(), uninstallKeyboardActions(), и uninstallDefaults() в указанном порядке. Устанавливает this.list в null.
Overrides:
uninstallUI в классе ComponentUI
Parameters:
c - компонент, из которого удаляется этот делегат пользовательского интерфейса; этот аргумент часто игнорируется, но может использоваться, если объект пользовательского интерфейса является бессостоятельным и используется несколькими компонентами
See Also:
  • uninstallListeners()
  • uninstallKeyboardActions()
  • uninstallDefaults()

createUI

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

locationToIndex

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

indexToLocation

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

getCellBounds

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

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

Specified by:
getCellBounds в классе 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 моделью selectionModel по мере необходимости. Подклассы могут переопределить этот метод, чтобы вернуть настраиваемого 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, 2023, 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/21/docs/api/java.desktop/javax/swing/plaf/basic/BasicListUI.html

Spec-Zone.ru

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