Qu'est-ce que le chemin d'accès correct pour afficher une ImageIcon fichier png pour Windows 7?

J'ai voulu tester d'avoir un programme avec une simple image png. J'ai écrit un court programme qui fait ça, mais je n'arrive pas à obtenir le chemin à droite. J'ai contrôlé, vérifié, revérifié, et quadruple vérifié mon nom de chemin d'accès pour ne pas obtenir ce droit, mais cette image ne s'affichera pas, peu importe ce que je fais. J'ai utilisé un court de classe écrit par Oracle dans le ImageIcon de la documentation (le creaetImageIcon()) pour ce faire, mais il ne semble pas aider. Je vais poster l'intégralité du programme ci-dessous, car il est très court.

package practiceImages;

import java.awt.BorderLayout;
import java.awt.Toolkit;

import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;

public class ImageIconGUITest {

    public static void main(String[] args) {
        ImageIconGUITest gui = new ImageIconGUITest();
        gui.display();
    }

    private ImageIcon createImageIcon(String path, String description) {
        java.net.URL imgURL = getClass().getResource(path);
        if (imgURL != null) {
            return new ImageIcon(imgURL, description);
        } else {
            System.err.println("Couldn't find file: " + path);
            return null;
        }
    }

    private void display() {
        JFrame frame = new JFrame();
        JLabel label = new JLabel(createImageIcon(
                "Users/Evan/javaItems/Sprites_and_Other_Art/green.png", "the color green"));

        frame.add(BorderLayout.CENTER, label);
        frame.setSize(500, 500);
        frame.setVisible(true);
    }
}
Tout d'abord, vous avez fourni un chemin d'accès relatif, de sorte que le système est à la recherche de l'image par rapport à l'emplacement que vous avez exécuté le programme. Deuxièmement, le chemin d'accès doit disposer d'un lecteur spec ou au moins l'un des principaux /. Selon votre installation, quelque chose comme C:/Users/Evan/javaItems/Sprites_and_Other_Art/green.png devrait fonctionner (vous devrez peut-être modifier le lecteur spec pour répondre à votre système)
Pouvez-vous aller plus en détail sur un chemin relatif? Qu'est-ce que cela signifie? Aussi, l'ajout de l'unité spec nid pas de travail.
1 - assurez-vous que le fichier existe dans l'emplacement spécifié System.out.println(new File("C:/Users/Evan/javaItems/Sprites_and_Other_Art/green.png").exists()) doit retourner true, sinon le fichier est dans le mauvais endroit. 2 - Un chemin d'accès relatif signifie essentiellement un chemin d'accès de l'emplacement par rapport aux programmes d'exécution. Donc, si vous exécutez le programme à partir de C:/Program Files/MyAwesomeApplication par exemple, un chemin d'accès relatif de Users/Evan/javaItems/Sprites_and_Other_Art/green.png serait effectivement ressembler C:/Program Files/MyAwesomeApplication/Users/Evan/javaItems/Sprites_and_Other_Art/green.png
Vous pouvez tester cela en utilisant le Système..println(new File("C:/Users/Evan/javaItems/Sprites_and_Other_Art/green.png").getAbsolutePath())` qui vous donnera le chemin d'accès complet.
envie de poste comme une réponse.

OriginalL'auteur user2398233 | 2013-05-19