【发布时间】:2017-06-12 07:44:45
【问题描述】:
我想为 所有 JavaFX 文本输入(例如 TextField、TextArea、ComboBox:editable、DatePicker 等中的输入)设置插入符号颜色
我找到了这个 Stackoverflow 答案:How to change the caret color in JavaFX 2.0?
...以及GitHub 上的示例。
第一个确实改变了文本和不好的插入符号颜色。第二个扩展了 TextFieldSkin 类,已经更好了,但是如何在 CSS 中使用呢?
感谢任何帮助。
更新 1:
我为 JavaFX 控件找到了以下 CSS 样式属性:-fx-skin。
理论上,这将允许我设置自定义皮肤类 (-fx-skin: "package.MySkin";),但是,皮肤类只是没有被使用!
类如下所示:
package gui;
…
public class MyTextFieldSkin extends TextFieldSkin
{
public MyTextFieldSkin(TextField tf) {
super(tf);
System.out.println("MyTextFieldSkin constructor called!");
ReadOnlyObjectWrapper<Color> farbe = new ReadOnlyObjectWrapper<>(Color.green);
caretPath.strokeProperty().bind(farbe);
caretPath.setStrokeWidth(1.5);
}
}
... 并且在 CSS 中设置如下:
.text-field {
-fx-skin: "gui.MyTextFieldSkin";
}
我做错了什么?我看了AquaFX的源码,他们的做法跟我一样!
【问题讨论】: