Style de classe css JavaFX
Comment puis-je définir un style CSS pour une classe qui étend un objet JavaFX?
public class DiagramPane extends ScrollPane implements IDiagramEditor {
// .... Methods go here
}
J'ai essayé les méthodes suivantes dans la méthode principale:
public class DiagramPane extends ScrollPane implements IDiagramEditor {
DiagramPane() {
this.setStyle("-fx-background-color: #f8ecc2;-fx-font-size: 8pt;");
setStyle("-fx-background-color: #f8ecc2;-fx-font-size: 8pt;");
}
}
2 answers
Ajoutez ces lignes à votre fichier css
.diagram-pane {
-fx-background-color: #f8ecc2;
-fx-font-size: 8pt;
}
Et définir DiagramPane
instance pour utiliser diagram-pane
classe de style
diagramPane.getStyleClass().clear();
diagramPane.getStyleClass().add("diagram-pane");
Une des possibilités est ce que vous avez mentionné à l'utilisation de setStyle méthode de Nœud.
public class MyScrollPane extends ScrollPane {
public MyScrollPane(){
setStyle("-fx-background-color: blue;");
}
}
Une Autre possibilité d'utiliser une feuille de style CSS
Celui-ci est l'approche suggérée, car il sépare totalement le style CSS du code Java.
Remarque: MyScrollPane.css
est placé dans le même répertoire que la classe elle-même.
MyScrollPane.java
public class MyScrollPane extends ScrollPane {
public MyScrollPane(){
getStylesheets().add(getClass().getResource("MyScrollPane.css").toExternalForm());
}
}
Dans cette feuille de style, vous pouvez remplacer Les classes CSS du ScrollPane comme:
MyScrollPane.css
.scroll-pane {
-fx-background-color: red, white;
-fx-background-insets: 0, 2;
-fx-padding: 2.0;
}
Pour vérifier quelles classes existent pour le volet de défilement dans JavaFX, vous pouvez lire le caspian.css . La classe de base pour ScrollPane
est .scroll-pane
.
Vous pouvez également définir de nouvelles classes CSS et les ajouter à votre ScrollPane
:
public class MyScrollPane extends ScrollPane {
public MyScrollPane(){
getStylesheets().add(getClass().getResource("MyScrollPane.css").toExternalForm());
getStyleClass().add("red-border");
}
}
Et en CSS
.red-border {
-fx-background-color: red, white;
-fx-background-insets: 0, 2;
-fx-padding: 2.0;
}
Pour en savoir plus sur le style CSS dans JavaFX: http://docs.oracle.com/javafx/2/css_tutorial/jfxpub-css_tutorial.htm
Aussi vous pouvez consultez le guide de référence CSS pour JavaFX: https://docs.oracle.com/javafx/2/api/javafx/scene/doc-files/cssref.html