Класс 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 int cellRendererChanged

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

protected int cellWidth

Ширина ячейки.

protected static int fixedCellHeightChanged

Флаг, связанный с изменением фиксированной высоты ячейки.

protected static int fixedCellWidthChanged

Флаг, связанный с изменением фиксированной ширины ячейки.

protected FocusListener focusListener

FocusListener привязанный к JList.

protected static int fontChanged

Флаг, связанный с изменением шрифта.

protected JList<Object> list

Экземпляр JList.

protected ListDataListener listDataListener

ListDataListener привязанный к JList.

protected ListSelectionListener listSelectionListener

ListSelectionListener привязанный к JList.

protected static int modelChanged

Флаг, связанный с изменением модели.

protected MouseInputListener mouseInputListener

MouseInputListener привязанный к JList.

protected PropertyChangeListener propertyChangeListener

PropertyChangeListener привязанный к JList.

protected static int prototypeCellValueChanged

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

protected CellRendererPane rendererPane

Экземпляр CellRendererPane.

protected static int selectionModelChanged

Флаг, связанный с изменением модели выбора.

protected int updateLayoutStateNeeded

Значение, отражающее изменения в модели JList.

Конструкторы

Конструктор Описание
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 по мере необходимости.

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)

Возвращает перечисление, указывающее, как базовая линия компонента изменяется при изменении размера.

Dimension getPreferredSize​(JComponent c)

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

protected int getRowHeight​(int row)

Возвращает высоту указанной строки в соответствии с текущей компоновкой.

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.ListUI

getCellBounds, indexToLocation

Методы, объявленные в классе 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()

Методы

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 - список ListCellRenderer
dataModel - модель списка
selModel - модель выделения
leadIndex - индекс ведущего элемента
См. также:
paint(java.awt.Graphics, javax.swing.JComponent)

paint

public void paint(Graphics g,
                  JComponent c)

Отрисовка строк, пересекающих область обрезки объекта Graphics. Этот метод вызывает paintCell по мере необходимости. Подклассы могут захотеть переопределить эти методы.

Переопределяет:
paint в классе ComponentUI
Параметры:
g - контекст отрисовки Graphics
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 - ширина для получения базовой строки
height - высота для получения базовой строки
Возвращает:
базовую строку или значение < 0, указывающее, что нет разумной базовой строки
Исключения:
NullPointerException - если c является null
IllegalArgumentException - если ширина или высота < 0
С момента:
1.6
См. также:
JComponent.getBaseline(int, int)

getBaselineResizeBehavior

public Component.BaselineResizeBehavior getBaselineResizeBehavior(JComponent c)

Возвращает перечисление, указывающее, как изменяется базовая строка компонента при изменении размера.

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

getPreferredSize

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

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

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

selectPreviousIndex

protected void selectPreviousIndex()

Выделяет предыдущую строку и принудительно отображает её.

См. также:
JList.ensureIndexIsVisible(int)

selectNextIndex

protected void selectNextIndex()

Выделяет предыдущую строку и принудительно отображает её.

См. также:
JList.ensureIndexIsVisible(int)

installKeyboardActions

protected void installKeyboardActions()

Регистрирует сочетания клавиш на JList, с которым связан BasicListUI. Этот метод вызывается во время installUI().

См. также:
installUI(javax.swing.JComponent)

uninstallKeyboardActions

protected void uninstallKeyboardActions()

Удаляет сочетания клавиш, установленные из installKeyboardActions. Этот метод вызывается во время uninstallUI() — подклассы должны убедиться, что все сочетания клавиш, зарегистрированные во время installUI, удалены здесь.

См. также:
installUI(javax.swing.JComponent)

installListeners

protected void installListeners()

Создаёт и устанавливает слушателей для JList, его модели и модели выделения. Этот метод вызывается во время installUI().

См. также:
installUI(javax.swing.JComponent), uninstallListeners()

uninstallListeners

protected void uninstallListeners()

Удаляет слушателей из JList, его модели и модели выделения. Все поля слушателей сбрасываются в null. Этот метод вызывается во время uninstallUI(); он должен быть синхронизирован с installListeners.

См. также:
uninstallUI(javax.swing.JComponent), installListeners()

installDefaults

protected void installDefaults()

Инициализирует свойства списка, такие как шрифт, передний и задний план, и добавляет CellRendererPane. Свойства шрифта, переднего и заднего плана устанавливаются только в том случае, если их текущее значение равно null или UIResource; другие свойства устанавливаются, если текущее значение равно null.

