Класс 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 | Слушатель |
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 |
|
protected static int | fontChanged | Флаг, связанный с изменением шрифта. |
protected JList<Object> | list | Экземпляр |
protected ListDataListener | listDataListener |
|
protected ListSelectionListener | listSelectionListener |
|
protected static int | modelChanged | Флаг, связанный с изменением модели. |
protected MouseInputListener | mouseInputListener |
|
protected PropertyChangeListener | propertyChangeListener |
|
protected static int | prototypeCellValueChanged | Флаг, связанный с изменением значения прототипной ячейки. |
protected CellRendererPane | rendererPane | Экземпляр |
protected static int | selectionModelChanged | Флаг, связанный с изменением модели выбора. |
protected int | updateLayoutStateNeeded | Значение, отражающее изменения в модели |
Конструкторы
| Конструктор | Описание |
|---|---|
BasicListUI() |
Методы
| Модификатор и тип | Метод | Описание |
|---|---|---|
protected int | convertRowToY(int row) | Возвращает относительную координату Y начала указанной строки или -1, если строка недействительна. |
protected int | convertYToRow(int y0) | Преобразует относительную координату в строку, содержащую её, в соответствии с текущей компоновкой. |
protected FocusListener | createFocusListener() | Возвращает экземпляр |
protected ListDataListener | createListDataListener() | Создаёт экземпляр |
protected ListSelectionListener | createListSelectionListener() | Создаёт экземпляр |
protected MouseInputListener | createMouseInputListener() | Создаёт делегат, реализующий |
protected PropertyChangeListener | createPropertyChangeListener() | Создаёт экземпляр |
static ComponentUI | createUI(JComponent list) | Возвращает новый экземпляр |
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() | Регистрирует привязки клавиатуры к |
protected void | installListeners() | Создаёт и устанавливает слушателей для JList, его модели и модели выбора. |
void | installUI(JComponent c) | Инициализирует |
int | locationToIndex(JList<?> list,
Point location) | Возвращает индекс ячейки в указанном |
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) | Отображает одну ячейку списка: вычисляет соответствующее состояние, получает компонент рендерера ячейки «штамп», а затем использует |
protected void | selectNextIndex() | Выделяет предыдущую строку и заставляет её отображаться. |
protected void | selectPreviousIndex() | Выделяет предыдущую строку и заставляет её отображаться. |
protected void | uninstallDefaults() | Устанавливает свойства списка, которые не были явно переопределены, в |
protected void | uninstallKeyboardActions() | Отменяет регистрацию действий клавиатуры, установленных из |
protected void | uninstallListeners() | Удаляет слушателей из JList, его модели и модели выбора. |
void | uninstallUI(JComponent c) | Деинициализирует |
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, предпочтительная высота определяется количеством столбцов, которое будет соответствовать ширине |
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().
uninstallListeners
protected void uninstallListeners()
Удаляет слушателей из JList, его модели и модели выделения. Все поля слушателей сбрасываются в null. Этот метод вызывается во время uninstallUI(); он должен быть синхронизирован с installListeners.
installDefaults
protected void installDefaults()
Инициализирует свойства списка, такие как шрифт, передний и задний план, и добавляет CellRendererPane. Свойства шрифта, переднего и заднего плана устанавливаются только в том случае, если их текущее значение равно null или UIResource; другие свойства устанавливаются, если текущее значение равно null.
uninstallDefaults
protected void uninstallDefaults()
Устанавливает свойства списка, которые не были явно переопределены, в значение по умолчанию. Свойство считается переопределённым, если его текущее значение не является UIResource.
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