Comment supprimer cette bordure supérieure grise dans JavaFX TextArea


Je veux une zone de texte complètement sans frontières et sans effets d'arrière-plan. Tout simplement blanc. J'ai essayé de supprimer la bordure et l'arrière-plan, mais il y a cette bordure grise étrange qui reste au-dessus de la zone de texte.

entrez la description de l'image ici

Sous le mot "plaintes", il s'agit d'une zone de texte. J'ai tout enlevé mais cette ligne grise reste.

textArea.setStyle("-fx-background-color: #fff; -fx-border-color: #fff; -fx-border-width: 0; -fx-border-image-width: 0; -fx-background-image: null; -fx-region-background: null;-fx-border-insets: 0; -fx-background-size:0; -fx-border-image-insets:0;");
Author: Chux18, 2014-10-30

3 answers

Dans JavaFX 8, comme ceci:

.text-area {
    -fx-background-insets: 0;
    -fx-background-color: transparent, white, transparent, white;
}

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

.text-area:focused .content {
    -fx-background-color: transparent, white, transparent, white;
}

.text-area:focused {
    -fx-highlight-fill: #7ecfff;
}

.text-area .content {
    -fx-padding: 10px;
    -fx-text-fill: gray;
    -fx-highlight-fill: #7ecfff;
}
 3
Author: Ondrej Kvasnovsky, 2015-07-07 22:23:37

Le style réel appliqué à un TextArea se trouve dans le modène.fichier css. Si vous souhaitez remplacer l'une des propriétés css, vous devez rechercher toutes les classes de style et pseudo-classes possibles où elles apparaissent, puis toutes les séries de valeurs possibles (séparées par des virgules) pour une propriété donnée.

Pour la propriété background color, ce sont les valeurs par défaut:

.text-area {
    -fx-background-color: linear-gradient(to bottom, derive(-fx-text-box-border, -10%), -fx-text-box-border),
        derive(-fx-base,-1%);
}
.text-area .content {
    -fx-background-color:
        linear-gradient(from 0px 0px to 0px 4px, derive(-fx-control-inner-background, -8%), -fx-control-inner-background);
}
.text-area:focused .content {
    -fx-background-color: 
        -fx-control-inner-background,
        -fx-faint-focus-color,
        linear-gradient(from 0px 0px to 0px 5px, derive(-fx-control-inner-background, -9%), -fx-control-inner-background);
}

Donc, si vous voulez avoir une zone complètement blanche, sans frontières, ces valeurs doivent être remplacer par:

.text-area{
    -fx-background-color: #fff, #fff;
}

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

.text-area:focused .content {
    -fx-background-color: #fff;
}
 1
Author: José Pereda, 2014-10-30 12:21:54

, C'est probablement un peu tard, mais cela pourrait aider quelqu'un là-bas!

J'avais besoin d'utiliser la zone de texte JavaFX pour afficher du texte multiligne et je voulais le même look que vous décriviez: pas de bordures, juste du texte.

Voici le style que j'ai utilisé:

textArea.setStyle("-fx-focus-color: transparent; -fx-text-box-border: transparent;");
 1
Author: Marian, 2015-06-11 20:12:11