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;");
    }
}
Author: DVarga, 2016-05-28

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");
 7
Author: Jan Lochman, 2016-05-28 14:37:04

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

 2
Author: DVarga, 2016-07-01 16:03:34