Insérer une image dans une interface graphique Swing

Signaler
Messages postés
64
Date d'inscription
dimanche 19 octobre 2003
Statut
Membre
Dernière intervention
18 novembre 2004
-
Messages postés
3
Date d'inscription
lundi 24 avril 2006
Statut
Membre
Dernière intervention
25 septembre 2008
-
asx9

salut,
je ne sais pas comment on insert une images dans une interface graphique Swing. j'aimerai en positionner soit directement sur mon cadre soit sur un JPanel.
merci pour votre aide.

10 réponses

Messages postés
53
Date d'inscription
vendredi 12 septembre 2003
Statut
Membre
Dernière intervention
23 septembre 2005
1
pour afficher une image il faut creer un canvas a partir du fichier le code suivant ne fonctionne que pour les image gif et jpeg.

// on importe les classes dont on a besoin
import java.awt.*;
import java.awt.event.*;
import java.awt.Color;
import java.awt.Image;
import java.awt.Graphics;

/**
 * Definition de la classe ImageCanvas. Cette classe permet l'affichage
 * d'une image dont le contenu se treouve dans un fichier
 */

public class ImageCanvas
extends Canvas
{
  private Image img;

  /**
   * Constructeur vide d'un ImageCanvas
   */

  public ImageCanvas ()
  {
    img = null;
  }

  /**
   * Constructeur d'un ImageCanvas
   *
   * @param fichierImage Nom du fichier définissant l'image à afficher
   */

  public ImageCanvas (
    String fichierImage)
  {
    img = getToolkit().getImage(fichierImage);
  }

  /**
   * Affichage de l'ImageCanvas
   *
   * @param g contexte graphique
   */

  public void paint (
    Graphics g)
  {
    if (img == null)
    {
      super.paint(g);
      g.setColor(Color.black);
    }
    else
    {
      g.drawImage(img, 0, 0, this);
    }
  }

  /**
   * Récupération de la taille minimum de l'ImageCanvas
   */

  public Dimension getMinimumSize()
  {
    return new Dimension(img.getWidth(this), img.getHeight(this));
  }

  /**
   * Récupération de la taille préférencielle de l'ImageCanvas
   */

  public Dimension getPreferredSize()
  {
    return new Dimension(img.getWidth(this), img.getHeight(this));
  }

  /**
   * Récupération de l'image
   */

  public Image getImage()
  {
    return img;
  }

  /**
   * Affectation de l'image
   *
   * @param img Image à afficher
   */

  public void setImage(Image img)
  {
    this.img = img;
    repaint();
  }
}



j'espere que cela t'aideras. monimage sera du type imagecanvas.
Messages postés
489
Date d'inscription
vendredi 30 janvier 2004
Statut
Membre
Dernière intervention
13 mai 2009
3
tu pourra la positionner sur un JPAnel si tu redefinie sa methode paint(Graphics g){}
Messages postés
64
Date d'inscription
dimanche 19 octobre 2003
Statut
Membre
Dernière intervention
18 novembre 2004
1
asx9

j'ai une classe

public class PanelImage extends JPanel {

private Image image = new ImageIcon("ordi.gif").getImage();

public void paint (Graphics g) {
g.drawImage(image, 50, 50, 60, 60, null);
g = getGraphics();
}
}

et dans ma méthode principale je crée une instance de cette classe et j'affiche le JPanel

PanelImage monImage = new PanelImage();
this.getContentPane().add(monImage, new XYConstraints(50, 50, 50, 50));

mais ça ne marche pas, rien ne s'affiche
Messages postés
64
Date d'inscription
dimanche 19 octobre 2003
Statut
Membre
Dernière intervention
18 novembre 2004
1
asx9

mon pb était mon type de fichier image. je changeais l'extention .bmp en .jpg simplement en rennomant le fichier, mais ça ne marche pas comme ça, il faut créer un vrai fichier .jpg
Messages postés
64
Date d'inscription
dimanche 19 octobre 2003
Statut
Membre
Dernière intervention
18 novembre 2004
1
asx9

mon pb était mon type de fichier image. je changeais l'extention .bmp en .jpg simplement en rennomant le fichier, mais ça ne marche pas comme ça, il faut créer un vrai fichier .jpg
Messages postés
23
Date d'inscription
mardi 11 mai 2004
Statut
Membre
Dernière intervention
29 juillet 2005

Pour convertir une image bmp en jpg
:

using System;
using System.Drawing;
using System.Drawing.Imaging;
using System.IO;

string myPath=@"monimage.bmp";
Bitmap myBmp=new Bitmap(myPath);
ImageCodecInfo encoderJPEG = null;
foreach(ImageCodecInfo ici in ImageCodecInfo.GetImageEncoders())
{
if (ici.MimeType=="image/jpeg")
{
encoderJPEG=ici;
break;
}
}
if (encoderJPEG == null)
throw new InvalidOperationException("JPEG codec introuvable");
EncoderParameters epJPEG=new EncoderParameters(1);
long[] alQuality=new long[1];
alQuality[0]=2;
epJPEG.Param[0]=new EncoderParameter(Encoder.Quality, alQuality);

myBmp.Save(Path.ChangeExtension(myPath, ".jpg"), encoderJPEG, epJPEG);

Silvia
Messages postés
1
Date d'inscription
lundi 11 octobre 2004
Statut
Membre
Dernière intervention
8 novembre 2004

Salut,

quelle est la librairie a rajouter pour "using System;" ?
est ce que l'on doit faire une classe a part? ou on peut integrer cette partie ds notre classe?

merci pour ton aide

Céline
Messages postés
1
Date d'inscription
mardi 5 octobre 2004
Statut
Membre
Dernière intervention
22 avril 2005

salut,



je recherche un code qui permet de transformer une image tiff en jpg ou gif.

ou encore mieux d'afficher une image tiff, j'ai vu sur le site de sun qu'il y a
JavaTM Advanced Imaging mais je n'ai pas bien compris comment ca fonctionnait, si quelqu'un s'y connait un peu...

call me



merci d'avance

YoYo
Messages postés
22
Date d'inscription
mardi 4 mars 2008
Statut
Membre
Dernière intervention
12 juillet 2008

salut tout le monde!
j'ai besoin d'un code qui converti une image bmp en matrice ou bien la deviser en pixels.
stp quelqu'un m'aide.
Messages postés
3
Date d'inscription
lundi 24 avril 2006
Statut
Membre
Dernière intervention
25 septembre 2008

mazza vous souhaite bon courage