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;");

Image show the background and the border

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;");

Image show the background and the border after my best work around

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

11
demandé sur Community 2013-07-09 08:49:13

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"/>
22
répondu Mike Hearn 2015-03-31 19:02:56

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;
}
16
répondu PalmRobotZ 2013-07-09 05:13:48

Essayez d'utiliser cette première

.scroll-pane > .viewport {
   -fx-background-color: transparent;
}

avant de définir la couleur de fond

8
répondu Howard J 2016-03-24 13:24:53

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.

7
répondu user3477760 2014-03-30 12:21:15

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.

2
répondu RestInPeace 2016-08-01 14:00:49