Стиль обычной кнопки javafx и текстового поля?

Я использую библиотеку Time-4j-ui, и каким-то образом она включает встроенная кнопка и текстовое поле, которое уродливо и портит весь мой дизайн,

В моем проекте я использую компоненты материального дизайна Jfoenix, и этот встроенный пользовательский интерфейс полностью разрушает мой дизайн, вот вид

введите здесь описание изображения

Я хочу знать, есть ли способ или какой-то хак для стиля этого средства выбора даты для JFXDatePicker. Вы можете увидеть JFXDatePicker ниже:

введите здесь описание изображения

Однако мне удалось получить доступ к первому дочернему элементу этой группы просмотра (которая является текстовым полем) с помощью picker.getChildren().get(0);, но я не знаю, есть ли способ стилизовать текстовое поле или что-то в этом роде?

заранее спасибо


person Shaheen Zahedi    schedule 16.06.2017    source источник
comment
Действительно, picker.getChildren().get(0) — это текстовое поле, а в позиции индекса 1 — всплывающая кнопка. Вы также видели встроенный css-файл? Одно css-свойство связано с текстовым полем: calendar-editor-error. Возможно, вы также сможете программно установить стиль текстового поля с помощью: getStyleClass().add(css-property-string). Поможет ли вам, если я определю такое свойство в следующем выпуске v4.28, чтобы вы могли использовать его для общего случая, если содержимое текстового поля допустимо?   -  person Meno Hochschild    schedule 17.06.2017


Ответы (1)


Вы можете стилизовать элементы с помощью CSS: простой способ — использовать его напрямую, например:

Node node = picker.getChildren().get(0);
node.setStyle("-fx-border-color: #000;-fx-border-width: 2px;");

Или вы можете указать внешний файл css и использовать его следующим образом:

Node node = picker.getChildren().get(0);
node.getStyleClass().add("myTextBox");
picker.getStylesheets().add("main.css");

/*main.css:*/
.myTextBox{
  -fx-border-color: #000;
  -fx-border-width: 2px;
}
person Mohammad Sadegh    schedule 16.06.2017