Je veux ouvrir une image en java et l'afficher.

andresgc12 Messages postés 3 Date d'inscription   Statut Membre Dernière intervention   -  
andresgc12 Messages postés 3 Date d'inscription   Statut Membre Dernière intervention   -

Bonjour,

Je veux ouvrir une image en java et l'afficher.

comment ouvrir une image après l'avoir sélectionnée? 
Voici mon code: 

import java.awt.Desktop;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.image.BufferedImage;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileFilter;
import java.io.FileReader;
import java.io.IOException;

import javax.imageio.ImageIO;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.filechooser.FileNameExtensionFilter;

public class Fenêtre  extends JFrame implements ActionListener {
    
    public Fenêtre() {
        super("fENETRE");
        setSize(300,200);
        pack();
        setVisible(true);
        {
            JFrame frame = new JFrame("Hello World");
            JPanel panel = new JPanel();
            BufferedImage image = null;

            // Définir le menu principal
            JMenuBar menu = new JMenuBar();
            JMenu file = new JMenu("Fichir");
            JMenu edit = new JMenu("Edition");
            JMenu help = new JMenu("Aide");
             
            // Définir le sous-menu pour Fichier
            JMenuItem newf = new JMenuItem("Nouveau");
            JMenuItem ouvrir = new JMenuItem("Ouvrir");
              ouvrir.addActionListener(new ActionListener() {
                  
                  public void actionPerformed(ActionEvent e) {
                      File[] selectedFiles = null;

                      JFileChooser chooser = new JFileChooser(".");
                      chooser.showOpenDialog(null);
                      chooser.setCurrentDirectory(new File("."));
                      chooser.setMultiSelectionEnabled(true);
                      int option = chooser.showOpenDialog(null);

                      if (option == JFileChooser.APPROVE_OPTION) 
                          selectedFiles = chooser.getSelectedFiles();
                      
                      try {
                        BufferedImage imagenAbrir = ImageIO.read(chooser.getSelectedFile());
                    } catch (IOException e1) {
                        // TODO Auto-generated catch block
                        e1.printStackTrace();
                    }
  
                      
}}
               );


              

                
            JMenuItem save = new JMenuItem("Enregistrer");

            file.add(newf);
            file.add(save);
            file.add(ouvrir);
             
            menu.add(file);
            menu.add(edit);
            menu.add(help);
             
            frame.setLayout(new GridLayout(5, 1));

            frame.add(menu);
            frame.add(panel);
            frame.pack();
            frame.setSize(300, 200);
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            frame.setVisible(true);
            
        
        
        }


    }
    
    public static void main(String[] args) { 
        new Fenêtre();    
    }

    public void actionPerformed(ActionEvent e) {
        System.out.print("test");    
    }
}
A voir également:

3 réponses

KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 

Bonjour,

J'ai adapté ton code pour lire et afficher une image, j'en ai profité pour corriger quelques bugs :

package ccm.kx;

import javax.imageio.ImageIO;
import javax.swing.*;
import java.awt.*;
import java.io.File;
import java.io.IOException;

public class Fenetre {

    public Fenetre() {
        JFrame frame = new JFrame("Hello World");

        // Définir le menu principal
        JMenuBar menu = new JMenuBar();
        JMenu file = new JMenu("Fichir");
        JMenu edit = new JMenu("Edition");
        JMenu help = new JMenu("Aide");

        // Définir le sous-menu pour Fichier
        JMenuItem newf = new JMenuItem("Nouveau");
        JMenuItem ouvrir = new JMenuItem("Ouvrir");

        JFileChooser chooser = new JFileChooser(".");

        Component imageComponent = new Component() {
            @Override
            public void paint(Graphics g) {
                super.paint(g);
                try {
                    File selectedFile = chooser.getSelectedFile();
                    if (selectedFile != null && selectedFile.exists()) {
                        Image image = ImageIO.read(selectedFile);
                        setSize(image.getWidth(this), image.getHeight(this));
                        g.drawImage(image, 0, 0, this);
                    }
                } catch (IOException e1) {
                    e1.printStackTrace();
                }
            }
        };

        ouvrir.addActionListener(e -> {
            chooser.setCurrentDirectory(new File("."));
            int option = chooser.showOpenDialog(null);
            if (option == JFileChooser.APPROVE_OPTION) {
                imageComponent.repaint();
            }
        });

        JPanel panel = new JPanel();
        panel.setLayout(new BorderLayout());
        panel.add(imageComponent, BorderLayout.CENTER);

        JMenuItem save = new JMenuItem("Enregistrer");

        file.add(newf);
        file.add(save);
        file.add(ouvrir);

        menu.add(file);
        menu.add(edit);
        menu.add(help);

        frame.add(menu, BorderLayout.NORTH);
        frame.add(panel, BorderLayout.CENTER);
        frame.setSize(600, 600);

        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);
    }

    public static void main(String[] args) {
        new Fenetre();
    }
}

