Je ne peux pas changer la couleur du coin d'un ScrollPane dans JavaFX


Mon code CSS pour cela ressemble à ceci mais cela ne fonctionne toujours pas. scrollpane?

.scroll-pane:corner > .viewport {

-fx-background-color : #191A19;

}

Y a-t-il un problème avec ma syntaxe ou le problème de port de vue entier ne me permet-il pas de modifier tout autre aspect du

Author: user3211415, 2014-04-24

2 answers

Votre sélecteur css est faux.

.scroll-pane:corner

Sélectionne les nœuds avec la classe "scroll-pane" qui ont un état de pseudo-classe "corner" activé. Selon la documentation css , le volet de défilement n'a pas de pseudoclasse "d'angle".

.scroll-pane:corner > .viewport

Sélectionnerait un nœud avec la classe "viewport" qui avait un nœud parent (immédiat) avec la classe "scroll-pane" et avec ce nœud parent ayant l'état pseudoclass "corner" activé. Donc, si quoi que ce soit, vous sélectionneriez la fenêtre ici.

Le css dont vous avez besoin est

.scroll-pane > .corner {    
    -fx-background-color: #191A19 ;
}

Peut-être jeter un oeil à un tutoriel à usage général sur les sélecteurs css, comme celui à w3schools

Mise à Jour exemple complet:

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.ScrollPane;
import javafx.scene.control.ScrollPane.ScrollBarPolicy;
import javafx.scene.control.TextArea;
import javafx.scene.layout.BorderPane;
import javafx.stage.Stage;

public class ScrollPaneStyledCorner extends Application {

    @Override
    public void start(Stage primaryStage) {
        BorderPane root = new BorderPane();
        ScrollPane scrollPane = new ScrollPane();
        scrollPane.setPrefHeight(200);
        scrollPane.setPrefWidth(200);

        TextArea textArea = new TextArea(System.getProperty("javafx.version"));
        scrollPane.setContent(textArea);
        scrollPane.setVbarPolicy(ScrollBarPolicy.ALWAYS);
        scrollPane.setHbarPolicy(ScrollBarPolicy.ALWAYS);
        root.setCenter(scrollPane);

        Scene scene = new Scene(root);
        scene.getStylesheets().add(getClass().getResource("scrollPaneCorner.css").toExternalForm());
        primaryStage.setScene(scene);
        primaryStage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }
}

ScrollPaneCorner.css:

.scroll-pane > .corner {    
    -fx-background-color: #191A19 ;
}

entrez la description de l'image ici

 6
Author: James_D, 2014-04-25 00:39:58

Cela fonctionne :

.corner {    
    -fx-background-color: #363636 ;
}
 1
Author: Andrey Yurzanov, 2015-12-12 16:32:49