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. Modérateur
    Bonjour

    si tu donnais le code d'erreur, ça aiderait
    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
        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. 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
        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, 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