Я хотел бы установить цвет курсора для всех текстовых входов JavaFX (например, TextField, TextArea, те, что в ComboBox: editable, DatePicker и т. д.)
Я нашел этот ответ Stackoverflow: Как изменить цвет каретки в JavaFX 2.0?
... и пример на GitHub.
Первый меняет текст и цвет каретки, что не очень хорошо. Второй расширяет класс TextFieldSkin, который уже лучше, но как его использовать в CSS?
Любая помощь приветствуется.
ОБНОВЛЕНИЕ 1:
Я нашел следующее свойство стиля CSS для элементов управления JavaFX: -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, и они делают то же самое, что и я!