Bordure et arrière-plan de JavaFX ScrollPane
j'ai quelques problèmes concernant l'arrière-plan et la bordure par défaut du ScrollPane. L'utilisation de ce style a rendu le problème plus clair à voir.
setStyle("-fx-background-color:blue; -fx-border-color:crimson;");
j'ai essayé ce style et je n'ai pas eu de chance seulement la bordure rouge a disparu et m'a laissé avec la bleue.
setStyle("-fx-background-color:blue; -fx-background-insets:0; -fx-border-color:crimson; -fx-border-width:0; -fx-border-insets:0;");
j'ai regardé ce vieux post JavaFX Cacher ScrollPane bordure grise et http://docs.oracle.com/javafx/2/ui_controls/editor.htm
Cette ligne de code ne fonctionne pas ni
scrollPane.getStyleClass().add("noborder-scroll-pane");
Merci
5 réponses
dans la version actuelle de JavaFX 8, Vous pouvez utiliser la classe de style edge-to-edge pour supprimer entièrement la bordure:
<ScrollPane styleClass="edge-to-edge"/>
j'ai trouvé une solution et j'aimerais la poster ici pour que les autres n'aient pas besoin de perdre leur temps à la retrouver.
en regardant le css par défaut de JavaFx (caspian.css) qui a été extrait de la bibliothèque en utilisant cette commande.
jar xf jfxrt.jar com/sun/javafx/scene/control/skin/caspian/caspian.css
j'ai pu voir que celui que j'ai manqué
-fx-padding: 0;
voici donc la classe css que j'utilise.
.scroll-pane {
-fx-background-insets: 0;
-fx-padding: 0;
}
.scroll-pane:focused {
-fx-background-insets: 0;
}
.scroll-pane .corner {
-fx-background-insets: 0;
}
Essayez d'utiliser cette première
.scroll-pane > .viewport {
-fx-background-color: transparent;
}
avant de définir la couleur de fond
il semble y avoir une solution simple, qui est d'utiliser " - fx-background: RGB (80,80,80);", c'est-à-dire,
scrollPane.setStyle("-fx-background: rgb(80,80,80);");
Au moins, cela fonctionne parfaitement pour moi, alors que "-fx-background-color: rgb(80,80,80);" ou "-fx-control-intérieure-fond: rgb(80,80,80);" ne fonctionne pas dans javafx 8. "- fx-background-color: rgb(80,80,80); " a fonctionné dans les versions précédentes de javafx.
Vous pouvez utiliser:
-fx-background-color: transparent;
-fx-control-inner-background: transparent;
Si vous ne définissez que -fx-background-color
, vous verrez que le changement de couleur est appliqué uniquement sur les bords intérieurs du ScrollPane, et la couleur de la zone centrale n'est toujours pas changée.
-fx-control-inner-background
propriété va changer la couleur de la zone centre.