Images avec awt et windows

cs_geam Messages postés 3 Date d'inscription lundi 3 juin 2002 Statut Membre Dernière intervention 9 mai 2003 - 9 mai 2003 à 15:29
cs_dragon Messages postés 2336 Date d'inscription samedi 14 juillet 2001 Statut Membre Dernière intervention 5 mai 2009 - 9 mai 2003 à 19:30
Je souhaite afficher une images avec une application java. Sur le site je n'ai trouvé que des exemples avec swing or je dois utiliser awt. J'ai testé le script suivant mais il ne fonctionne correctement que sous Linux Mandrake 9 avec le compilateur par défaut. Sous Windows 98 SE, et XP Home, l'image ne s'affiche pas avec la dernière version de java et l'éditeur sun one. Qu'est-ce qui ne va pas ?

import java.awt.*;
import java.awt.image.*;

public class UneImage extends Frame
{
    private Image image;
    private String nom="lola.jpg";
    private MediaTracker track;
    private int id;
    
    UneImage()
    {
        setTitle("Mon image");
        setSize(300,200);
        setLocation(50,100);

        image = Toolkit.getDefaultToolkit().getImage(nom);
        
        track = new MediaTracker(this);
        id = 1;
        
        track.addImage(image,id);
        
        try
        {
            track.waitForID(id);
        }catch (InterruptedException e)
        {
            System.out.println("Pb dans le MediaTracker");
        }
        
        setVisible(true);
    }
    
    public void paint(Graphics g)
    {
        g.drawImage(image,0,0,this);
    }
    
    public static void main(String [] args)
    {
        new UneImage();
    }
};


Merci d'avance

Geam

5 réponses

benohite Messages postés 210 Date d'inscription vendredi 11 avril 2003 Statut Membre Dernière intervention 18 décembre 2003 7
9 mai 2003 à 16:52
rien ne va pas je dirais meme plus il marche correctement ((chez moi en tt cas)
j avais fait qqch de semblable et mon image ne s afficher pas non plus sauf si je reduisais la fenetre et que je l as reouvrais alors je voyais apparaitre l image car la jvm rappellais la methode paint
si tu ne la vois pas du premier coup il te suffis d appeller la methode paint lorsque tu demande a ta frame de s afficher


benohite
:big)
0
cs_dragon Messages postés 2336 Date d'inscription samedi 14 juillet 2001 Statut Membre Dernière intervention 5 mai 2009 6
9 mai 2003 à 17:07
pourquoi tu dois utiliser AWT ??? puisqu'AWT est utiliser pour l'entré de commande et SWING est pour l'affichage.

en fait, AWT ne respecte pas la norme d'affichage de JAVA qui soit multi-plateforme, c'est pour ça que tu trouve presque rien sur l'affichage d'AWT.
0
cs_Duss Messages postés 890 Date d'inscription lundi 8 avril 2002 Statut Membre Dernière intervention 29 juillet 2004 11
9 mai 2003 à 17:12
salut,
rajoutes implements ImageObserver a ta definition de ta classe, ca devrait resoudre le probleme ;)
le this que tu passes en 4eme argument de ton drawImage et un objet de type ImageObserver ce qui permet d'optimiser l affichage (pas obligé de faire des repaint a gogo)
Duss
0
cs_geam Messages postés 3 Date d'inscription lundi 3 juin 2002 Statut Membre Dernière intervention 9 mai 2003
9 mai 2003 à 18:39
Merci pour vos réponses, mais je me demande si je n'ai pas téléchargé une mauvaise version du jdk (jdk 1_4_1_02). Puisqu'en compilant avec l'ancienne version (jdk 1_3) sous Linux le fichier s'exécute correctement sur les trois système.
(Est-ce la seule solution ? )
Tandis qu'en compilant avec les modifications proposées, l'image ne s'affiche pas et je n'obtient aucun message d'erreur.

Je doit utilisé awt car je fais un programme qui pourait devenir une applet et je veux le garder compatible sans avoir à faire installer des composants supplémentaires à des utilisateurs finaux.

A bientôt

Geam
0

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

Posez votre question
cs_dragon Messages postés 2336 Date d'inscription samedi 14 juillet 2001 Statut Membre Dernière intervention 5 mai 2009 6
9 mai 2003 à 19:30
si tu utilises JApplet, tu aura pas de problème avec Swing. Un de risque de mauvaise compatibilité c'est que AWT graphique a pas été mis à jour, puisque java tente d'oublier AWT graphique pour avoir seulement Swing
0
Rejoignez-nous