Définir l'Icône sur Scène en JavaFX
Je voulais savoir comment dois-je définir des icônes sur javaFX scène.
J'ai trouvé cette méthode, mais il ne fonctionne pas correctement.
stage.getIcons().add(new Image(iconImagePath));
scène est une instance de javafx.scène.Stade, et j'ai importé javafx.de la scène.image.Image.
C'est l'exception qui nous recevoir:
URL invalide: URL non Valide ou d'une ressource non trouvée
Aussi, il n'y a rien de mal avec le iconImagePath, sa valeur est "G:/test.jpg"
et il y a un fichier jpg dans le G lecteur nommé test. En outre, lorsque nous utilisons ImageIO de lire la même URL, nous pouvons le faire facilement.
G:/test.jpg
n'est pas une URL, si vous essayez avecfile:/G:/test.jpg
?- Connexes: stackoverflow.com/questions/10121991/javafx-2-application-icon/...
Vous devez vous connecter pour publier un commentaire.
Cet exemple fonctionne. J'ai placé une icône dans le même dossier/colis comme la source .fichier java.
Structure de répertoire
Les constructeurs de
javafx.scene.image.Image
s'attendre à une URI, pas un (complet) chemin d'accès. Cette URI peut être relative (par exemple,/images/flower.png
) ou absolue (par exemple,file:flower.png
).Des chaînes de caractères comme
G:/test.jpg
sont pas des Url valides et donc illégal.Essayer
file:g:/test.jpg
à la place.Généralement, les icônes doivent être fournis avec votre application, il suffit de mettre le fichier d'image dans votre classpath (par exemple, si vous utilisez eclipse, le mettre dans votre 'src' répertoire) et de l'utiliser comme ça:
Meilleure Façon:
utilisation
et de mettre l'image du logo.png à la racine de votre projet ( dans le même répertoire où src )
n'oubliez pas que votre icône doit être en
32x32
ou16x16
résolution, si non, ça ne fonctionne pas.J'ai connu le même problème. J'ai utilisé Netbeans. Je ne suis pas sûr si la structure des dossiers est différente pour les autres Ide, mais j'ai dû mettre l'image dans /build/classes/(package qui contient en Charge le fichier de classe). Cela signifie qu'il n'est pas aller dans le répertoire src.
Voici le code de travail, ce qui est exactement ce que vous neened:
Définir l'Icône par déclaration:
C'est ce que j'ai fait et cela fonctionne. L'image est situé dans la racine de mon dossier de ressources.
Je suis à l'aide de JavaFX 8
La solution est:
J'utilise netbeans 8.2, si j'utilise :
scène.getIcons().addAll(new Image(getClass().getResourceAsStream("home-icon32.png")));
Je dois mettre l'image dans le répertoire src. Je ne sais pas pourquoi, mais uniquement de cette façon. J'ai essayé de mettre dans build/classes, mais négatif.