ajout de fichier css aux feuilles de style dans javafx
Langue: JavaFX
IDE: Netbeans
Problème: j'essaye d'ajouter un fichier css dans la feuille de style, mais la première ligne de code suivant génère toujours un NullPointerException
:
String css = this.getClass().getResource("double_slider.css").toExternalForm();
scene.getStylesheets().add(css);
J'ai essayé de remplacer "double_slider.css" avec le chemin complet. double_slider.css est actuellement situé dans le même package que la classe qui fait cet appel. J'ai aussi essayé toutes les variations trouvées à http://introjava.wordpress.com/2012/03/21/linking-a-css-style-sheet-to-javafx-scene-graph/sans succès. Nettoyer et créer n'aide pas non plus.
Si je place le fichier css dans le dossier de création où l' .les fichiers de classe sont sous-évaluées, le NullPointerException s'en va. Mais alors le fichier css ne fonctionne pas correctement car il fait référence à d'autres fichiers dans mon projet.
source d'informationauteur Danielle | 2012-12-19
Vous devez vous connecter pour publier un commentaire.
Je pense que votre manque les barres obliques, ce qui provoque que le fichier CSS ne peut pas être trouvé. Essayer de corriger votre trajectoire de référence.
Par exemple:
serait:
mettre votre
yourname.css
fichier directement sous src répertoire.propre et construire requis
J'ai eu le même problème. J'utilise NetBeans 7.3 et JavaFX 2.2.7, JDK 7.0_21 sur Win7.
Ma solution a été de placer l' .css dans le MÊME dossier que mon fichier Java contenant void start(Étape). Ainsi, le Projet vue ressemble à ceci:
(De sorte que le fichier CSS est DANS le paquet, que je trouve vraiment bizarre et contraintuitive. Un peu de doc m'a dit de le mettre à la racine du projet, de sorte qu'il pourrait être trouvé lors de l'exécution, mais cela ne fonctionne pas pour moi, au nouveau-brunswick. Mon application s'exécute indépendamment de savoir si je démarre le fichier contenant "démarrer(..)" en appuyant sur Ctrl+U ou en cliquant sur Exécuter dans le menu contextuel du projet. Et ce n'est pas grave si je laisse NB de tout mettre dans un POT ou pas.)
Voici le code qui charge le CSS dans la situation ci-dessus:
Alors que cela n'a pas fonctionné:
Espère que cette aide.
J'ai eu le même problème (dans NetBeans 8). J'ai trouvé une solution ici : https://blog.idrsolutions.com/2014/04/use-external-css-files-javafx/
Mon fichier de ressources de calcul.css est ici :
Dans mainView.java :
Espère que cette aide.
Vous pouvez ajouter à votre style.css directement dans votre .fichier fxml comme un attribut à la racine de votre élément de cette feuilles de style="@your_relative_path/style.css".
Vous pouvez utiliser @../style.css si vous voulez accéder au fichier css qui est dans le dossier src
Hmmm, êtes-vous sur Netbeans? Essayez de "Nettoyer et créer" le projet.
Vous avez initialisé la scène de l'objet avant l'établissement de la feuille de style?
scène = nouvelle Scène(myRootLayout, 600, 600); //par exemple
C'est très simple.
C'est ce qui a fonctionné pour moi-
Compte tenu de votre ancien code:
Essayez de la remplacer par ce nouveau code et cela fonctionne:
Lorsque vous utilisez
getClass()
vous n'avez pas besoin d'utiliserthis
mot-clé.J'espère que ce travail pour vous. 🙂
dans votre fichier .java utiliser cette
Structure De Dossier
Dans le MedicalLibraryFx.java
Structure de dossier lors de la css est dans le même répertoire que contrôleur de