Afficher une image sur jframe en java

sedhiara -  
sakoba2010 Messages postés 165 Statut Membre -
bonjour,

voilà, je veux afficher une image sur le jframe, dont voici le code que j'ai implementé
et le probl c'est que mon image ne s'affiche pas sur le jframe

import java.awt.Graphics;
import java.awt.Image;
import java.awt.Menu;
import java.awt.MenuBar;
import java.awt.MenuItem;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.image.BufferedImage;
import java.awt.image.ImageObserver;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;

import javax.imageio.ImageIO;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class Principale extends JFrame implements ActionListener,ImageObserver{
JPanel pan;
MenuBar bm;
Menu menu1,menu2;
MenuItem
ouvrir,fermer;
MenuItem
niveau_gris,convolution;
String name_file;
File file;

public Principale() {
bm = new MenuBar();
menu1 = new Menu("Fichier");
ouvrir = new MenuItem("ouvrir");
ouvrir.addActionListener(this);
menu1.add(ouvrir);
fermer = new MenuItem("fermer");
fermer.addActionListener(this);
menu1.add(fermer);
bm.add(menu1);
menu2 = new Menu("Elements");
niveau_gris = new MenuItem("niveau de gris");
niveau_gris.addActionListener(this);
menu2.add(niveau_gris);
convolution = new MenuItem("convolution");
convolution.addActionListener(this);
menu2.add(convolution);
bm.add(menu2);
this.setMenuBar(bm);
this.setTitle("manipulation d'image");
this.setSize(600,600);
this.setResizable(false);
this.setAlwaysOnTop(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setLocationRelativeTo(null);
this.setVisible(true);
}

public void actionPerformed(ActionEvent e){
JFileChooser fc = new JFileChooser();
if(e.getSource()== ouvrir){
int retournValeur = fc.showOpenDialog(getComponent(0));
if(retournValeur == JFileChooser.APPROVE_OPTION){
file = fc.getSelectedFile();
name_file =System.getProperty(file.getName());
}
if(e.getSource()==fermer){
System.exit(0);
}
}
}

public BufferedImage ouvertureFichier(String f){
try{
File inputFile = new File(f);
BufferedImage image = ImageIO.read(inputFile);
return image;
}catch(IOException e){
e.printStackTrace();
return null;
}
}

public void paintComponent(Graphics g){
BufferedImage image = ouvertureFichier(name_file);
g.drawImage(image, 0, 0, null);
}

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

}

}

1 réponse