2016-10-14 1 views
1

Я новичок в JavaFX. Как установить различные цвета фона для содержимого разных TextArea. Насколько я знаю, с помощью CSS, я могу установить цвет фона, какJavaFX - набор различных фонов для содержимого разных TextArea

.text-area { 
    -fx-background-color: transparent; 
    -fx-text-box-border: gray; 
} 

.text-area .scroll-pane .content{ 
    -fx-background-color: transparent; 
} 

Но это сказывается как TextArea с.

Также каков цвет фона отключенного TextArea в JavaFX и как его изменить?

TextArea textarea = new TextArea(); 
TextArea textarea1 = new TextArea(); 

Эти атрибуты я примененные

textarea1.setMaxHeight(180); 
textarea1.setMaxWidth(500); 
textarea.setEditable(false); 
textarea.setPrefRowCount(15); 
textarea.setWrapText(true); 
textarea.setStyle("-fx-background-color: transparent"); 
textarea1.setStyle("-fx-background-color: tomato"); 
+0

Мне очень жаль. Я искал по всему миру и не могу найти ничего с тем, как вы их добавляете. Если бы вы использовали FXML, мой ответ был бы достаточным. –

+0

Большое спасибо @SamOrozco за вашу помощь до сих пор. Но сначала я должен делать базовые вещи, прежде чем отправляться в fxml. Вот почему я придерживаюсь javafx и css. Спасибо еще раз –

ответ

1

Так что вам нужно сделать, это поместить эту строку внутри страницы CSS:

.text-area .content { 
    -fx-background-color: text-area-background ; 
} 

Так что теперь все, что вы установили свой текст -area background для этого будет устанавливать содержимое обратно grounf на это. Таким образом, вы должны это сделать, и это будет работать:

TextArea one = new TextArea(); 
     TextArea two = new TextArea(); 
     TextArea three = new TextArea(); 

     one.setStyle("-fx-background-color: transparent"); 
     two.setStyle("-fx-background-color: tomato"); 
     three.setStyle("-fx-background-color: steelblue"); 
+0

Спасибо за ответ,/ –

+0

Я попробовал это. но содержимое внутри оставалось неизменным –

+0

Только граница Цвет области текста менялся –

2

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

Когда TextArea отключен, непрозрачность TextArea и детей установлена ​​в 0.4 (= 40%). Вы можете отменить это, переписав свойство в своей таблице стилей, если хотите.

.text-area { 
    /* use variable as inner background */ 
    -fx-control-inner-background: content-background; 
} 

/* keep element fully opaque, when disabled */ 
.text-area:disabled, 
.text-area *:disabled { 
    -fx-opacity: 1; 
} 

/* replace inner background with darker color, when disabled */ 
.text-area:disabled { 
    -fx-control-inner-background: derive(content-background, -40%); 
} 
// set content-background from inline style 
textarea.setStyle("content-background: transparent;"); 
textarea1.setStyle("content-background: tomato;"); 

В случае, если вам не нужен цвет, чтобы определить -fx-control-inner-background в зависимости от выбранного цвета (derive часть), вы также можете просто присвоить свойство от встроенного стиля. В этом случае вам не нужны правила CSS для фона в вашей таблице стилей.

textarea.setStyle("-fx-control-inner-background: transparent;"); 
textarea1.setStyle("-fx-control-inner-background: tomato;"); 
Смежные вопросы