Imorter une image et l'afficher a partir d'un interface graphique java

Signaler
Messages postés
174
Date d'inscription
jeudi 10 avril 2008
Statut
Membre
Dernière intervention
22 avril 2012
-
 Utilisateur anonyme -
Bonjour,
j'ai créer ce code mais lorsque je choisir une image et cliquer sur ouvrir, elle ne s'affiche pas . voila le code et merci de m'aider, c très urgent.

import javax.swing.*;
import java.awt.*;
import javax.swing.JMenuBar;
import javax.swing.JMenu;
import javax.swing.JMenuItem;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.image.*;
import javax.imageio.*;
import java.io.*;

public class fen01 extends JFrame implements ActionListener{
private JButton bouton;
private JLabel label;
private TextField valeur;
private Scrollbar sc;
private JLabel label1;
private JLabel label2;
private JLabel image;
String f;
public fen01(){
super("");

build();//On initialise notre fenêtre


}

public void build(){
setTitle("debut du projet"); //On donne un titre à l'application
setSize(1200,900); //On donne une taille à notre fenêtre
//setLocationRelativeTo(null); //On centre la fenêtre sur l'écran
setResizable(false); //On permet le redimensionnement
setContentPane(buildContentPane( ));


//mise en place du menu

JMenuBar menuBar = new JMenuBar();

JMenu menu1 = new JMenu("Fichier");

JMenuItem ouvrir = new JMenuItem("Ouvrir");
ouvrir.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent eve){
JFileChooser fc = new JFileChooser();
int returnVal = fc.showOpenDialog
(fen01.this);

if(returnVal == JFileChooser.APPROVE_OPTION){


System.out.println(""+ fc.getSelectedFile().getName());

}}});

menu1.add(ouvrir);

JMenuItem enregistrer = new JMenuItem("Enregistrer");
enregistrer.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent eve){
JFileChooser fc = new JFileChooser();
int returnVal = fc.showSaveDialog
(fen01.this);
if(returnVal == JFileChooser.APPROVE_OPTION){

}}});

menu1.add(enregistrer);

JMenuItem fermer = new JMenuItem("Fermer");
menu1.add(fermer);
menu1.addSeparator();

JMenuItem quitter = new JMenuItem("Quitter");
menu1.add(quitter);
Ecouteur ec=new Ecouteur();
quitter.addActionListener(ec);

menuBar.add(menu1);

JMenu menu2 = new JMenu("Edition");

JMenuItem zoom = new JMenuItem("Zoomer");
menu2.add(zoom);

menuBar.add(menu2);

setJMenuBar(menuBar);


}



class Ecouteur implements ActionListener{
public void actionPerformed(ActionEvent e)
{

System.exit(0);
}
}

private JPanel buildContentPane(){
JPanel panel = new JPanel();
panel.setLayout(null);

label = new JLabel("Choisissez votre taux de compression:");
label.setBounds(330,510,300,25);
panel.add(label);

bouton = new JButton("OK");
bouton.addActionListener(new GereEditEvt());
bouton.setBounds(580,600,80,50);
panel.add(bouton);

JFileChooser fc = new JFileChooser();
//f=fc.getSelectedFile().getName();
//image = new JLabel(new ImageIcon("9personnes.jpg"));
image = new JLabel(new ImageIcon(fc.getSelectedFile().getName()));
image.setBounds(0,50,400,450);
panel.add(image);




label1 = new JLabel("0");
label1.setBounds(330,550,25,25);
panel.add(label1);

label2 = new JLabel("100");
label2.setBounds(870,550,25,25);
panel.add(label2);

sc=new Scrollbar(0,0,5,0,105);
//sc.setPreferredSize(new Dimension(500,20));

sc.setBounds(350,550,500,20);
panel.add(sc);
valeur = new TextField();
valeur.setText("T.C= "+ sc.getValue());
valeur.setEditable(true);

valeur.setBounds(800,600,75,25);
panel.add( valeur );


return panel;

}

/* public void paintComponent(Graphics g) {
// Appel à la méthode de la super-classe
// super.paintComponent(g);
// Dessin de l'image
g.drawImage(image, 0, 0, this);
}*/

public class GereEditEvt implements ActionListener{
public void actionPerformed(ActionEvent e)
{
valeur.setText("T.C= "+ sc.getValue());

}
}

public static void main(String[] args) {
//On crée une nouvelle instance de notre FenetreTexte
fen01 fenetre = new fen01();
fenetre.setVisible(true);//On la rend visible
}


public void actionPerformed(ActionEvent e) {
Object source = e.getSource();
}
}

4 réponses


Salut,

Utilises las balises pour le code la prochaine fois stp.

Le problème vient du fait que dans ta méthode buildContentPane() tu crées un objet fc en tant que JFileChooser.
Sauf que contrairement à ce que tu as fait plus haut dans ta méthode action performed, tu n'utilises ce JFileChooser. Donc fc.getSelectedFile().getName() renvoi rien car ce JFileChooser n'a pas été utilisé.

-- Pylouq : jongleur de clavier AZERTY et de clavier QWERTZ --
Messages postés
174
Date d'inscription
jeudi 10 avril 2008
Statut
Membre
Dernière intervention
22 avril 2012

Salut,

alors SVP comment je doit corriger cette problème et merci de m'aider, je besoin de la solution .

Bonjour

Pylouq t'a mis sur la piste, il suffit de se servir de l'exemple fourni dans la documentation Java tout en haut :
http://download.oracle.com/javase/6/docs/api/javax/swing/JFileChooser.html


















T.U.E.R yeah! vive java

En gros, tu refais dans ta fonction buildContentPane() la même chose quand dans ta fonction buil pour ton JFileChooer


-- Pylouq : jongleur de clavier AZERTY et de clavier QWERTZ --