2015-06-18 92 views
0

我將PseudoClass設置爲TextField以在發生錯誤時突出顯示它們。 只有當我點擊鼠標(放置文本值)時,紅色邊框纔會出現在TextField的周圍,但我需要隨時顯示邊框。Javafx TextField pseudoClassStateChanged方法不起作用

有我如何設置邊框:

element.pseudoClassStateChanged(PseudoClass.getPseudoClass("error"), true); 

它的工作就好了,直到最後一刻,也許我交換一些不期而遇的選擇嗎?

CSS文件:

.text-field:error { 
    -fx-focus-color: red ; 
} 

.table-view .column-header .label { 
    -fx-font-weight: normal; 
} 

.list-cell:other-option { 
    -fx-opacity: 0.5 ; 
} 

.titled-pane:pane-error { 
    -fx-border-color: red ; 
} 
+1

你改變'psuedo類'的方式沒有問題。你可以添加一個[MCVE](http://stackoverflow.com/help/mcve)解釋你正在嘗試做什麼。 – ItachiUchiha

+1

特別是,你可以顯示你的CSS文件。 –

回答

2

-fx-focus-color僅用於當焦點在控制。如果你想要一個適用於控件的css,而不需要重點,請改變-fx-background-color

modena.css-fx-background-color.text-input:focused

-fx-background-color: 
     -fx-focus-color, 
     -fx-control-inner-background, 
     -fx-faint-focus-color, 
     linear-gradient(from 0px 0px to 0px 5px, derive(-fx-control-inner-background, -9%), -fx-control-inner-background); 

你可以只改變-fx-focus-color元素在裏面red

-fx-background-color: 
      red, 
      -fx-control-inner-background, 
      -fx-faint-focus-color, 
      linear-gradient(from 0px 0px to 0px 5px, derive(-fx-control-inner-background, -9%), -fx-control-inner-background); 

您也可以更改-fx-control-inner-background-fx-faint-focus-color,按您的要求。

+0

完美,非常感謝。也許你可以建議如何突出TitledPane邊框?可能css部分似乎是錯的 – Constantine

+0

TitledPane似乎沒問題,我可以在應用css時看到一個「紅色邊框」。除了TitledPane周圍的紅色邊框,你還有其他的東西嗎? – ItachiUchiha