Paint, MiniPaint, charger/ouvrir une image dans la zone de dessin...Jpanel, JFil

mel83160 Messages postés 1 Date d'inscription mercredi 30 mai 2007 Statut Membre Dernière intervention 14 avril 2009 - 14 avril 2009 à 19:32
Cornellus1985 Messages postés 22 Date d'inscription dimanche 26 avril 2009 Statut Membre Dernière intervention 7 juillet 2009 - 26 avril 2009 à 22:57
Bonjour, j'essai de faire un miniPaint en Java. Il a actuellement de nombreuses fonctionnalités. Aprés avoir créé un dessin, je l'enregistre(JFileChooser...). J'aimerais ensuite pouvoir recharger les images mais mon code n'affiche pas l'image et je ne sait pas le code qu'il est necessaire d'utiliser  Pourriez-vous m'aider?? je peux vous faire parvenir tout le code si besoin est...

Voici le code que j'ai pour l'instant pour l'ouverture:

Ouvrir.addActionListener(
   new ActionListener(){


   public void actionPerformed(ActionEvent evenement){


                    JFileChooser choix=new JFileChooser();
                     int retour=choix.showOpenDialog(null);
                      if (retour == JFileChooser.APPROVE_OPTION)
                           {
                  System.out.println("You chose to open this file: " + choix.getSelectedFile().getAbsolutePath());
                      }


                  File fichier = choix.getSelectedFile();//On crée un fichier à partir du chemin sélectionné dans le JFile Chooser
                 
                try {
                                      
                    Image image = ImageIO.read(fichier);
                  //????? je sais pas quoi mettre ici pour qu'il affiche


                } catch (IOException ex) {
                    Logger.getLogger(Dessinable.class.getName()).log(Level.SEVERE, null, ex);
                }
          }
        }
     );

Voila comment j'aivais fait pour l'enregistrement qui marche:

Enregistrer.addActionListener(
   new ActionListener(){
    public void actionPerformed(ActionEvent evenement){
            JFileChooser choix=new JFileChooser();
            int retour=choix.showSaveDialog(null);
            if (retour == JFileChooser.APPROVE_OPTION)
            {
             File fichier=choix.getSelectedFile();
                    try {
                        unDessin.save(fichier.getPath());
                    } catch (FileNotFoundException ex) {
                        Logger.getLogger(Dessinable.class.getName()).log(Level.SEVERE, null, ex);
                    } catch (IOException ex) {
                        Logger.getLogger(Dessinable.class.getName()).log(Level.SEVERE, null, ex);
                    }
                }
               }
        }
  );

 void save(String nomFichier) throws FileNotFoundException, IOException {





        BufferedImage buffImage = new BufferedImage( this.getWidth(), this.getHeight(), BufferedImage.TYPE_INT_RGB );
        Graphics2D gr = buffImage.createGraphics();



        this.paint(gr);
         OutputStream monfichier = null;



            try {



                String[] sélections = {"jpeg", "png", "bmp"};
String choix = (String)JOptionPane.showInputDialog(null,"Faites votre choix:","Format d'enregistrement",JOptionPane.QUESTION_MESSAGE,null,sélections,null);
if (choix.equals("jpeg")) {
ImageIO.write(buffImage, "jpeg", new File(nomFichier+".jpeg") );
}
else if (choix.equals("png")) {
ImageIO.write(buffImage, "png", new File(nomFichier+".png") );
}
else {
ImageIO.write(buffImage, "bmp", new File(nomFichier+".bmp") );
}



            }
        catch (Exception e) {
            System.out.println("erreur enregistrement image..." );
            e.printStackTrace();
            }



         }

1 réponse

Cornellus1985 Messages postés 22 Date d'inscription dimanche 26 avril 2009 Statut Membre Dernière intervention 7 juillet 2009
26 avril 2009 à 22:57
Mets cette methode dans ta classe Ouvrir :

protected Image getImage(String path) {
URL url = getClass().getResource(path);

if (url != null) {
return new Image(url);
}
else {
System.out.println("Couldn't find file : " + url);
return null;
}
}

tu l'utilises comme ca :
Image img = getImage(choix.getSelectedFile().getAbsolutePath());
0
Rejoignez-nous