0
andresgc12 Messages postés 3 Date d'inscription   Statut Membre Dernière intervention  
 

Bonjour, merci de ta réponse. En fait, il y a des erreurs quand j'ai copié ton code, mais j'ai corriger les erreurs, sauf que ça fonctionne pas. Voici mon code: 

import java.awt.Component;
import java.awt.Desktop;
import java.awt.Graphics;
import java.awt.GridLayout;
import java.awt.Image;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.image.BufferedImage;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileFilter;
import java.io.FileReader;
import java.io.IOException;

import javax.imageio.ImageIO;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.filechooser.FileNameExtensionFilter;

public class Fenêtre  extends JFrame implements ActionListener {
    
    public Fenêtre() {
        super("fENETRE");
        setSize(300,200);
        pack();
        setVisible(true);
        {
            JFrame frame = new JFrame("Hello World");
            JPanel panel = new JPanel();
            BufferedImage image = null;

            // Définir le menu principal
            JMenuBar menu = new JMenuBar();
            JMenu file = new JMenu("Fichir");
            JMenu edit = new JMenu("Edition");
            JMenu help = new JMenu("Aide");
             
            // Définir le sous-menu pour Fichier
            JMenuItem newf = new JMenuItem("Nouveau");
            JMenuItem ouvrir = new JMenuItem("Ouvrir");

            final Component imageComponent = new Component() {
                
                public void paint(Graphics g) {
                    super.paint(g);
                    try {
                        JFileChooser chooser = new JFileChooser(".");
                        File selectedFile = chooser.getSelectedFile();
                        if (selectedFile != null && selectedFile.exists()) {
                            Image image = ImageIO.read(selectedFile);
                            setSize(image.getWidth(this), image.getHeight(this));
                            g.drawImage(image, 0, 0, this);
                        }
                    } catch (IOException e1) {
                        e1.printStackTrace();
                    }
                }
            };
              ouvrir.addActionListener(new ActionListener() {
                  
                  public void actionPerformed(ActionEvent e) {
                      File[] selectedFiles = null;

                      JFileChooser chooser = new JFileChooser(".");
                      chooser.showOpenDialog(null);
                      
                      chooser.setCurrentDirectory(new File("."));
                      int option = chooser.showOpenDialog(null);
                      if (option == JFileChooser.APPROVE_OPTION) {
                          imageComponent.repaint();
                      }

}}
               );


              

                
            JMenuItem save = new JMenuItem("Enregistrer");

            file.add(newf);
            file.add(save);
            file.add(ouvrir);
             
            menu.add(file);
            menu.add(edit);
            menu.add(help);
             
            frame.setLayout(new GridLayout(5, 1));

            frame.add(menu);
            frame.add(panel);
            frame.pack();
            frame.setSize(300, 200);
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            frame.setVisible(true);
            
        
        
        }


}
    
public static void main(String[] args) { 
new Fenêtre();    
}


}
 

0
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 

 En fait, il y a des erreurs quand j'ai copié ton code, mais j'ai corriger les erreurs, sauf que ça fonctionne pas. 

Mon code fonctionne, je l'ai testé, si tu as des erreurs il faudrait savoir lesquelles (tu utilises une ancienne version de Java peut être ?)

Si tu "corriges" les erreurs (d'un programme qui fonctionne...) et que tu as toujours des erreurs, c'est que c'est mal corrigé.

0
andresgc12 Messages postés 3 Date d'inscription   Statut Membre Dernière intervention  
 

Merci,. Le prolblème était la version de java

0