Probleme d'exécution de code java

Salut,
je créer ce code je trouve une problème ? aider moi a résoudre cette problème ?

import java.awt.BorderLayout.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.geom.AffineTransform;
import java.awt.image.AffineTransformOp;
import java.awt.image.BufferedImage;
import java.awt.*;

import javax.swing.*;
public class MonBouton {
public static void main(String argv[]) {
JFrame f = new JFrame("ma fenetre");
JPanel X = new JPanel();
X.setLayout(null); // rendre le latout nuul pour que setBound de boutton ca marche

Icon warnIcon = new ImageIcon ( "D:\\images.gif" ) ;
JButton ouvrir = new JButton ( warnIcon ) ;
//setBounds(int positionX, int positionY, int tailleX, int tailleY) xant la position sur l'écran ainsi que la taille.
ouvrir.setBounds(30, 50, 190, 60);
X.add ( ouvrir ) ;
ouvrir.addActionListener(null);

Icon warnIcon6 = new ImageIcon ( "D:\\images-photos-icone96.gif" ) ;
JButton quitter = new JButton ( warnIcon6 ) ;
quitter.setBounds(30, 330, 190, 60);
X.add( quitter );
quitter.addActionListener(null);

// les actions des boutton

public void actionPerformed(ActionEvent e) { ////////// le problème est dans cet ligne

if (e.getSource().equals(ouvrir))
{
// ouvrir une image

}
else if (e.getSource().equals(quitter))
{
// Faire la convolution mathématique suivant un masque donné

}
}

// option de la fenetre
f.add(X);
f.setBounds(0, 0, 950, 700) ;
f.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
f.setVisible(true);
}
}

