IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AWT/Swing Java Discussion :

bleme pour afficher une image avec swing


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Février 2006
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 28
    Par défaut bleme pour afficher une image avec swing
    bsr
    ben j ai un probleme lors de l affichage de plusieur image dans une Jframe ,
    en effet est ce que ça a relation avec toolkit ki ne peu supporter k une seule image ou koi,,?



    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    import javax.swing.border.*;
    import java.util.*;
    import java.io.*;
    import com.sun.jdi.event.Event;


    class ImageComponent extends JComponent {
    Image image;
    Dimension size;
    int X;
    int Y;
    int width;
    int height;
    public ImageComponent(Image image,int i,int j,int width,int height) {
    X=i;
    Y=j;
    this.width=width;
    this.height=height;
    this.image = image;

    MediaTracker mt = new MediaTracker(this);
    mt.addImage(image, 0,width,height);
    try {
    mt.waitForAll();
    } catch (InterruptedException e) {
    System.out.println("");
    }
    ;
    size = new Dimension(image.getWidth(null),
    image.getHeight(null));
    setSize(size);
    }
    public void paint(Graphics g) {
    g.drawImage(image,X,Y,width,height, this);
    }

    public Dimension getPreferredSize( ) {
    return size;
    }

    public static void main (String[] args) {

    JFrame w = new JFrame("Essai");
    w.setSize(1000,375); //On donne une taille à notre fenêtre
    w.setLocationRelativeTo(null); //On centre la fenêtre sur l’écran
    w.setResizable(false) ; //On interdit la redimensionnement de l’écran
    w.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //On dit à l’application de se fermer lors du clic sur la croix
    JPanel pane = new JPanel( );
    pane.setBackground(Color.BLUE);

    pane.add(new ImageComponent(Toolkit.getDefaultToolkit( ).getImage("c:/image1.jpg"),0,0,100,100));
    pane.add(new ImageComponent(Toolkit.getDefaultToolkit( ).getImage("c:/image2.jpg"),0,100,100,100));



    w.getContentPane().add(pane);
    w.setVisible(true);
    }
    }

  2. #2
    Membre averti
    Inscrit en
    Février 2006
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 28
    Par défaut
    ça ne m affiche que la premiere

  3. #3
    Membre chevronné Avatar de broumbroum
    Profil pro
    Inscrit en
    Août 2006
    Messages
    406
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 406
    Par défaut
    Citation Envoyé par uzumaki_naruto
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    //(...)
            size = new Dimension(image.getWidth(null),
                                 image.getHeight(null));
            setSize(size);
      //(...)
    ici les fonction getWidth et getHeight ne fonctionnent pas sans spécifier d'argument valide. normalement une exception est levée par le debug...

  4. #4
    Membre averti
    Inscrit en
    Février 2006
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 28
    Par défaut
    je dois faire quoi alors , je ne suis qu un debutant :p, donc un peu de patience , et merci

  5. #5
    Membre chevronné Avatar de broumbroum
    Profil pro
    Inscrit en
    Août 2006
    Messages
    406
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 406
    Par défaut ImageObserver virtuel
    activer un ImageObserver. peut-être "this" ou simplement un ImageObserver virtuel en ajoutant par ex.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    img.getWidth((ImageObserver)(imgObs = new JLabel("ImageObserver virtuel"))); 
    img.getHeight((ImageObserver)imgObs);

  6. #6
    Membre averti
    Inscrit en
    Février 2006
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 28
    Par défaut
    ok je vé essayé

  7. #7
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Sinon en plus simple utilises une BufferedImage (les méthodes getHeight et getWidth des BufferedImage ne prennent pas de paramètres).

    Pour obtenir une BufferedImage (ou une Image tout court d'ailleurs) passes plutôt par ImagesIO.read que par Toolkit.getToolkit (celà permet d'être sûr que l'image est chargée en un seul coup sans passer par un MediaTracker)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AJAX] Afficher une image GD avec ajax
    Par darkvodka dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 05/06/2007, 00h43
  2. Réponses: 13
    Dernier message: 23/12/2004, 18h01
  3. Comment faire pour afficher une image ds une dbgrid
    Par totomaze dans le forum Bases de données
    Réponses: 2
    Dernier message: 16/10/2004, 15h31
  4. Afficher une image avec swing
    Par arnonote dans le forum AWT/Swing
    Réponses: 11
    Dernier message: 07/08/2004, 12h10
  5. PL/SQL - Comment afficher une image avec HTP ?
    Par patmaba dans le forum PL/SQL
    Réponses: 2
    Dernier message: 08/07/2004, 09h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo