2017-01-17 8 views
3

Я хочу настроить выпадающее меню комбинированной панели. Глядя на следующее изображение enter image description hereJavaFx ComboBox настроить выпадающее меню

Я хотел бы изменить панель синего наведения, цвет наведенного текста, шрифт текста, а также шрифт текста по умолчанию.

спасибо.

-UPDATED-

я только достиг этого

comboBox.setStyle("-fx-background-image: url('" + ImageUtils.getPath() + "fieldTextBkg.png');" 
      + "-fx-text-box-border: transparent;" 
      + "-fx-background-color: transparent, transparent, transparent, transparent;" 
      + "-fx-text-alignment: center;"); 

, что только меняющийся развернутого меню. Независимо от того, что я пытаюсь изменить внутренний раскрывающийся список, я не могу достичь. Например, стартом будет синий цвет, который будет изменен на зеленый. Весь фон вместо белого - черный, а текст - шрифта Calibri.

спасибо.

+0

Вы можете сделать это с помощью [CSS] (http://docs.oracle.com/javase/8/javafx/api/javafx/scene/doc-files/cssref .html # клетки). [Изменить] ваш вопрос, чтобы описать, как вы хотите, чтобы они изменились, показать, что вы пробовали, и объяснить, как результат отличается от ожидаемого. –

+0

Извините @James_D, обновил его – user2805346

+0

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

ответ

4

Вы можете изменить стиль для ячеек во всплывающем окне, помещая следующее во внешнем файле CSS для вашего приложения:

.combo-box .combo-box-popup .list-view, .combo-box .combo-box-popup .list-cell { 
    -fx-background-color: black ; 
    -fx-text-fill: white ; 
    -fx-font-family: "Calibri" ; 
} 
.combo-box .combo-box-popup .list-cell:hover { 
    -fx-text-fill: yellow ; 
    -fx-background-color: green ; 
} 

Вы можете использовать pseudoclass :selected для выбранной ячейки. (то есть .combo-box .combo-box-popup .list-cell:selected { ... }).

Вы можете стилизовать поле со списком «кнопку ячейки» (то есть тот, который отображается не во всплывающем окне) с селектором

.combo-box > .list-cell { /* ... */ } 

ВИДЕТЬ CSS documentation или даже source code для таблицы стилей по умолчанию для дополнительных параметров ,

+0

спасибо. ЭТО РАБОТАЕТ! – user2805346

5

Вот несколько экспликации:

/*Edit The control itself*/ 
.combo-box{ 

-fx-background-color:purple; 

} 

/*Edit Normal Cell color */ 
.combo-box .list-cell{ 

-fx-background-color:red; 


} 

/*Edit Cell Color Only when cursor hover cell */ 
.combo-box .list-cell:hover{ 

-fx-background-color:green; 
} 

/*Edit Cell Color Only when selected */ 
.combo-box .list-cell:selected{ 

-fx-background-color:blue; 

} 
+0

Большое вам спасибо. Это потрясающе! – user2805346

+0

На самом деле James_D заслуживает этого :) –

+1

Я бы согласился, если бы мог. Большое вам спасибо – user2805346