Класс 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

Компонент, который использует @{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

Реализация ComboPopup, используемая для отображения всплывающего окна.

protected KeyListener popupKeyListener

KeyListener слушает события.

protected MouseListener popupMouseListener

MouseListener слушает события.

protected MouseMotionListener popupMouseMotionListener

MouseMotionListener слушает события.

protected PropertyChangeListener propertyChangeListener

Это защищенное поле специфично для реализации.

protected boolean squareButton

Указывает, должен ли быть квадратной кнопка комбо-бокса.

Краткое описание конструкторов

Конструктор Описание
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

Используется для отображения текущего выбранного элемента в раскрывающемся списке. Он не имеет отношения к отображению всплывающего меню.

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

См. также:
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 - 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

Spec-Zone .ru
спецификации, руководства, описания, API