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
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 ;
}
Cela fonctionne :
.corner {
-fx-background-color: #363636 ;
}