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

Agents de placement/Fenêtres Java Discussion :

image dans une interface graphique


Sujet :

Agents de placement/Fenêtres Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Avril 2008
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 28
    Par défaut image dans une interface graphique
    salut,
    est-ce-que vous pouvez m'aider à corriger le programme ci-dessous afin d'aficher l'image , située à l'adresse(("C:\\Documents and Settings/All Users/Documents/Mes images/Échantillons d'images/Hiver.jpg") de mon ordinateur, sur une interface en Jbuilder
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
     import java.awt.*;
    import java.io.*;
    import java.awt.Image.*;
    public class Tiger extends Frame
    {
    Image img;
    public Tiger()
     {
     super();
     setTitle("tigre");
     java.net.URL urlship= this.getClass().getResource("C:\\Documents and Settings/All Users/Documents/Mes images/Échantillons d'images/Hiver.jpg");
     img =Toolkit.getDefaultToolkit().getImage(urlship);
     MediaTracker tracker = new MediaTracker(this);
     tracker.addImage(img, 0);
     try
     {
     tracker.waitForID(0);
     }
     catch (InterruptedException e)
     {
     System.out.println(e);
     }
     }
    public void paint(Graphics g)
    {
    Graphics2D g2d = (Graphics2D) g;
    g2d.drawImage(img, 500, 500, this);
    }
     public static void main(String [] args)
     {
       Tiger t= new Tiger();
       t.setSize(500,500);
     }
    }
    je vous remercie.

  2. #2
    Membre confirmé
    Inscrit en
    Novembre 2006
    Messages
    167
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 167
    Par défaut
    Salut,

    Etant déjà passé par la manipulation d'images, je te conseille d'utiliser un JPanel et de faire deux classes pour bien séparer la JFrame du JPanel qui va charger l'image :

    Je te conseille de faire comme ceci :

    Classe TigerContents :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    import javax.swing.*;
    import java.awt.*;
     
    public class TigerContents extends JPanel {
     
    	public Image monImage;
     
    	public TigerContents(String url){
    		super();
    		this.monImage = getToolkit().getImage(url);
    		this.setPreferredSize(new Dimension(434,320)); // Dimension que tu veux
    	}
     
    	public void paintComponent(Graphics g) {
    		super.paintComponent(g); // repeint le fond du JPanel
    		g.drawImage(monImage,0,0,getWidth(),getHeight(),this);
    	}
    }
    Et ensuite tu aurais une classe TigerFrame héritant d'une JFrame (comme ta classe Tiger) qui contiendrait ce code :

    Classe TigerFrame :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    import javax.swing.JFrame;
     
    public class TigerFrame extends JFrame{  
     
    	public TigerContents panel;
     
      	public TigerFrame(String url){ // url = chemin de l'image que tu veux afficher. Lors de l'appel de TigerFrame ne pas oublier de préciser le chemin de l'image
     
    		panel = new TigerContents(url);
    		this.setContentPane(panel);
        	        this.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);
    		this.setVisible(true);
     
      	}
    }
    Comme tu peux le voir, cette manière de séparer en deux classes le traitement de l'image permet de bien simplifier les choses.

    Je pense que toi aussi tu dois en voir plus clair.

    Si tu y tiens tu peux implémenter un MediaTracker dans la classe TigerFrame

    ++

  3. #3
    Membre averti
    Inscrit en
    Avril 2008
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 28
    Par défaut telecharger image dans un Jframe
    Salut,
    je vous remercie de votre réponse, j'ai essayé avec le corps ci-dessous mais l'image n'est pas affichée dans la fenêtre, peux-tu m'aider.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
     
    import javax.swing.*;
    import java.awt.*;
    class TigerContents extends JPanel
    {
    public Image monImage;
    public TigerContents(String url)
    {
    super();
    this.monImage = getToolkit().getImage(url);
    MediaTracker tracker = new MediaTracker(this);
    tracker.addImage(monImage, 0);
    try { tracker.waitForAll(); }
    catch (InterruptedException e) {}
    this.setPreferredSize(new Dimension(434,320)); // Dimension que tu veux
    }
    public void paintComponent(Graphics g)
    {
    super.paintComponent(g); // repeint le fond du JPanel
    g.drawImage(monImage,0,0,getWidth(),getHeight(),this);
    }
    }
    class Interface1 extends JFrame
    {
    public TigerContents panel;
    public Interface1(String url)
    {
    super();
    setTitle("telecharger_image");
    // url = chemin de l'image que tu veux afficher. Lors de l'appel de TigerFrame ne pas oublier de préciser le chemin de l'image
    panel = new TigerContents(url);
    this.setContentPane(panel);
    this.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);
    show();
    this.setVisible(true);
    }
    public static void main(String [] args)
      {
       Interface1 i= new Interface1("C:\\Documents and Settings/All Users/Documents/Mes images/Échantillons d'images/Collines.jpg");
        i.setSize(600,600);
      }
    }
    merci beaucoup.

  4. #4
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 909
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 909
    Billets dans le blog
    54
    Par défaut
    Question : es-tu vraiment oblige d'utiliser le MediaTracker ? Ne peux-tu pas utiliser ImageIO pour un chargement direct ?
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  5. #5
    Membre averti
    Inscrit en
    Avril 2008
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 28
    Par défaut telecharger image dans un frame
    Salut,

    Merci pour votre réponse, je veux savoir comment transformer ce programme si j'utilise le awt.
    Code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
     
    import javax.swing.*;
    import java.awt.*;
    class TigerContents extends JPanel
    {
    public Image monImage;
    public TigerContents(String url)
    {
    super();
    this.monImage = getToolkit().getImage(url);
    MediaTracker tracker = new MediaTracker(this);
    tracker.addImage(monImage, 0);
    try { tracker.waitForAll(); }
    catch (InterruptedException e) {}
    this.setPreferredSize(new Dimension(434,320)); // Dimension que tu veux
    }
    public void paintComponent(Graphics g)
    {
    super.paintComponent(g); // repeint le fond du JPanel
    g.drawImage(monImage,0,0,getWidth(),getHeight(),this);
    }
    }
    class Interface1 extends JFrame
    {
    public TigerContents panel;
    public Interface1(String url)
    {
    super();
    setTitle("telecharger_image");
    // url = chemin de l'image que tu veux afficher. Lors de l'appel de TigerFrame ne pas oublier de préciser le chemin de l'image
    panel = new TigerContents(url);
    this.setContentPane(panel);
    this.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);
    show();
    this.setVisible(true);
    }
    public static void main(String [] args)
      {
       Interface1 i= new Interface1("C:\\Documents and Settings/All Users/Documents/Mes images/Échantillons d'images/Collines.jpg");
        i.setSize(600,600);
      }
    }
    Je vous remercie.

Discussions similaires

  1. [Débutant] Insérer une image dans une interface graphique
    Par Mademoiselle_Carly dans le forum Interfaces Graphiques
    Réponses: 1
    Dernier message: 19/02/2011, 16h35
  2. Création d'une image dans l'interface graphique
    Par fcboumi13 dans le forum Interfaces Graphiques
    Réponses: 1
    Dernier message: 02/06/2009, 23h21
  3. zoom dans une interface graphique type gui
    Par oregos dans le forum MATLAB
    Réponses: 1
    Dernier message: 25/04/2007, 12h45
  4. appel d'un binaire systeme dans une interface graphique
    Par elbronziero dans le forum Tkinter
    Réponses: 4
    Dernier message: 18/04/2007, 10h01
  5. Chargement d'image dans une application graphique
    Par chocoboy dans le forum Langage
    Réponses: 2
    Dernier message: 26/10/2006, 21h29

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