Ouvrir image dans une fenêtre

Fermé
parousky Messages postés 325 Date d'inscription mardi 11 septembre 2012 Statut Membre Dernière intervention 20 février 2022 - 6 nov. 2013 à 19:31
parousky Messages postés 325 Date d'inscription mardi 11 septembre 2012 Statut Membre Dernière intervention 20 février 2022 - 7 nov. 2013 à 11:38
Bonjour, je suis débutant en java et je voudrais créer des classes permettant l'ouverture d'une fenêtre affichant une image que j'aurai sélectionné. Alors j'ai créé une classe Ecran qui va se charger de l'ouverture de la fenêtre et une classe Fond qui va traduire ce qui se trouvera dans cette fenêtre. Alors voilà les codes de ces classes :

Ecran :

import javax.swing.JFrame;
import java.awt.Color;

public class Ecran extends JFrame
{
public Ecran()
{
this.setSize(300,300);
this.setTitle("Cards");
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setLocationRelativeTo(null);
this.setContentPane(new Fond());
this.setVisible(true);
}
}


Fond :

import java.awt.Graphics;
import javax.swing.JPanel;
import java.awt.Image;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;

public class Fond extends JPanel
{

public void paintComponent(Graphics g){
try {
Image img = ImageIO.read(new File("images.jpg"));
g.drawImage(img, 0, 0, this);
} catch (IOException e) {
e.printStackTrace();
}
}

}


Mais je ne sais pas réellement quoi écrire pour faire apparaître l'image que je veux, parce qu'avec cette classe Fond, le fichier cherché sera "images.jpg". Mais ce fichier seul ne peut pas exister puisque les images s'appellent toujours C:\Users\pictures..... Alors imaginons j'ai un fichier qui s'appelle "Chien.png" dont le chemin est C:\Users\pictures\Chien.png, quel code dois-je écrire ?
Merci d'avance pour vos réponses !
A voir également:

2 réponses

KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
6 nov. 2013 à 21:54
Si tu mets "images.jpg" tout seul, le fichier sera cherché avec un chemin relatif.
Celui-ci est plus ou moins à la racine de ton projet Java selon ta configuration.

En revanche si tu mets expressément "C:" cela va cherché le fichier en chemin absolu. Dans ce cas en Java tu peux écrire
new File("C:\\Users\\...")
en doublant les \ vu que c'est un caractère spécial. Cependant en Java on préconise plutôt d'utiliser des / pour avoir
new File("C:/Users/...")
. Dans les deux cas ça marchera.

On peut aussi faire plus compliqué et manipuler des images que tu aurais mis à l'intérieur du jar qui contient tes classes, mais je ne penses pas que tu en ai besoin ici.
0
parousky Messages postés 325 Date d'inscription mardi 11 septembre 2012 Statut Membre Dernière intervention 20 février 2022 6
7 nov. 2013 à 11:38
D'abord merci beaucoup ça marche très bien ! Ensuite, le truc avec .jar m'intéresse quand même si ! Puisque j'aimerai pouvoir faire tourner mon programme sur n'importe quel ordinateur sans avoir besoin d'insérer l'image en question dans les documents de l'utilisateur. Alors il existe un moyen pour "insérer" une image dans le code d'une classe pour que le programme ne cherche plus dans les documents utilisateur mais directement dans son propre code ?
Je ne suis peut-être pas très bien exprimé mais j'espère que tu auras bien cerné ma question !
0