См. также:
uninstallDefaults(), installUI(javax.swing.JComponent), CellRendererPane

uninstallDefaults

protected void uninstallDefaults()

Устанавливает свойства списка, которые не были явно переопределены, в значение по умолчанию. Свойство считается переопределённым, если его текущее значение не является UIResource.

См. также:
installDefaults(), uninstallUI(javax.swing.JComponent), CellRendererPane

installUI

public void installUI(JComponent c)

Инициализирует this.list, вызывая installDefaults(), installListeners(), и installKeyboardActions() в указанном порядке.

Переопределяет:
installUI в классе ComponentUI
Параметры:
c - компонент, в котором устанавливается этот делегат UI
См. также:
installDefaults(), installListeners(), installKeyboardActions()

uninstallUI

public void uninstallUI(JComponent c)

Деинициализирует this.list, вызывая uninstallListeners(), uninstallKeyboardActions(), и uninstallDefaults() в указанном порядке. Устанавливает this.list в null.

Переопределяет:
uninstallUI в классе ComponentUI
Параметры:
c - компонент, из которого удаляется этот делегат UI; этот аргумент часто игнорируется, но может использоваться, если объект UI без состояния и используется несколькими компонентами
См. также:
uninstallListeners(), uninstallKeyboardActions(), uninstallDefaults()

createUI

public static ComponentUI createUI(JComponent list)

Возвращает новый экземпляр BasicListUI. Делегаты BasicListUI создаются по одному на каждый JList.

Параметры:
list - компонент
Возвращает:
новую реализацию ListUI для оформления Windows.

locationToIndex

public int locationToIndex(JList<?> list,
                           Point location)

Возвращает индекс ячейки в указанном JList, ближайшей к заданной позиции в системе координат списка. Чтобы определить, действительно ли ячейка содержит указанную позицию, сравните точку с границами ячейки, предоставленными getCellBounds. Этот метод возвращает -1 если модель списка пуста.

Определено в:
locationToIndex в классе ListUI
Параметры:
list - список
location - координаты точки
Возвращает:
индекс ячейки, ближайшей к заданной позиции, или -1
Исключения:
NullPointerException - если location равно null

getRowHeight

protected int getRowHeight(int row)

Возвращает высоту указанной строки на основе текущего макета.

Параметры:
row - строка
Возвращает:
высота указанной строки или -1, если строка недействительна
См. также:
convertYToRow(int), convertRowToY(int), updateLayoutState()

convertYToRow

protected int convertYToRow(int y0)

Преобразует относительную координату JList в строку, содержащую её, на основе текущего макета. Если y0 не попадает ни в одну строку, возвращает -1.

Параметры:
y0 - относительная координата Y
Возвращает:
строка, содержащая y0, или -1
См. также:
getRowHeight(int), updateLayoutState()

convertRowToY

protected int convertRowToY(int row)

Возвращает относительную координату JList Y начала указанной строки или -1, если строка недействительна.

Параметры:
row - строка
Возвращает:
координата Y начала строки или -1
См. также:
getRowHeight(int), updateLayoutState()

maybeUpdateLayoutState

protected void maybeUpdateLayoutState()

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

См. также:
updateLayoutState()

updateLayoutState

protected void updateLayoutState()

Пересчитывает значение cellHeight или cellHeights, а также cellWidth, на основе текущего шрифта и текущих значений fixedCellWidth, fixedCellHeight и prototypeCellValue.

См. также:
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);
        }
    }
 }

Возвращает:
экземпляр MouseInputListener
См. также:
BasicListUI.MouseInputHandler, installUI(javax.swing.JComponent)

createFocusListener

protected FocusListener createFocusListener()

Возвращает экземпляр FocusListener.

Возвращает:
экземпляр 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);
        }
    }
 }

Возвращает:
экземпляр ListSelectionHandler
См. также:
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);
        }
    }
 }

Возвращает:
экземпляр ListDataListener
См. также:
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);
        }
    }
 }

Возвращает:
экземпляр PropertyChangeHandler
См. также:
PropertyChangeListener, installUI(javax.swing.JComponent)

© 1993, 2020, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/11/docs/api/java.desktop/javax/swing/plaf/basic/BasicListUI.html

Spec-Zone .ru
спецификации, руководства, описания, API