Страницы

Поиск по вопросам

понедельник, 11 марта 2019 г.

Установить картинку на фон textArea

Добрый день,пишу легкий чатик, захотел сделать приятный интерфейс, и при попытке поставить картинку на фон textArea столкнулся с проблемой отсутствия таковой возможности. Для графического составляющего использую Scene Builder. Могу взять ImageView растянуть по всей textArea и подрегулировать opacity. Но теряется резкость выводимого текста. Подскажите пожалуйста, какие есть решение данной проблемы ?


Ответ

С помощью Scenic View можно выявить внутреннюю структуру TextArea
TextArea styleClass="text-input text-area" ScrollPane styleClass="scroll-pane" StackPane styleClass="viewport" StackPane ContentView styleClass="content" Group Text styleClass="text" Path ScrollBar styleClass="scroll-bar" ... ScrollBar styleClass="scroll-bar" ... StackPane styleClass="corner"
Исходя из этого, можно задать фоновое изображение в .css-файле в .text-area {...}, а внутренним панелям назначить прозрачность. При этом изображение не будет прокручиваться вместе с текстом:
.text-area { -fx-background-image: url("bg.png"); }
.text-area .scroll-pane .scroll-bar { -fx-background-color: rgba(255,255,255,0.5); }
.text-area .viewport { -fx-background-color: transparent; }
.text-area .content { -fx-background-color: transparent; }
.text-area .text { -fx-effect: dropshadow(gaussian,#fff,10,0.8,0,0); }
Если же нужно, чтобы изображение прокручивалось, тогда следует указать его в .text-area .content {...}
Документация по CSS:
JavaFX 9 CSS Reference Guide
JavaFX 8 CSS Reference Guide

Комментариев нет:

Отправить комментарий