Définir un chemin relatif de l'image en Java FX
Je sais que cela a été demandé de nombreuses fois et j'ai cherché un peu partout pour qu'une solution c'est probablement ce problème simple. Je suis en train de suivre le simple javaFX composant tutoriels sur Oracle du site web. Je peux définir une image de cette façon:
Image img = new Image("images/portal.png", 50, 50, true, true);
Cela fonctionne lorsque l'image est dans un dossier à l'intérieur de l' "src" le dossier, mais je suis en train de le faire pour trouver l'image, quand j'ai le dossier de l'image à l'extérieur de l' "src" le dossier, comme ceci:
http://puu.sh/drF7K/bbf1a047aa.png
Comment puis-je faire ce travail? Tout ce que je reçois sont des erreurs en disant: "URL non Valide ou d'une ressource non trouvée". J'ai essayé d'utiliser le chemin absolu, essayé de mettre ".." en face de lui, essayé de "SH-Graphique/images/portal.png" et tout inbetween 🙁 Merci!!!!
Je ne suis pas sûr de ce que tu veux dire, pourquoi cela ferait-il une différence? Il reste toujours le résultat dans une chaîne de caractères avec le même texte, comme dans mon cas.
Utiliser un Fichier fichier = new File("portail.png"); if (fichier.exists()) Chaîne tdir = afile.getAbsolutePath(); ou vous pouvez utiliser le fichier.tour (ou ce que vous avez besoin. Est que est utile?
Eh bien, il ne fonctionne pas :(. fichier.exists() est faux. Il ne trouve pas mon fichier. Il doit y avoir certainement une façon simple de définir des chemins d'accès relatifs qui sont à l'extérieur de votre dossier src! Je veux dire, il a travaillé dans la nappe de! Merci pour votre aide...
Que vous ne pouvez pas trouver le fichier est votre tâche. Lire la JavaDoc sur java.io.Fichier. Vous êtes seulement à la recherche dans le répertoire courant. Vous avez besoin de marcher à travers le système de fichiers pour trouver le répertoire de racine, ou tout ce qui est pertinent à votre environnement. Vous pouvez être en mesure de rechercher ici ou google pour les fichiers de marche, etc. pour avoir une idée de comment le faire. Si le fichier est dans votre système de fichiers, vous pouvez le trouver.
OriginalL'auteur Zorobay | 2014-12-12
Vous devez vous connecter pour publier un commentaire.
Je vais répondre à ma propre question que j'ai en fait trouvé une solution à ce! Ma solution est d'utiliser le menu "fichier:" préfixe lors de la spécification d'un chemin. Donc:
Fonctionne parfaitement lorsque le fichier d'image est à l'extérieur de mon src dossier!
Êtes-vous à l'aide de Windows? J'ai juste essayé de nouveau et il fonctionne très bien. Avez-vous de placer votre image de dossier en dehors du dossier du projet?
Ok je Vais essayer Merci pour la Réponse
Bizarre. Je l'ai fait et maintenant, je suis un fou d'erreur dans la console juste en permanence clignote. En fait je ne peux même pas copier car il est vacillante.
Trop de travail si vous l'utilisez sur un .fxml au lieu de
url="@../../../../resources/iconfinder_heartbeat_1930261.png"
url="file:resources/iconfinder_heartbeat_1930261.png"
OriginalL'auteur Zorobay
Je pense que vous sont en cours d'exécution dans des questions parce que le dossier d'Images est en dehors de la portée de votre projet. Vous pourriez envisager de modifier la structure de votre projet.
Ex:
Alors vous devriez être en mesure d'accéder à votre image avec le chemin d'accès ./src/main/resources/images/portal.png
Mais le dossier ne fait PAS partie du classpath par conséquent, il ne peut pas être trouvé lors de l'exécution
Afin de vous dire qu'il n'y a aucun moyen de le faire de la même manière que je le veux? Je dois mettre mes images, audio, vidéo et ce n'est pas à l'intérieur de mon dossier src?
OriginalL'auteur EricF
Permettez-moi d'essayer de le mettre de cette façon;
Si vous voulez utiliser l'image contenue dans le répertoire différent, il est préférable de spécifier son chemin d'accès relatif. Exemple si j'ai été à la recherche pour le portail de l'image sur mon ImageFile. Je vais faire comme suit:
C
lecteur, et de plus certainement pas avoir le même nom d'utilisateur de la machine. C'est mieux pour accéder au dossier de l'utilisateur viaSystem.getProperty("user.home")
, mais même alors, le programme aurait pour stocker toutes ses ressources (qui n'est pas rare, mais la restriction n'est pas toujours de préférence)j'ai essayé cette suggestion de l'Image img = new Image("fichier:images/portail.png"); " mais il ne fonctionne pas pour moi thast pourquoi je n'ai utilisé qu'
Son image était dans son dossier de projet, tandis que votre exemple montre l'image sur le bureau (et pas dans le dossier du projet). Placer votre image dans le projet (dans un dossier nommé
images
) et essayez à nouveau. Sa question est à propos de l'image n'étant pas enProjectName/src
, mais il a encore dansProjectName/images
.Je l'ai mis je nomduprojet/src ça ne fonctionne pas
Il doit être dans
ProjectName/images
. Ilfile:
partie indique au programme le chemin d'accès fait référence à un fichier dans le projet. Ensuite, il suit cela avecimages/...
qui nous dit qu'il est dans le dossier images. La question est à propos du chargement des images que ne sont pas dans lesrc
dossier (dossier source). Si vous aviez 25 rep, je pourrais vous inviter à un chat pour expliquer plus en détail. Modifier certains postes (+2 rep à chaque fois qu'il est approuvé), de corriger cette réponse si elle justifie d'un vote (ne pas utiliser des chemins absolus).OriginalL'auteur eLi