2017-06-21 103 views
0

我正在使用名爲JFoenix的自定義JavaFX庫,它使用Google的Material Design改造了一些JavaFX組件。我特別遇到的問題是在選擇了字符串選定項目後,更改組合框的文本顏色。 This is my before screen, with the item in question circled.JavaFX/CSS:更改ComboBox所選項目的文本顏色

當我從組合框(see screenshot here)中選擇一個項目時,文本從灰色變爲黑色。我希望所選項目的文本與其餘標籤的顏色相同。在Scene Builder中添加-fx-text-fill-fx-text-inner-color不起作用。

惟一可行的辦法,我發現是使組合框可編輯,並通過用戶後的編輯器設置顏色選擇一個選項:

@FXML 
private void handleComboBoxFormat() { 
    this.mpaaBox.getEditor().setStyle("-fx-text-fill: #eceff1;" + "-fx-background-color: #445566"); 
} 

,因爲我不知道我不喜歡這樣的解決方案想要ComboBox是可編輯的,它只是感覺混亂。有沒有其他的方式來編輯文字顏色?謝謝!

+0

我認爲他們有自己的一套CSS字段,前綴爲'-jfx-'。看看他們的網站(我發現很難使用該網站,因爲導航覆蓋了實際的內容)。 – Mordechai

+0

你說得對,但只有這三個:'-jfx-focus-color','-jfx-unfocus-color'和'-jfx-label-float',其中沒有一個能夠解決文本問題。 – 8m4c

+0

嘗試重點顏色。 – Mordechai

回答

0

-fx-text-fill未在組合框中定義。

但看完CSS Reference Guide我看結構:

.combo-box > .list-view > .list-cell 

其中.list-cell定義-fx-text-fill繼承標記。

+0

剛剛嘗試過,並沒有奏效。我對CSS語法不是100%熟悉,但這是我使用的:'.combo-box .list-view .list-cell {-fx-text-fill:「#eceff1」; }' – 8m4c

+0

更新:在完成了一點操作之後,我確定'.combo-box .list-view .list-cell'不會影響所選項目的文本,只是組合框列表中的項目。 – 8m4c

0

好的,所以在與@MouseEvent建議的CSS混淆之後,我想出瞭解決方案。

.combo-box .list-view .list-cell當您打開彈出窗口時會影響ComboBox列表中的項目。

.combo-box .list-cell影響選定項目的標籤,這是我在訪問時遇到的問題。