我正在尝试在我的文本字段中设置自定义插入符号。我希望插入符号始终可见,即使焦点位于另一个 JavaFX 节点上也是如此。如果可能的话,我还想将插入符号设置为“粗体”并将颜色设置为蓝色。
我正在使用 JavaFX 17.0.2 和 Java 17.0.2+8
我尝试编写自己的 textField 皮肤,但我的 JavaFX 版本没有 Caret 对象,并且我的 TextField 没有 setCaretVisible 属性。我也尝试过使用一些CSS,例如
-fx-caret-color: blue;
,但似乎没有任何效果,非常感谢任何帮助和建议。
我相信我可能必须创建自己的自定义文本字段。我愿意接受任何建议,谢谢
插入符号在 TextInputControlSkin
中作为
StackPane
实现,样式类为 caret-handle
。如果您在 CSS 中设置该类的样式(样式表不是内联样式设置),您可以修改插入符号的外观(我没有尝试过)。
StackPane 是一个区域,因此任何可以应用于区域(很多)的 CSS 样式都应该能够应用于插入符号。还有其他 CSS 属性用于控制插入符号可见性、颜色和其他插入符号属性,如相关问题中提到的,您可以在代码中看到。如果您想完全更改插入符号样式和行为的其他方面,那么您可以子类化 TextFieldSkin 来创建您自己的。对于某些更改来说,这很棘手,但根据您的需要,这对您来说可能没问题。在一些相关问题中有一些这种方法的简单示例。
相关: