Javafx TextField pseudoClassStateChanged方法不起作用

时间:2015-06-18 00:17:21

标签: java javafx

我将PseudoClass设置为TextField以在发生错误时突出显示它们。 只有当我在其中单击鼠标(放置文本值)时,红色边框才会显示在TextField左右,但我需要一直显示边框。

我有如何设置边框:

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 个答案:

答案 0 :(得分:2)

-fx-focus-color仅在焦点位于控件上时使用。如果您想要一个适用于控件的css而没有焦点,请更改-fx-background-color

来自modena.css-fx-background-color的{​​{1}}是

.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