Charger Image sur ActionPerformed

tib59 Messages postés 11 Date d'inscription mercredi 5 décembre 2007 Statut Membre Dernière intervention 11 avril 2008 - 23 déc. 2007 à 22:42
tib59 Messages postés 11 Date d'inscription mercredi 5 décembre 2007 Statut Membre Dernière intervention 11 avril 2008 - 25 déc. 2007 à 23:20
Bonjour je souhaiterais pouvoir charger une image lorsque je clique sur un boutton. J'arrive à afficher une fenetre lorsque je clique sur celui me permettant de naviguer à travailler mes fichiers une sorte d'explorer mais le probleme c'est que je n'arrive pas à charger l'image que j'ai selectionné pour qu'elle soit ensuite affiché dans mon JPanel .
J'ai essayé plusieurs méthodes mais sans resultats
Sinon si je n'arrive pas à selectionner parmi une liste je souhaiterais pouvoir afficher une image deja choisie.
Merci d'avance pour votre aide

5 réponses

Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 38
24 déc. 2007 à 19:16
Salut:

Pour charger une image:

public class ImageLoader {
    private String filename = null;

    public ImageLoader(String filename) {
       this.filename = filename;
    }

    public Image loadImage() {
       Toolkit toolkit = Toolkit.getDefaultToolkit();
       ImageIcon imageIcon = new ImageIcon(toolkit.getImage(filename));
       return imageIcon.getImage();
    }
}

Pour mettre une image comme arrière plan d'un JPanel:

public class BackgroundImage extends JPanel {
    private Image image = null;

    public BackgroundImage(String filename) {
       ImageLoader loader = new ImageLoader(filename);
       image = loader.loadImage();
    }

    @Override
    public void paintComponent(Graphics g) {
        if (image != null) {
            g.drawImage(image, 0, 0, this);
            super.paintComponent(g);
        }
    }
}
0
Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 38
24 déc. 2007 à 19:32
Salut:

Lorsque tu récupéres le nom du fichier à l'aide du composant JFileChooser, tu dois mettre en considération le fait que tu dois récupérer le chemin complet du fichier séléctionné.

Pour cela, tu dois procéder ainsi:

JFileChooser chooser = new JFileChooser();

FileNameExtensionFilter filter = new FileNameExtensionFilter("JPG & GIF Images", "jpg", "gif");

chooser.setFileFilter(filter);

int returnVal = chooser.showOpenDialog(null);

if(returnVal == JFileChooser.APPROVE_OPTION) {

    String filename = chooser.getSelectedFile().getAbsolutePath();
    // ...
}
0
Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 38
25 déc. 2007 à 09:19
Salut:

Vu que les objets de la classe JPanel sont invisibles il faut les rendre opaques.

public class BackgroundImage extends JPanel {
    private Image image = null;

    public BackgroundImage(String filename) {
       setOpaque(true);

       ImageLoader loader = new ImageLoader(filename);
       image = loader.loadImage();
    }

    @Override
    public void paintComponent(Graphics g) {
        super.paintComponent(g);

        if (image != null) {
            g.drawImage(image, 0, 0, this);
        }
    }
}
0
tib59 Messages postés 11 Date d'inscription mercredi 5 décembre 2007 Statut Membre Dernière intervention 11 avril 2008
25 déc. 2007 à 17:16
Merci beaucoup de ton aide Ombitious j'ai reussi à afficher mon image maintenant mais pour l'instant j'ai un probleme avec

if(returnVal == JFileChooser.APPROVE_OPTION)
{nom = chooser.getSelectedFile().getAbsolutePath();}
image=getToolkit().getImage(nom);

Graphics g=ardoise.getGraphics();
Dessiner dess=new Dessiner();
dess.(g,image);

et dans ma classe Dessiner j'ai ça

public void test(Graphics g,Image image)
{g.drawImage(image,0,0,this);}

J'ai aucun probleme au niveau de la compilation mais il n'arrive pas a afficher l'image. Je pense que le probleme viens de  nom = chooser.getSelectedFile().getAbsolutePath();
parce que quand je mets le nom d'un fichier image qui est dans le meme repertoire que ma class cela marche correctement
mais je ne vois pas pourquoi
voila merci d'avance
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
tib59 Messages postés 11 Date d'inscription mercredi 5 décembre 2007 Statut Membre Dernière intervention 11 avril 2008
25 déc. 2007 à 23:20
c'est bon ca marche en faite il faut pour l'instant que je fasse 2 fois de suite appel à JFileChooser chooser = new JFileChooser() pour que mon image s'affiche. La premiere mon panel reste blanc et la deuxieme mon image s'affiche c'est bizare
Merci à toi Ombitious pour ton aide
0
Rejoignez-nous