Не существует метода ComboBoxButton
class или publi c, который бы создавал такую вещь. Вы можете попытаться воспроизвести то, что сделано в указанных c элементах управления, обратившись к исходному коду.
Внешний вид элементов управления JavaFX определен в их классах скинов; поэтому ComboBoxBaseSkin
для ComboBox
, с некоторыми поддерживающими классами для всплывающего окна и списка, который отображается внутри всплывающего окна. По большей части класс скина определяет макет и поведение (т. Е. Отклик на пользовательский ввод), а фактический вид (форма стрелки, цвета и т. Д. c) определяется файлом CSS.
Эти кнопки определены довольно нетривиальным образом; для ComboBox
сама стрелка определяется как Region
, которая находится внутри arrowButton
, то есть StackPane
. Затем файл CSS определяет форму стрелки и различные цвета и границы в зависимости от того, нажата ли она, выбрана и т. Д. c.
Исходный код для JavaFX доступен через OpenJFX:
В файле CSS я буду искать combo-box
(есть пара десятков случаев) и уделять особое внимание классам .arrow-button
и .arrow
.