6 réponses

  1. Merci pour l'aide, elle ca marche,
    maintenant il me reste une méthode qui me permet de changer la taille de l'image ( agrandir et minimiser) et une méthode pour rendre l'image noir blanc.
    0
  2. import java.beans.*;
    import java.io.File;
    import java.io.IOException;
    import javax.swing.*;

    import java.awt.*;
    import java.awt.event.*;
    import java.awt.geom.*;
    import java.awt.image.*;
    import java.text.*;
    import javax.imageio.ImageIO;
    import javax.swing.event.*;
    import javax.swing.filechooser.FileFilter;
    import javax.swing.filechooser.FileNameExtensionFilter;

    public class barre_action extends JFrame {
    private JToolBar barreBoutons = new JToolBar();
    private JFileChooser sélecteur = new JFileChooser("C:/Photos");
    private BufferedImage image ;
    private double réduction;
    private BufferedImage imageOriginale, source ;
    private Historique historique = new Historique();
    private JPanel editeur = new JPanel();

    public barre_action() {
    super("Les boîtes de dialogue");
    barreBoutons.add(new AbstractAction("Ouvrir", new ImageIcon("D:\\importer.gif")) {
    public void actionPerformed(ActionEvent e) {
    JFileChooser sélecteur = new JFileChooser();
    sélecteur.setFileFilter(new Filtre());
    if (sélecteur.showDialog(barre_action.this, "Sélectionner votre image")==JFileChooser.APPROVE_OPTION) {
    File fichier = sélecteur.getSelectedFile();
    setTitle(fichier.getPath());
    editeur.setIcon(new ImageIcon(fichier.getPath()));
    }
    }
    });
    barreBoutons.add(new AbstractAction("Enregistrer", new ImageIcon( "D:\\enregitrer.gif" )) {
    public void actionPerformed(ActionEvent e) {
    if (sélecteur.showSaveDialog(barre_action.this)==JFileChooser.APPROVE_OPTION) {
    try {
    File fichier = sélecteur.getSelectedFile();
    ImageIO.write((RenderedImage) image.getRaster(), "JPEG", fichier);
    }
    catch (IOException ex) {
    setTitle("Problème d'enregistrement de fichier");
    }
    }
    }
    });
    barreBoutons.add(new AbstractAction("Réglage", new ImageIcon( "D:\\reglage.gif" ))
    {
    public void actionPerformed(ActionEvent e) {

    }
    });
    barreBoutons.add(new AbstractAction("Zoomer", new ImageIcon( "D:\\zoomer.gif"))
    {
    public void actionPerformed(ActionEvent e) {
    String valeur = JOptionPane.showInputDialog("Nouvelle largeur de l'image ?", 1024);
    réduction = Double.parseDouble(valeur)/imageOriginale.getWidth();
    source = new BufferedImage((int)(imageOriginale.getWidth()*réduction), (int)(imageOriginale.getHeight()*réduction), imageOriginale.getType());
    AffineTransform retailler = AffineTransform.getScaleInstance(réduction, réduction);
    int interpolation = AffineTransformOp.TYPE_NEAREST_NEIGHBOR;
    AffineTransformOp retaillerImage = new AffineTransformOp(retailler, interpolation);
    retaillerImage.filter(imageOriginale, source);
    copieSourceImage();
    historique.ajout("changerTaille");
    }

    }
    );
    barreBoutons.add(new AbstractAction("img_principale", new ImageIcon( "D:\\img_principale.gif" ))
    {
    public void actionPerformed(ActionEvent e) {

    }
    });
    barreBoutons.add(new AbstractAction("Imprimer", new ImageIcon( "D:\\imprimer.gif"))
    {
    public void actionPerformed(ActionEvent e) {

    }
    });
    barreBoutons.add(new AbstractAction("Help", new ImageIcon( "D:\\Help.gif" ))
    {
    public void actionPerformed(ActionEvent e) {

    }
    });
    barreBoutons.add(new AbstractAction("Quitter", new ImageIcon( "D:\\quitter.gif" ))
    {
    public void actionPerformed(ActionEvent e) {

    }
    });
    add(editeur);
    barreBoutons.setBounds(0, 0, 800, 600);
    add(BorderLayout.NORTH, barreBoutons);
    setSize(400, 380);
    setDefaultCloseOperation(EXIT_ON_CLOSE);
    setVisible(true);
    }
    private void copieSourceImage() {
    this.image = new BufferedImage(source.getWidth(), source.getHeight(), source.getType());
    Graphics2D dessin = this.image.createGraphics();
    dessin.drawImage(source, null, null);
    repaint();

    }
    public void sauvegarder() throws IOException {
    BufferedImage transfert;
    String fichier = JOptionPane.showInputDialog("Nom du fichier ?", "image.jpg");

    if (historique.existe("changerTaille")) {
    transfert = new BufferedImage((int)(imageOriginale.getWidth()*réduction), (int)(imageOriginale.getHeight()*réduction), imageOriginale.getType());
    AffineTransform retailler = AffineTransform.getScaleInstance(réduction, réduction);
    int interpolation = AffineTransformOp.TYPE_BICUBIC;
    AffineTransformOp retaillerImage = new AffineTransformOp(retailler, interpolation);
    retaillerImage.filter(imageOriginale, transfert);
    } }
    private class Filtre extends FileFilter {
    @Override
    public boolean accept(File fichier) {
    return fichier.getName().toLowerCase().endsWith(".gif") || fichier.isDirectory();
    }

    @Override
    public String getDescription() {
    return "Images GIF";
    }
    }
    public static void main(String[] args) { new barre_action(); }

    }
    0
    1. Modérateur
      editeur est un JPanel or cette classe n'a pas de méthode setIcon.
      Tu dois pouvoir mettre dans editeur un JLabel, et utiliser la méthode setIcon sur celui-ci...
      0
  3. merci pour l'aide,
    SVP aussi si tu peut m'aider a corriger cette erreur,
    voila la ligne qui contient l'erreur
    -------------------------------------------------------------
    image.setIcon(new ImageIcon(fichier.getPath()));
    --------------------------------------------------------------
    voila le code d'erreur,

    The method setIcon(ImageIcon) is undefined for the type BufferedImage

    et si je clique sur l'aide il m'affiche ce code:
    -------------------------------------------------------------------
    ((AbstractButton) image).setIcon(new ImageIcon (fichier.getPath()));

    Merci
    0
    1. Modérateur
      Donne nous ton code, car on ne peut pas deviner ce qu'est image ou fichier...
      Que l'on sache au moins quels sont les types de ces deux objets...
      0
  4. Modérateur
    Tu n'as pas fermé l'accolade de la méthode main avant de définir actionPerformed
    La confiance n'exclut pas le contrôle
    0
    1. Bonjour,
      voila le code d'erreur qui s'affiche.

      Exception in thread "main" java.lang.Error: Unresolved compilation problems:

      void is an invalid type for the variable actionPerformed
      Syntax error on token "(", ; expected
      Syntax error on token ")", ; expected
      0
      1. Modérateur
        Bonjour

        si tu donnais le code d'erreur, ça aiderait
        0