Как работать с фоном textarea в javafx?

У меня есть изображение с рамкой на прозрачном фоне, и я хочу поместить его в качестве фона для TextArea. Используя Google, я нашел 2 способа сделать это:

1) путем размещения

"-fx-background-image: url(...);"

в

TextArea.setStyle();

2) просто сделать прозрачный фон с помощью

"-fxbackground-color: transparent;"

Сделайте изображение другим объектом, вставьте оба объекта в одно и то же место и добавьте текстовую область после изображения в группу.

Но это никак не сработало. Я также нашел несколько способов использования CSS, но в моем текущем проекте этого не было, и я бы хотел избежать, если это возможно.

Основной случай - я не могу сделать прозрачный фон, он все равно белый. Может кто-нибудь дать мне совет, что я делаю не так и пример рабочего кода?

Фоновая рамка не квадратного типа, поэтому мне действительно нужен прозрачный фон.

0
0
690
1

Ответы 1

But there's not worked any way. I have found also some ways by using CSS, but on my current project I haven't this one and would like to avoid, if possible.

Вы уже используете CSS. Здесь нет способа избежать использования CSS, если вы не хотите использовать свою собственную реализацию скина TextArea.

Вам необходимо использовать таблицу стилей CSS, которая делает фон области содержимого и область просмотра ScrollPane прозрачными:

@Override
public void start(Stage primaryStage) {
    TextArea textArea = new TextArea();
    textArea.getStyleClass().add("framed");

    Scene scene = new Scene(new StackPane(textArea));
    scene.getStylesheets().add("style.css");
    primaryStage.setScene(scene);
    primaryStage.show();
}

style.css

.framed.text-area {
    /* set size to picture size */
    -fx-pref-height: 958;
    -fx-pref-width: 958;
    -fx-min-height: 958;
    -fx-min-width: 958;
    -fx-max-height: 958;
    -fx-max-width: 958;

    /* necessary padding to not cover the speech bubble with text */
    -fx-padding: 95 135 329 90;

    /* some image of a speech bubble from the web */
    -fx-background-image: url(http://res.freestockphotos.biz/pictures/15/15674-illustration-of-a-cartoon-speech-bubble-pv.png);
}

.framed.text-area .scroll-pane .viewport,
.framed.text-area .content {
    -fx-background-color: null;
}

Другие вопросы по теме