我将 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 ;
}
最佳答案
-fx-focus-color
仅当焦点位于控件上时使用。如果您想要适用于控件但没有焦点的 css,请更改 -fx-background-color
。
从 modena.css
中,.text-input:focused
的 -fx-background-color
为
-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
。
关于Javafx TextField伪ClassStateChanged方法不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30904567/