Класс BasicListUI
- Прямые известные подклассы:
SynthListUI
public class BasicListUI extends ListUI
ListUI. Экземпляры ListUI нельзя использовать совместно для нескольких списков.
Краткое описание вложенных классов
| Модификатор и тип | Класс | Описание |
|---|---|---|
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 |
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 |
Возвращает относительную координату Y начала указанной строки или -1, если строка неверна. |
protected int |
convertYToRow |
Преобразует JList относительную координату в строку, которая её содержит, на основе текущего макета. |
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 |
Возвращает новый экземпляр BasicListUI. |
int |
getBaseline |
Возвращает базовую линию. |
Component.BaselineResizeBehavior |
getBaselineResizeBehavior |
Возвращает перечисление, указывающее, как изменяется базовая линия компонента при изменении размера. |
Rectangle |
getCellBounds |
Возвращает прямоугольник ограничивающей рамки, в системе координат данного списка, для диапазона ячеек, указанных двумя индексами. |
Dimension |
getPreferredSize |
Предпочтительный размер списка зависит от ориентации макета. |
protected int |
getRowHeight |
Возвращает высоту указанной строки на основе текущего макета. |
Point |
indexToLocation |
Возвращает начало указанного элемента в заданной JList, в системе координат списка. |
protected void |
installDefaults() |
Инициализирует свойства списка, такие как шрифт, передний и задний фон, и добавляет CellRendererPane. |
protected void |
installKeyboardActions() |
Регистрирует привязки клавиатуры к JList, с которым связан BasicListUI. |
protected void |
installListeners() |
Создаёт и устанавливает слушатели для JList, его модели и модели выбора. |
void |
installUI |
Инициализирует this.list, вызвав installDefaults(), installListeners() и installKeyboardActions() в указанном порядке. |
int |
locationToIndex |
Возвращает индекс ячейки в указанном JList, наиболее близкий к заданному расположению в системе координат списка. |
protected void |
maybeUpdateLayoutState() |
Если updateLayoutStateNeeded не равно нулю, вызывается updateLayoutState() и сбрасывается updateLayoutStateNeeded. |
void |
paint |
Отображает строки, которые пересекаются с областью обрезки объекта Graphics. |
protected void |
paintCell |
Отображает одну ячейку списка: вычисляет соответствующее состояние, получает компонент-рендерер ячейки ("штамп") и затем использует CellRendererPane для его отображения. |
protected void |
selectNextIndex() |
Выделяет предыдущую строку и принудительно делает её видимой. |
protected void |
selectPreviousIndex() |
Выделяет предыдущую строку и принудительно делает её видимой. |
protected void |
uninstallDefaults() |
Устанавливает свойства списка, которые не были явно переопределены, в значение по умолчанию null. |
protected void |
uninstallKeyboardActions() |
Отменяет регистрацию действий клавиатуры, установленных из installKeyboardActions. |
protected void |
uninstallListeners() |
Удаляет слушателей из JList, его модели и модели выбора. |
void |
uninstallUI |
Деинициализирует this.list, вызвав uninstallListeners(), uninstallKeyboardActions() и uninstallDefaults() в указанном порядке. |
protected void |
updateLayoutState() |
Пересчитывает значение cellHeight или cellHeights, основываясь на cellWidth, текущем шрифте и текущих значениях fixedCellWidth, fixedCellHeight и prototypeCellValue. |
Методы, объявленные в классе javax.swing.plaf.ComponentUI
contains, getAccessibleChild, getAccessibleChildrenCount, getMaximumSize, getMinimumSize, update
Подробное описание полей
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
public void paint(Graphics g, JComponent c)
- Переопределяет:
-
paintв классеComponentUI - Параметры:
-
g- контекст для отрисовки -
c- компонент, который отрисовывается - См. также:
getBaseline
public int getBaseline(JComponent c, int width, int height)
- Переопределяет:
-
getBaselineв классеComponentUI - Параметры:
-
c- компонент, для которого запрашивается базовая линия -
width- высота для получения базовой линии - Возвращает:
- базовую линию или значение < 0, указывающее, что нет разумной базовой линии
- Исключения:
-
NullPointerException- еслиcявляетсяnull -
IllegalArgumentException- если ширина или высота < 0 - С:
- 1.6
- См. также:
getBaselineResizeBehavior
public Component.BaselineResizeBehavior getBaselineResizeBehavior(JComponent c)
- Переопределяет:
-
getBaselineResizeBehaviorв классеComponentUI - Параметры:
-
c- компонент, для которого запрашивается поведение изменения базовой линии - Возвращает:
- перечисление, указывающее, как изменяется базовая линия при изменении размера компонента
- Исключения:
-
NullPointerException- еслиcявляетсяnull - С:
- 1.6
- См. также:
getPreferredSize
public Dimension getPreferredSize(JComponent c)
| Ориентация макета | Предпочтительный размер |
|---|---|
| JList.VERTICAL | Предпочтительный размер списка — это общая высота строк и максимальная ширина ячеек. Если задан JList.fixedCellHeight, то общая высота строк составляет (отступы ячейки по вертикали + fixedCellHeight) * model.getSize(), где отступы по вертикали — это пространство, которое мы выделяем для отображения желтой рамки фокуса. Аналогично, если задан fixedCellWidth, мы используем его значение. |
| JList.VERTICAL_WRAP | Если количество видимых строк больше нуля, предпочтительная высота равна максимальной высоте ячейки * количество видимых строк. Если количество видимых строк меньше или равно 0, предпочтительная высота равна либо текущей высоте списка, либо максимальной высоте ячейки, в зависимости от того, какая больше. Предпочтительная ширина равна максимальной ширине ячейки * количеству необходимых столбцов. Количество столбцов определяется как list.height / максимальная высота ячейки. Максимальная высота ячейки либо задана fixed cell height, либо определяется итерацией по всем ячейкам для нахождения максимальной высоты с помощью ListCellRenderer. |
| JList.HORIZONTAL_WRAP | Если количество видимых строк больше нуля, предпочтительная высота равна максимальной высоте ячейки * скорректированному количеству строк. Где visibleRowCount используется для определения количества столбцов. Поскольку это макет по горизонтали, количество строк затем определяется по количеству столбцов. Например, предположим, что у вас есть модель с 10 элементами, а visible row count — 8. Количество необходимых столбцов для отображения — 2, но вам больше не нужны 8 строк для отображения, вам нужно только 5, следовательно, скорректированное количество строк (adjustedRowCount) — 5. Если количество видимых строк меньше или равно 0, предпочтительная высота определяется количеством столбцов, которые могут поместиться по ширине |
Insets определяются из list.getInsets().- Overrides:
-
getPreferredSizeв классеComponentUI - Parameters:
-
c— компонент JList. - Returns:
- Общий размер списка.
- See Also:
selectPreviousIndex
protected void selectPreviousIndex()
- See Also:
selectNextIndex
protected void selectNextIndex()
- See Also:
installKeyboardActions
protected void installKeyboardActions()
JList, с которым связан BasicListUI. Этот метод вызывается во время installUI().- See Also:
uninstallKeyboardActions
protected void uninstallKeyboardActions()
installKeyboardActions. Этот метод вызывается во время uninstallUI() — подклассы должны гарантировать, что все действия клавиатуры, зарегистрированные в installUI, удалены здесь.- See Also:
installListeners
protected void installListeners()
- See Also:
uninstallListeners
protected void uninstallListeners()
- See Also:
installDefaults
protected void installDefaults()
- See Also:
uninstallDefaults
protected void uninstallDefaults()
null. Свойство считается переопределённым, если его текущее значение не является UIResource.- See Also:
installUI
public void installUI(JComponent c)
this.list, вызвав installDefaults(), installListeners() и installKeyboardActions() в указанном порядке.- Overrides:
-
installUIв классеComponentUI - Parameters:
-
c— компонент, в котором устанавливается этот делегат пользовательского интерфейса - See Also:
uninstallUI
public void uninstallUI(JComponent c)
this.list, вызвав uninstallListeners(), uninstallKeyboardActions() и uninstallDefaults() в указанном порядке. Устанавливает this.list в null.- Overrides:
-
uninstallUIв классеComponentUI - Parameters:
-
c— компонент, из которого удаляется этот делегат пользовательского интерфейса; этот аргумент часто игнорируется, но может использоваться, если объект пользовательского интерфейса бессостоятелен и используется несколькими компонентами - See Also:
createUI
public static ComponentUI createUI(JComponent list)
BasicListUI. Делегаты BasicListUI выделяются по одному на каждый JList.- Parameters:
-
list— компонент - Returns:
- новый реализация
ListUIдля Windows look and feel.
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)
null, если индекс некорректен.- Specified by:
-
indexToLocationin classListUI - Parameters:
-
list- список -
index- индекс ячейки - Returns:
- начальная точка ячейки или
null
getCellBounds
public Rectangle getCellBounds(JList<?> list, int index1, int index2)
Если меньший индекс находится за пределами диапазона ячеек списка, этот метод возвращает null. Если меньший индекс корректен, но больший индекс находится за пределами диапазона списка, возвращаются границы только первого индекса. В противном случае возвращаются границы валидного диапазона.
- Specified by:
-
getCellBoundsin classListUI - Parameters:
-
list- список -
index1- первый индекс в диапазоне -
index2- второй индекс в диапазоне - Returns:
- прямоугольник, ограничивающий диапазон ячеек, или
null
getRowHeight
protected int getRowHeight(int row)
- Parameters:
-
row- строка - Returns:
- высота указанной строки или -1, если строка некорректна
- See Also:
convertYToRow
protected int convertYToRow(int y0)
- Parameters:
-
y0- относительная координата Y - Returns:
- строка, содержащая y0, или -1
- See Also:
convertRowToY
protected int convertRowToY(int row)
- Parameters:
-
row- строка - Returns:
- координата Y начала строки или -1
- See Also:
maybeUpdateLayoutState
protected void maybeUpdateLayoutState()
- See Also:
updateLayoutState
protected void updateLayoutState()
- See Also:
createMouseInputListener
protected MouseInputListener createMouseInputListener()
MouseInputListener. Делегат добавляется в соответствующие списки слушателей java.awt.Component в момент installUI(). Подклассы могут переопределить этот метод, чтобы вернуть настраиваемого слушателя, например,
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:
createFocusListener
protected FocusListener createFocusListener()
FocusListener.- Returns:
- экземпляр
FocusListener
createListSelectionListener
protected ListSelectionListener createListSelectionListener()
ListSelectionHandler, который добавляется к списку JLists по мере необходимости selectionModel. Подклассы могут переопределить этот метод, чтобы вернуть настраиваемого слушателя, например,
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:
createListDataListener
protected ListDataListener createListDataListener()
ListDataListener, который добавляется к списку слушателей JLists по мере необходимости моделью. Подклассы могут переопределить этот метод, чтобы вернуть настраиваемого слушателя, например,
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:
createPropertyChangeListener
protected PropertyChangeListener createPropertyChangeListener()
PropertyChangeHandler, который добавляется к списку слушателей JList по мере необходимости installUI(). Подклассы могут переопределить этот метод, чтобы вернуть настраиваемого слушателя, например,
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:
© 1993, 2025, 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://download.java.net/java/early_access/jdk24/docs/api/java.desktop/javax/swing/plaf/basic/BasicListUI.html