Insérer une image dans une interface graphique Swing

asx9 Messages postés 64 Date d'inscription dimanche 19 octobre 2003 Statut Membre Dernière intervention 18 novembre 2004 - 18 mai 2004 à 10:45
cs_lipo59_60 Messages postés 3 Date d'inscription lundi 24 avril 2006 Statut Membre Dernière intervention 25 septembre 2008 - 25 sept. 2008 à 12:24
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

toffe12 Messages postés 53 Date d'inscription vendredi 12 septembre 2003 Statut Membre Dernière intervention 23 septembre 2005 1
18 mai 2004 à 18:16
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.
1
safisoft Messages postés 489 Date d'inscription vendredi 30 janvier 2004 Statut Membre Dernière intervention 13 mai 2009 6
18 mai 2004 à 16:27
tu pourra la positionner sur un JPAnel si tu redefinie sa methode paint(Graphics g){}
0
asx9 Messages postés 64 Date d'inscription dimanche 19 octobre 2003 Statut Membre Dernière intervention 18 novembre 2004 1
18 mai 2004 à 16:57
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
0
asx9 Messages postés 64 Date d'inscription dimanche 19 octobre 2003 Statut Membre Dernière intervention 18 novembre 2004 1
19 mai 2004 à 10:59
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
asx9 Messages postés 64 Date d'inscription dimanche 19 octobre 2003 Statut Membre Dernière intervention 18 novembre 2004 1
19 mai 2004 à 11:00
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
0
cs_silvia12 Messages postés 23 Date d'inscription mardi 11 mai 2004 Statut Membre Dernière intervention 29 juillet 2005
9 juin 2004 à 12:32
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
0
sailyned Messages postés 1 Date d'inscription lundi 11 octobre 2004 Statut Membre Dernière intervention 8 novembre 2004
8 nov. 2004 à 00:16
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
0
yoyohardcore Messages postés 1 Date d'inscription mardi 5 octobre 2004 Statut Membre Dernière intervention 22 avril 2005
22 avril 2005 à 16:05
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
0
cs_djaouida27 Messages postés 22 Date d'inscription mardi 4 mars 2008 Statut Membre Dernière intervention 12 juillet 2008
13 avril 2008 à 21:31
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.
0
cs_lipo59_60 Messages postés 3 Date d'inscription lundi 24 avril 2006 Statut Membre Dernière intervention 25 septembre 2008
25 sept. 2008 à 12:24
mazza vous souhaite bon courage
0
Rejoignez-nous