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