Класс 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, который добавляется к модели JList во время установки интерфейса и при каждом изменении свойства 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 |
protected static int |
fontChanged |
protected JList |
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-координату JList начала указанной строки или -1, если строка недействительна. |
protected int |
convertYToRow(int y0) Преобразует относительную координату JList в строку, которая её содержит, на основе текущего макета. |
protected FocusListener |
createFocusListener() |
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() Регистрирует привязки клавиатуры к |
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) Рисует строки, которые пересекают clipRect объекта Graphics. |
protected void |
paintCell(Graphics g,
int row,
Rectangle rowBounds,
ListCellRenderer cellRenderer,
ListModel dataModel,
ListSelectionModel selModel,
int leadIndex) Рисует одну ячейку списка: вычисляет соответствующее состояние, получает компонент-рендерер ячейки, а затем использует CellRendererPane для его отрисовки. |
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 на основе текущего шрифта и текущих значений 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 list
объект отображения
protected CellRendererPane rendererPane
слушатель фокуса
protected FocusListener focusListener
слушатель событий мыши
protected MouseInputListener mouseInputListener
слушатель изменения выделения в списке
protected ListSelectionListener listSelectionListener
слушатель изменений данных списка
protected ListDataListener listDataListener
слушатель изменений свойств
protected PropertyChangeListener propertyChangeListener
высоты ячеек
protected int[] cellHeights
высота ячейки
protected int cellHeight
ширина ячейки
protected int cellWidth
необходимость обновления состояния макета
protected int updateLayoutStateNeeded
изменение модели
protected static final int modelChanged
- См. также:
- Значения константных полей
изменение модели выделения
protected static final int selectionModelChanged
- См. также:
- Значения константных полей
изменение шрифта
protected static final int fontChanged
- См. также:
- Значения константных полей
изменение фиксированной ширины ячейки
protected static final int fixedCellWidthChanged
- См. также:
- Значения константных полей
изменение фиксированной высоты ячейки
protected static final int fixedCellHeightChanged
- См. также:
- Значения константных полей
изменение значения ячейки-прототипа
protected static final int prototypeCellValueChanged
- См. также:
- Значения константных полей
изменение отображателя ячеек
protected static final int cellRendererChanged
- См. также:
- Значения константных полей
Конструкторы
BasicListUI
public BasicListUI()
Методы
paintCell
protected void paintCell(Graphics g,
int row,
Rectangle rowBounds,
ListCellRenderer cellRenderer,
ListModel dataModel,
ListSelectionModel selModel,
int leadIndex) Отображает одну ячейку списка: вычисляет соответствующее состояние, получает компонент-отображатель ячейки и затем использует CellRendererPane для его отображения. Подклассы могут переопределить этот метод вместо paint().
paint
public void paint(Graphics g,
JComponent c) Отображает строки, пересекающие область обрезки объекта Graphics. Этот метод вызывает paintCell по мере необходимости. Подклассы могут переопределить эти методы.
- Переопределяет:
-
paintв классеComponentUI - Параметры:
-
g- контекст отображения -
c- компонент, который отображается; этот аргумент часто игнорируется, но может использоваться, если объект UI является бессостоятельным и используется несколькими компонентами - См. также:
paintCell(java.awt.Graphics, int, java.awt.Rectangle, javax.swing.ListCellRenderer, javax.swing.ListModel, javax.swing.ListSelectionModel, int)
getBaseline
public int getBaseline(JComponent c,
int width,
int height) Возвращает линию базового выравнивания.
- Переопределяет:
-
getBaselineв классеComponentUI - Параметры:
-
c- компонент, для которого запрашивается базовая линия -
width- высота для получения базовой линии - Возвращает:
- базовую линию или значение < 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 | Если количество видимых строк больше нуля, то preferredHeight — это максимальная высота ячейки * видимое количество строк. Если количество видимых строк <= 0, то предпочтительная высота — это либо текущая высота списка, либо максимальная высота ячейки, в зависимости от того, что больше. Предпочтительная ширина — это максимальная ширина ячейки * количество необходимых столбцов. Где количество необходимых столбцов — это list.height / максимальная высота ячейки. Максимальная высота ячейки — это либо фиксированная высота ячейки, либо определяется путем итерации по всем ячейкам для поиска максимальной высоты из ListCellRenderer. |
| JList.HORIZONTAL_WRAP | Если количество видимых строк больше нуля, то preferredHeight — это максимальная высота ячейки * adjustedRowCount. Где visibleRowCount используется для определения количества столбцов. Поскольку это выравнивание по горизонтали, количество строк затем определяется по количеству столбцов. Например, предположим, что у вас есть модель с 10 элементами, а видимое количество строк — 8. Необходимое количество столбцов для отображения этого — 2, но вам больше не нужны 8 строк для отображения этого, вам нужно только 5, поэтому adjustedRowCount — это 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()
Устанавливает свойства списка, которые не были явно переопределены, в null. Свойство считается переопределённым, если его текущее значение не является UIResource.
installUI
public void installUI(JComponent c)
Инициализирует this.list, вызывая installDefaults(), installListeners(), и installKeyboardActions() в указанном порядке.
- Переопределяет:
-
installUIв классеComponentUI - Параметры:
-
c- компонент, в котором устанавливается этот делегат пользовательского интерфейса - См. также:
-
installDefaults(),installListeners(),installKeyboardActions()
uninstallUI
public void uninstallUI(JComponent c)
Деинициализирует this.list, вызывая uninstallListeners(), uninstallKeyboardActions(), и uninstallDefaults() в указанном порядке. Устанавливает this.list в null.
- Переопределяет:
-
uninstallUIв классеComponentUI - Параметры:
-
c- компонент, из которого удаляется этот делегат пользовательского интерфейса; этот аргумент часто игнорируется, но может быть использован, если объект пользовательского интерфейса является бессостоятельным и используется несколькими компонентами - См. также:
-
uninstallListeners(),uninstallKeyboardActions(),uninstallDefaults()
createUI
public static ComponentUI createUI(JComponent list)
Возвращает новый экземпляр BasicListUI. Делегаты BasicListUI выделяются по одному на каждый JList.
- Возвращает:
- Реализация ListUI для внешнего вида Windows.
locationToIndex
public int locationToIndex(JList list,
Point location) Возвращает индекс ячейки в указанном JList, ближайшей к заданному положению в системе координат списка. Чтобы определить, действительно ли ячейка содержит указанное положение, сравните точку с границами ячейки, как предоставляется getCellBounds. Этот метод возвращает -1 , если модель списка пуста.
- Определено в:
-
locationToIndexв классеListUI - Параметры:
-
list- список -
location- координаты точки - Возвращает:
- индекс ячейки, ближайший к заданному положению, или
-1 - Исключения:
-
NullPointerException- еслиlocationравно null
indexToLocation
public Point indexToLocation(JList list,
int index) Возвращает начало в заданной JList, заданного элемента в системе координат списка. Возвращает null , если индекс некорректен.
- Определено в:
-
indexToLocationв классеListUI - Параметры:
-
list- список -
index- индекс ячейки - Возвращает:
- начало ячейки, или
null
getCellBounds
public Rectangle getCellBounds(JList list,
int index1,
int index2) Возвращает прямоугольник, ограничивающий диапазон ячеек, в системе координат указанного списка, определяемый двумя индексами. Индексы можно передавать в любом порядке.
Если меньший индекс находится за пределами диапазона ячеек списка, этот метод возвращает null. Если меньший индекс допустим, но больший индекс находится за пределами диапазона, возвращаются границы только первого индекса. В противном случае возвращаются границы допустимого диапазона.
- Определено в:
-
getCellBoundsв классеListUI - Параметры:
-
list- список -
index1- первый индекс в диапазоне -
index2- второй индекс в диапазоне - Возвращает:
- прямоугольник, ограничивающий диапазон ячеек, или
null
getRowHeight
protected int getRowHeight(int row)
Возвращает высоту указанной строки на основе текущего макета.
- Возвращает:
- Высота указанной строки или -1, если строка недопустима.
- См. также:
-
convertYToRow(int),convertRowToY(int),updateLayoutState()
convertYToRow
protected int convertYToRow(int y0)
Преобразует относительные координаты JList в строку, содержащую её, на основе текущего макета. Если y0 не попадает ни в одну строку, вернуть -1.
- Возвращает:
- Строку, содержащую y0, или -1.
- См. также:
-
getRowHeight(int),updateLayoutState()
convertRowToY
protected int convertRowToY(int row)
Возвращает относительную координату Y JList начала указанной строки или -1, если строка недопустима.
- Возвращает:
- Координату 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);
}
}
} createFocusListener
protected FocusListener createFocusListener()
createListSelectionListener
protected ListSelectionListener createListSelectionListener()
Создает экземпляр ListSelectionHandler, который добавляется к JList по мере необходимости в 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);
}
}
} createListDataListener
protected ListDataListener createListDataListener()
Создает экземпляр ListDataListener, который добавляется к JList по мере необходимости в model. Подклассы могут переопределить этот метод, чтобы вернуть пользовательского 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);
}
}
} 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);
}
}
}
© 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.