#java #javafx
Добрый день,пишу легкий чатик, захотел сделать приятный интерфейс, и при попытке поставить картинку на фон textArea столкнулся с проблемой отсутствия таковой возможности. Для графического составляющего использую Scene Builder. Могу взять ImageView растянуть по всей textArea и подрегулировать opacity. Но теряется резкость выводимого текста. Подскажите пожалуйста, какие есть решение данной проблемы ?
Ответы
Ответ 1
С помощью 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
Комментариев нет:
Отправить комментарий