Spec-Zone.ru › OpenJDK 24

Класс 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
Этот слушатель отслеживает изменения в 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()
Удаляет установленных слушателей из раскрывающегося списка и его модели.

Методы, объявленные в классе 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
Компонент, используемый 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()
Создает слушатель нажатия клавиш, который будет добавлен к раскрывающемуся списку. Если этот метод возвращает null, слушатель не будет добавлен.
Возвращает:
экземпляр KeyListener или null

createFocusListener

protected FocusListener createFocusListener()
Создает слушатель фокуса, который будет добавлен к раскрывающемуся списку. Если этот метод возвращает null, слушатель не будет добавлен.
Возвращает:
экземпляр слушателя фокуса FocusListener или null

createListDataListener

protected ListDataListener createListDataListener()
Создает слушателя списка данных, который будет добавлен к модели ComboBoxModel. Если этот метод возвращает null, слушатель не будет добавлен к модели раскрывающегося списка.
Возвращает:
экземпляр слушателя ListDataListener или null

createItemListener

protected ItemListener createItemListener()
Создает слушателя событий элементов, который будет добавлен к раскрывающемуся списку. Если этот метод возвращает null, слушатель не будет добавлен.

Подклассы могут переопределить этот метод, чтобы вернуть экземпляры своих собственных обработчиков событий элементов.

Возвращает:
экземпляр слушателя ItemListener или null

createPropertyChangeListener

protected PropertyChangeListener createPropertyChangeListener()
Создает слушателя свойств, который будет добавлен к раскрывающемуся списку. Если этот метод возвращает 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.
Возвращает:
a ComboBoxEditor, используемый для комбинированного поля
См. также:
  • JComboBox.setEditor(javax.swing.ComboBoxEditor)

installComponents

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

uninstallComponents

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

addEditor

public void addEditor()
Этот общедоступный метод зависит от реализации и должен быть закрытым. Не вызывать и не переопределять. Для реализации определённого редактора создайте настраиваемый ComboBoxEditor
См. также:
  • createEditor()
  • JComboBox.setEditor(javax.swing.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 - a boolean, определяющее видимость всплывающего окна

isFocusTraversable

public boolean isFocusTraversable(JComboBox<?> c)
Определяет, можно ли получить фокус для JComboBox. Если JComboBox изменяем, это возвращает false, в противном случае - true.
Определено в:
isFocusTraversable в классе ComboBoxUI
Параметры:
c - a JComboBox
Возвращает:
true, если указанное JComboBox доступно для перехода на него с помощью фокуса

getMinimumSize

public Dimension getMinimumSize(JComponent c)
Минимальный размер — это размер области отображения плюс отступы плюс кнопка.
Переопределяет:
getMinimumSize в классе ComponentUI
Параметры:
c — компонент, для которого запрашивается минимальный размер; этот аргумент часто игнорируется, но может использоваться, если объект пользовательского интерфейса не имеет состояния и используется несколькими компонентами
Возвращает:
объект 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)
Возвращает значение true, если заданный 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)
Отображает фон выбранного элемента.
Parameters:
g - экземпляр Graphics
bounds - прямоугольник, в который нужно выполнить отрисовку
hasFocus - сосредоточен ли фокус

getDefaultSize

protected Dimension getDefaultSize()
Возвращает размер области отображения пустого поля ввода по умолчанию, используя текущий рендерер и шрифт.
Returns:
размер пустой области отображения
See Also:
  • getDisplaySize()

getDisplaySize

protected Dimension getDisplaySize()
Возвращает вычисленный размер области отображения. Область отображения — это часть поля ввода, в которой отображается выбранный элемент. Этот метод будет использовать прообразец значения отображения, если он был задан.

Для полей ввода с большим количеством элементов рекомендуется использовать прообразец значения отображения, чтобы значительно ускорить вычисление размера отображения.

Returns:
размер области отображения, рассчитанный из элементов поля ввода
See Also:
  • JComboBox.setPrototypeDisplayValue(E)

getSizeForComponent

protected Dimension getSizeForComponent(Component comp)
Возвращает размер, который будет иметь компонент, если он используется в качестве рендерера ячейки.
Parameters:
comp - Component для проверки
Returns:
размер компонента
Since:
1.7

installKeyboardActions

protected void installKeyboardActions()
Добавляет действия клавиатуры в JComboBox. Действия по нажатию Enter и Esc уже заданы. Добавьте дополнительные действия по мере необходимости.

uninstallKeyboardActions

protected void uninstallKeyboardActions()
Удаляет InputMap и ActionMap для фокуса.

© 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://download.java.net/java/early_access/jdk24/docs/api/java.desktop/javax/swing/plaf/basic/BasicComboBoxUI.html

Spec-Zone.ru

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