Класс BasicComboBoxUI
- java.lang.Object
-
- javax.swing.plaf.ComponentUI
-
- javax.swing.plaf.ComboBoxUI
-
- javax.swing.plaf.basic.BasicComboBoxUI
- Прямые известные подклассы:
-
MetalComboBoxUI,SynthComboBoxUI
public class BasicComboBoxUI extends ComboBoxUI
Основная реализация пользовательского интерфейса для JComboBox.
Комбо-бокс — это составной компонент, то есть он является агрегатом из нескольких более простых компонентов. Этот класс создает и управляет слушателями комбо-бокса и модели комбо-бокса. Эти слушатели обновляют пользовательский интерфейс в ответ на изменения свойств и состояния комбо-бокса.
Все обработка событий выполняется классами-слушателями, созданными с помощью методов createxxxListener() и внутренними классами. Вы можете изменить поведение этого класса, переопределив методы createxxxListener() и предоставив собственных слушателей событий или подклассов от предоставленных в этом классе.
Для добавления специфических действий, переопределите installKeyboardActions для добавления действий в ответ на привязки клавиш. Смотрите статью Как использовать привязки клавиш.
Вложенные классы
| Модификатор и тип | Класс | Описание |
|---|---|---|
class | BasicComboBoxUI.ComboBoxLayoutManager | Этот менеджер компоновки обрабатывает «стандартную» компоновку комбо-боксов. |
class | BasicComboBoxUI.FocusHandler | Этот слушатель скрывает всплывающее окно, когда теряется фокус. |
class | BasicComboBoxUI.ItemHandler | Этот слушатель следит за изменениями в выбранном элементе комбо-бокса. |
class | BasicComboBoxUI.KeyHandler | Этот слушатель проверяет, не является ли событие клавиши событием навигации. |
class | BasicComboBoxUI.ListDataHandler | Этот слушатель следит за изменениями в |
class | BasicComboBoxUI.PropertyChangeHandler | Этот слушатель отслеживает изменения связанных свойств в комбо-боксе. |
Поля
| Модификатор и тип | Поле | Описание |
|---|---|---|
protected JButton | arrowButton | Кнопка стрелки, вызывающая всплывающее окно. |
protected Dimension | cachedMinimumSize | Кэшированный минимальный размер. |
protected JComboBox<Object> | comboBox | Экземпляр |
protected CellRendererPane | currentValuePane | Используется для отображения текущего выбранного элемента в комбо-боксе. |
protected Component | editor | Компонент, который использует @{code ComboBoxEditor} для редактирования. |
protected FocusListener | focusListener | Это защищенное поле специфично для реализации. |
protected boolean | hasFocus | Это защищенное поле специфично для реализации. |
protected boolean | isMinimumSizeDirty | Флаг для перерасчета минимального размера. |
protected ItemListener | itemListener | Это защищенное поле специфично для реализации. |
protected KeyListener | keyListener | Это защищенное поле специфично для реализации. |
protected JList<Object> | listBox | Этот список предназначен для рисования текущего элемента в комбо-боксе. |
protected ListDataListener | listDataListener | Это защищенное поле специфично для реализации. |
protected Insets | padding | Если указано, эти отступы действуют как отступ вокруг визуализатора ячейки при компоновке и отрисовке «выбранного» элемента в комбо-боксе. |
protected ComboPopup | popup | Реализация |
protected KeyListener | popupKeyListener |
|
protected MouseListener | popupMouseListener |
|
protected MouseMotionListener | popupMouseMotionListener |
|
protected PropertyChangeListener | propertyChangeListener | Это защищенное поле специфично для реализации. |
protected boolean | squareButton | Указывает, должен ли быть квадратной кнопка комбо-бокса. |
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
BasicComboBoxUI() |
Методы
| Модификатор и тип | Метод | Описание |
|---|---|---|
void | addEditor() | Этот публичный метод зависит от реализации и должен быть приватным. |
void | configureArrowButton() | Этот публичный метод зависит от реализации и должен быть приватным. |
protected void | configureEditor() | Этот защищённый метод зависит от реализации и должен быть приватным. |
protected JButton | createArrowButton() | Создаёт кнопку, которая будет использоваться для отображения или скрытия всплывающей части комбинации. |
protected ComboBoxEditor | createEditor() | Создаёт стандартный редактор, который будет использоваться в редактируемых комбинациях. |
protected FocusListener | createFocusListener() | Создаёт |
protected ItemListener | createItemListener() | Создаёт |
protected KeyListener | createKeyListener() | Создаёт |
protected LayoutManager | createLayoutManager() | Создаёт менеджер компоновки для управления компонентами, составляющими комбинацию. |
protected ListDataListener | createListDataListener() | Создаёт слушателя данных списка, который будет добавлен к |
protected ComboPopup | createPopup() | Создаёт всплывающую часть комбинации. |
protected PropertyChangeListener | createPropertyChangeListener() | Создаёт |
protected ListCellRenderer<Object> | createRenderer() | Создаёт стандартный рендерер, который будет использоваться в нередактируемой комбинации. |
static ComponentUI | createUI(JComponent c) | Создаёт новый экземпляр |
int | getBaseline(JComponent c,
int width,
int height) | Возвращает линию базовой строки. |
Component.BaselineResizeBehavior | getBaselineResizeBehavior(JComponent c) | Возвращает перечисление, указывающее, как изменяется базовое значение компонента при изменении размера. |
protected Dimension | getDefaultSize() | Возвращает стандартный размер пустой области отображения комбинации с использованием текущего рендерера и шрифта. |
protected Dimension | getDisplaySize() | Возвращает рассчитанный размер области отображения. |
protected Insets | getInsets() | Получает отступы из JComboBox. |
Dimension | getMinimumSize(JComponent c) | Минимальный размер - это размер области отображения плюс отступы плюс кнопка. |
protected Dimension | getSizeForComponent(Component comp) | Возвращает размер компонента, если он используется в качестве рендерера ячейки. |
protected void | installComponents() | Создаёт и инициализирует компоненты, составляющие агрегированную комбинацию. |
protected void | installDefaults() | Устанавливает стандартные цвета, стандартный шрифт, стандартный рендерер и стандартный редактор в JComboBox. |
protected void | installKeyboardActions() | Добавляет действия клавиатуры в JComboBox. |
protected void | installListeners() | Создаёт и устанавливает слушателей для комбинации и её модели. |
boolean | isFocusTraversable(JComboBox<?> c) | Определяет, является ли JComboBox доступным для перемещения фокуса. |
protected boolean | isNavigationKey(int keyCode) | Возвращает, соответствует ли переданный keyCode клавише, используемой для навигации. |
boolean | isPopupVisible(JComboBox<?> c) | Указывает, отображается ли всплывающее окно или нет. |
void | paintCurrentValue(Graphics g,
Rectangle bounds,
boolean hasFocus) | Отображает текущий выбранный элемент. |
void | paintCurrentValueBackground(Graphics g,
Rectangle bounds,
boolean hasFocus) | Отображает фон текущего выбранного элемента. |
protected Rectangle | rectangleForCurrentValue() | Возвращает область, зарезервированную для рисования текущего выбранного элемента. |
void | removeEditor() | Этот публичный метод зависит от реализации и должен быть приватным. |
protected void | selectNextPossibleValue() | Выбирает следующий элемент в списке. |
protected void | selectPreviousPossibleValue() | Выбирает предыдущий элемент в списке. |
void | setPopupVisible(JComboBox<?> c,
boolean v) | Скрывает всплывающее окно. |
protected void | toggleOpenClose() | Скрывает всплывающее окно, если оно отображается, и отображает его, если оно скрыто. |
void | unconfigureArrowButton() | Этот публичный метод зависит от реализации и должен быть приватным. |
protected void | unconfigureEditor() | Этот защищённый метод зависит от реализации и должен быть приватным. |
protected void | uninstallComponents() | Компоненты, составляющие комбинацию, не зарегистрированы и не инициированы. |
protected void | uninstallDefaults() | Удаляет стандартные цвета, стандартный шрифт, стандартный рендерер и стандартный редактор из комбинации. |
protected void | uninstallKeyboardActions() | Удаляет InputMap и ActionMap фокуса. |
protected void | uninstallListeners() | Удаляет установленных слушателей из комбинации и её модели. |
Методы, объявленные в классе javax.swing.plaf.ComponentUI
contains, getAccessibleChild, getAccessibleChildrenCount, getMaximumSize, getPreferredSize, installUI, paint, uninstallUI, update Методы, объявленные в классе java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait Поля
comboBox
protected JComboBox<Object> comboBox
Экземпляр JComboBox.
hasFocus
protected boolean hasFocus
Это защищённое поле зависит от реализации. Не обращайтесь к нему напрямую и не переопределяйте.
listBox
protected JList<Object> listBox
Этот список предназначен для отображения текущего элемента в раскрывающемся списке.
currentValuePane
protected CellRendererPane currentValuePane
Используется для отображения текущего выбранного элемента в раскрывающемся списке. Он не имеет отношения к отображению всплывающего меню.
popup
protected ComboPopup popup
Реализация ComboPopup, используемая для отображения всплывающего меню.
editor
protected Component editor
Компонент, который @{code ComboBoxEditor} использует для редактирования.
arrowButton
protected JButton arrowButton
Кнопка стрелки, вызывающая всплывающее меню.
keyListener
protected KeyListener keyListener
Это защищённое поле зависит от реализации. Не обращайтесь к нему напрямую и не переопределяйте. Вместо этого переопределите метод создания слушателя.
- См. также:
createKeyListener()
focusListener
protected FocusListener focusListener
Это защищённое поле зависит от реализации. Не обращайтесь к нему напрямую и не переопределяйте. Вместо этого переопределите метод создания слушателя.
- См. также:
createFocusListener()
propertyChangeListener
protected PropertyChangeListener propertyChangeListener
Это защищённое поле зависит от реализации. Не обращайтесь к нему напрямую и не переопределяйте. Вместо этого переопределите метод создания слушателя.
- См. также:
createPropertyChangeListener()
itemListener
protected ItemListener itemListener
Это защищённое поле зависит от реализации. Не обращайтесь к нему напрямую и не переопределяйте. Вместо этого переопределите метод создания слушателя.
- См. также:
createItemListener()
popupMouseListener
protected MouseListener popupMouseListener
Слушатель MouseListener следит за событиями.
popupMouseMotionListener
protected MouseMotionListener popupMouseMotionListener
Слушатель MouseMotionListener следит за событиями.
popupKeyListener
protected KeyListener popupKeyListener
Слушатель KeyListener следит за событиями.
listDataListener
protected ListDataListener listDataListener
Это защищённое поле зависит от реализации. Не обращайтесь к нему напрямую и не переопределяйте. Вместо этого переопределите метод создания слушателя.
- См. также:
createListDataListener()
isMinimumSizeDirty
protected boolean isMinimumSizeDirty
Флаг для перерасчёта минимального размера.
cachedMinimumSize
protected Dimension cachedMinimumSize
Кэшированный минимальный размер.
squareButton
protected boolean squareButton
Указывает, должен ли быть квадратной кнопка раскрывающегося списка. Если квадратная, то ширина и высота равны и обе установлены на высоту раскрывающегося списка минус соответствующие отступы.
- С:
- 1.7
padding
protected Insets padding
Если указаны, эти отступы действуют как отступы вокруг рендерера ячейки при размещении и рисовании выбранного элемента в раскрывающемся списке. Эти отступы добавляются к тем, которые указаны рендерером ячейки.
- С:
- 1.7
Конструкторы
BasicComboBoxUI
public BasicComboBoxUI()
Методы
createUI
public static ComponentUI createUI(JComponent c)
Создаёт новый экземпляр BasicComboBoxUI.
- Параметры:
-
c- компонент - Возвращает:
- новый экземпляр
BasicComboBoxUI
installDefaults
protected void installDefaults()
Устанавливает стандартные цвета, шрифт, рендерер и редактор в JComboBox.
installListeners
protected void installListeners()
Создаёт и устанавливает слушатели для комбобокса и его модели. Этот метод вызывается при установке UI.
uninstallDefaults
protected void uninstallDefaults()
Удаляет стандартные цвета, шрифт, рендерер и редактор из комбобокса.
uninstallListeners
protected void uninstallListeners()
Удаляет установленные слушатели из комбобокса и его модели. Количество и типы удаляемых слушателей в этом методе должны быть такими же, что и добавлены в installListeners
createPopup
protected ComboPopup createPopup()
Создаёт всплывающее меню комбобокса.
- Возвращает:
- экземпляр
ComboPopup - См. также:
ComboPopup
createKeyListener
protected KeyListener createKeyListener()
Создаёт KeyListener, который будет добавлен к комбобоксу. Если этот метод возвращает null, то он не будет добавлен к комбобоксу.
- Возвращает:
- экземпляр
KeyListenerили null
createFocusListener
protected FocusListener createFocusListener()
Создаёт FocusListener, который будет добавлен к комбобоксу. Если этот метод возвращает null, то он не будет добавлен к комбобоксу.
- Возвращает:
- экземпляр
FocusListenerили null
createListDataListener
protected ListDataListener createListDataListener()
Создаёт слушатель данных списка, который будет добавлен к ComboBoxModel. Если этот метод возвращает null, то он не будет добавлен к модели комбобокса.
- Возвращает:
- экземпляр
ListDataListenerили null
createItemListener
protected ItemListener createItemListener()
Создаёт ItemListener, который будет добавлен к комбобоксу. Если этот метод возвращает null, то он не будет добавлен к комбобоксу.
Подклассы могут переопределять этот метод, чтобы возвращать экземпляры своих собственных обработчиков ItemEvent.
- Возвращает:
- экземпляр
ItemListenerили null
createPropertyChangeListener
protected PropertyChangeListener createPropertyChangeListener()
Создаёт PropertyChangeListener, который будет добавлен к комбобоксу. Если этот метод возвращает null, то он не будет добавлен к комбобоксу.
- Возвращает:
- экземпляр
PropertyChangeListenerили null
createLayoutManager
protected LayoutManager createLayoutManager()
Создаёт менеджер компоновки для управления компонентами, составляющими комбобокс.
- Возвращает:
- экземпляр менеджера компоновки
createRenderer
protected ListCellRenderer<Object> createRenderer()
Создаёт стандартный рендерер, который будет использоваться в нередактируемом комбобоксе. Стандартный рендерер будет использоваться только в том случае, если рендерер не был явно задан с помощью setRenderer.
- Возвращает:
ListCellRenderдля комбобокса- См. также:
JComboBox.setRenderer(javax.swing.ListCellRenderer<? super E>)
createEditor
protected ComboBoxEditor createEditor()
Создаёт стандартный редактор, который будет использоваться в редактируемых комбобоксах. Стандартный редактор будет использоваться только в том случае, если редактор не был явно задан с помощью setEditor.
- Возвращает:
ComboBoxEditorдля комбобокса- См. также:
JComboBox.setEditor(javax.swing.ComboBoxEditor)
installComponents
protected void installComponents()
Создаёт и инициализирует компоненты, составляющие комбобокс. Этот метод вызывается в рамках процесса установки UI.
uninstallComponents
protected void uninstallComponents()
Компоненты комбобокса отменяются и деинициализируются. Этот метод вызывается в рамках процесса отключения UI.
addEditor
public void addEditor()
Этот общедоступный метод специфичен для реализации и должен быть закрытым. Не вызывать и не переопределять. Для реализации определённого редактора создайте пользовательский ComboBoxEditor
removeEditor
public void removeEditor()
Этот общедоступный метод специфичен для реализации и должен быть закрытым. Не вызывать и не переопределять.
- См. также:
addEditor()
configureEditor
protected void configureEditor()
Этот защищённый метод специфичен для реализации и должен быть закрытым. Не вызывать и не переопределять.
- См. также:
addEditor()
unconfigureEditor
protected void unconfigureEditor()
Этот защищённый метод специфичен для реализации и должен быть закрытым. Не вызывать и не переопределять.
- См. также:
addEditor()
configureArrowButton
public void configureArrowButton()
Этот общедоступный метод специфичен для реализации и должен быть закрытым. Не вызывать и не переопределять.
- См. также:
createArrowButton()
unconfigureArrowButton
public void unconfigureArrowButton()
Этот общедоступный метод специфичен для реализации и должен быть закрытым. Не вызывать и не переопределять.
- См. также:
createArrowButton()
createArrowButton
protected JButton createArrowButton()
Создаёт кнопку, которая будет использоваться для отображения или скрытия всплывающего меню комбобокса.
- Возвращает:
- кнопку, представляющую элемент управления всплывающим меню
isPopupVisible
public boolean isPopupVisible(JComboBox<?> c)
Определяет, отображается ли всплывающее меню.
- Задано в:
-
isPopupVisibleв классеComboBoxUI - Параметры:
-
c-JComboBox - Возвращает:
- true, если всплывающее меню
JComboBoxотображается
setPopupVisible
public void setPopupVisible(JComboBox<?> c,
boolean v) Скрывает всплывающее меню.
- Задано в:
-
setPopupVisibleв классеComboBoxUI - Параметры:
-
c-JComboBox -
v-booleanопределяющий видимость всплывающего меню
isFocusTraversable
public boolean isFocusTraversable(JComboBox<?> c)
Определяет, может ли JComboBox получить фокус. Если JComboBox редактируемый, возвращает false, иначе возвращает true.
- Задано в:
-
isFocusTraversableв классеComboBoxUI - Параметры:
-
c-JComboBox - Возвращает:
- true, если данный
JComboBoxдоступен для перехода
getMinimumSize
public Dimension getMinimumSize(JComponent c)
Минимальный размер — это размер области отображения плюс отступы плюс кнопка.
- Переопределяет:
-
getMinimumSizeв классеComponentUI - Параметры:
-
c- компонент, минимальный размер которого запрашивается; этот аргумент часто игнорируется, но может использоваться, если объект UI является бессостоятельным и используется несколькими компонентами - Возвращает:
- объект
Dimensionилиnull - См. также:
-
JComponent.getMinimumSize(),LayoutManager.minimumLayoutSize(java.awt.Container),ComponentUI.getPreferredSize(javax.swing.JComponent)
getBaseline
public int getBaseline(JComponent c,
int width,
int height) Возвращает базовую линию.
- Переопределяет:
-
getBaselineв классеComponentUI - Параметры:
-
c-JComponentбаза для которого запрашивается -
width- ширина для получения базовой линии -
height- высота для получения базовой линии - Возвращает:
- базовую линию или значение < 0, указывающее, что разумной базовой линии нет
- Исключение:
-
NullPointerException- еслиcявляетсяnull -
IllegalArgumentException- если ширина или высота < 0 - С:
- 1.6
- См. также:
JComponent.getBaseline(int, int)
getBaselineResizeBehavior
public Component.BaselineResizeBehavior getBaselineResizeBehavior(JComponent c)
Возвращает перечисление, указывающее, как изменяется базовая линия компонента при изменении размера.
- Переопределяет:
-
getBaselineResizeBehaviorв классеComponentUI - Параметры:
-
c-JComponentдля возвращения поведения изменения базовой линии - Возвращает:
- перечисление, указывающее, как изменяется базовая линия при изменении размера компонента
- Исключение:
-
NullPointerException- еслиcявляетсяnull - С:
- 1.6
- См. также:
JComponent.getBaseline(int, int)
isNavigationKey
protected boolean isNavigationKey(int keyCode)
Возвращает, соответствует ли заданный keyCode клавише, используемой для навигации. Это используется для оптимизации ввода с клавиатуры, передавая только клавиши, не используемые для навигации, механизму прогнозирования ввода. Подклассы должны переопределять этот метод, если они изменяют клавиши навигации.
- Параметры:
-
keyCode- код клавиши - Возвращает:
-
trueесли заданныйkeyCodeсоответствует клавише навигации
selectNextPossibleValue
protected void selectNextPossibleValue()
Выбирает следующий элемент в списке. Не изменяет выбор, если текущий выбранный элемент уже последний.
selectPreviousPossibleValue
protected void selectPreviousPossibleValue()
Выбирает предыдущий элемент в списке. Если текущий выбранный элемент уже является первым, выбор не изменится.
toggleOpenClose
protected void toggleOpenClose()
Скрывает всплывающее окно, если оно отображается, и отображает его, если оно скрыто.
rectangleForCurrentValue
protected Rectangle rectangleForCurrentValue()
Возвращает область, резервируемую для рисования текущего выбранного элемента.
- Возвращает:
- область, резервируемую для рисования текущего выбранного элемента
getInsets
protected Insets getInsets()
Получает отступы из JComboBox.
- Возвращает:
- отступы
paintCurrentValue
public void paintCurrentValue(Graphics g,
Rectangle bounds,
boolean hasFocus) Рисует текущий выбранный элемент.
- Параметры:
-
g- экземплярGraphics -
bounds- прямоугольник области отрисовки -
hasFocus- фокусирован
paintCurrentValueBackground
public void paintCurrentValueBackground(Graphics g,
Rectangle bounds,
boolean hasFocus) Рисует фон текущего выбранного элемента.
- Параметры:
-
g- экземплярGraphics -
bounds- прямоугольник области отрисовки -
hasFocus- фокусирован
getDefaultSize
protected Dimension getDefaultSize()
Возвращает размер области отображения по умолчанию для пустой области комбобокса, используя текущий рендерер и шрифт.
- Возвращает:
- размер пустой области отображения
- См. также:
getDisplaySize()
getDisplaySize
protected Dimension getDisplaySize()
Возвращает рассчитанный размер области отображения. Область отображения — это часть комбобокса, в которой отображается выбранный элемент. Этот метод будет использовать прообразец значения отображения, если он был задан.
Для комбобоксов с ненулевым количеством элементов рекомендуется использовать прообразец значения отображения для существенного ускорения расчёта размера области отображения.
- Возвращает:
- размер области отображения, рассчитанный по элементам комбобокса
- См. также:
JComboBox.setPrototypeDisplayValue(E)
getSizeForComponent
protected Dimension getSizeForComponent(Component comp)
Возвращает размер, который имел бы компонент, если бы использовался в качестве рендерера ячейки.
- Параметры:
-
comp- проверяемыйComponent - Возвращает:
- размер компонента
- С:
- 1.7
installKeyboardActions
protected void installKeyboardActions()
Добавляет действия клавиатуры в JComboBox. Действия по нажатию Enter и Esc уже заданы. Добавьте больше действий по мере необходимости.
uninstallKeyboardActions
protected void uninstallKeyboardActions()
Удаляет InputMap и ActionMap фокуса.
© 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/BasicComboBoxUI.html