Spec-Zone.ru › OpenJDK 25

Класс 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 и добавьте действия, выполняемые в ответ на привязки 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<Object> 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<Object> 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<Object> createRenderer()
Создает средство отображения по умолчанию для нередактируемого поля со списком.
static ComponentUI createUI(JComponent c)
Создает новый экземпляр BasicComboBoxUI.
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()
Удаляет установленные прослушиватели из поля со списком и его модели.

Методы, объявленные в классе ComponentUI

contains, getAccessibleChild, getAccessibleChildrenCount, getMaximumSize, getPreferredSize, installUI, paint, uninstallUI, update

Методы, объявленные в классе 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
Компонент, который 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()
Создаёт BasicComboBoxUI.

Подробное описание методов

createUI

public static ComponentUI createUI(JComponent c)
Создаёт новый экземпляр BasicComboBoxUI.
Параметры:
c — компонент
Возвращает:
новый экземпляр BasicComboBoxUI

installDefaults

protected void installDefaults()
Устанавливает в JComboBox цвета, шрифт, средство отображения и редактор по умолчанию.

installListeners

protected void installListeners()
Создаёт и устанавливает слушатели для поля со списком и его модели. Этот метод вызывается при установке пользовательского интерфейса.

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(ListCellRenderer)

createEditor

protected ComboBoxEditor createEditor()
Создаёт редактор по умолчанию для редактируемых полей со списком. Редактор по умолчанию используется только в том случае, если он явно не задан с помощью setEditor.
Возвращает:
ComboBoxEditor, используемый для поля со списком
См. также:
  • JComboBox.setEditor(ComboBoxEditor)

installComponents

protected void installComponents()
Создаёт и инициализирует компоненты, составляющие составное поле со списком. Этот метод вызывается в рамках процесса установки пользовательского интерфейса.

uninstallComponents

protected void uninstallComponents()
Компоненты, составляющие поле со списком, отменяют регистрацию и деинициализируются. Этот метод вызывается в рамках процесса удаления пользовательского интерфейса.

addEditor

public void addEditor()
Этот открытый метод зависит от реализации и должен быть закрытым. Не вызывайте и не переопределяйте его. Чтобы реализовать специальный редактор, создайте собственный ComboBoxEditor
См. также:
  • createEditor()
  • JComboBox.setEditor(ComboBoxEditor)
  • 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 — компонент, минимальный размер которого запрашивается; этот аргумент часто игнорируется, но может использоваться, если объект пользовательского интерфейса не содержит состояния и совместно используется несколькими компонентами
Возвращает:
объект Dimension или null
См. также:
  • JComponent.getMinimumSize()
  • LayoutManager.minimumLayoutSize(Container)
  • ComponentUI.getPreferredSize(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 фокуса.

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в разделе Документация Java SE, содержащем более подробные описания для разработчиков, концептуальные обзоры, определения терминов, обходные решения и примеры рабочего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторские права © 1993, 2025, Oracle и/или ее аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API