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 :

[SWING]affichage d'une image


Sujet :

AWT/Swing Java

  1. #21
    Membre averti
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    390
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 390
    Points : 432
    Points
    432
    Par défaut
    J'ai pas bien compris ton dernier probleme.
    C'est bien le fond du JPanel que tu viens de définir, alors comment il pourrai recouvrir son propre fond?
    Mess with the best, die like the rest!

  2. #22
    Membre régulier
    Inscrit en
    Avril 2004
    Messages
    104
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 104
    Points : 85
    Points
    85
    Par défaut
    bah écoute moi non plus je comprend pas.
    j'ai mis le fond d'écran sur le JPanel. quand je lance l'appli, il s'affiche en gris (couleur par defaut). mais quand je clique sur un bouton (que j'ai défini sans bordures, transparents, ...) ça me créé une zone rectangulaire (de la taille du bouton) rempli par le fond d'écran.
    je sais pas si c'est bien clair, mais en gros, c'est comme si mon fond d'écran était caché par le JPAnel ce qui est un peu absurde

  3. #23
    Membre averti
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    390
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 390
    Points : 432
    Points
    432
    Par défaut
    Je ne suis pas sur que ca vienne de ca mais essaie de remplacer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    g.drawImage(img,0,0,null);
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    g.drawImage(img,0,0,this);
    Mess with the best, die like the rest!

  4. #24
    Membre régulier
    Inscrit en
    Avril 2004
    Messages
    104
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 104
    Points : 85
    Points
    85
    Par défaut
    alors en remplaçant ça, quand je clique sur un bouton, ça ne me fait plus le bug. mais l'image n'apparait toujours pas

  5. #25
    Membre régulier
    Inscrit en
    Avril 2004
    Messages
    104
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 104
    Points : 85
    Points
    85
    Par défaut
    alors j'ai découvert un truc assez marrant. lorsque j'exécute mon programme, aucun fond d'écran.
    je réduit alors ma fenetre dans la barre des taches puis je la fait réapparaitre. et la, mon fond d'écran se met.
    je pourrais faire quoi pour qu'il apparaisse sans que j'ai besoin de faire cette manipe :s ?

  6. #26
    Membre averti
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    390
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 390
    Points : 432
    Points
    432
    Par défaut
    Je ne c pas trop. Est ce que ca fait la même chose quand tu redimensionne ta fenêtre plutot que de la réduire.

    Essai peut etre de placer un repaint() de ton JPanel qqpart dans ton code, je ne vois que ca.
    Mess with the best, die like the rest!

  7. #27
    Membre éprouvé Avatar de leminipouce
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2004
    Messages
    754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Janvier 2004
    Messages : 754
    Points : 1 253
    Points
    1 253
    Par défaut
    Essaie un refresh(), un repaint() ou un validate() (suivant le type de container que tu as...) sur ta fenêtre principale
    Si , et la ont échoué mais pas nous, pensez à dire et cliquez sur . Merci !

    Ici, c'est un forum, pas une foire. Il y a de respectables règles... à respecter !

  8. #28
    Membre du Club Avatar de lebesnec
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2005
    Messages : 82
    Points : 63
    Points
    63
    Par défaut
    essaye d'appeler repaint() sur ton panel

    édit : hum j'ai un train de retard moi
    Chercher dans la Javadoc directement depuis Firefox / IE7 : http://lebesnec.free.fr/?p=8

  9. #29
    Membre régulier
    Inscrit en
    Avril 2004
    Messages
    104
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 104
    Points : 85
    Points
    85
    Par défaut
    si je déplace ma fenetre et qu'elle sort des bordures de mon écran, lorsque je la recentre on voit le fond d'écran sur la partie qui a été déplacée. donc la je teste avec des refresh, des repaints, etc... pour le moment ça ne change rien. alors faut que je trouve a quel endroit faut que je le mette pour que ça marche. en tout cas merci beaucoup pour votre aide depuis le début

  10. #30
    Membre régulier
    Inscrit en
    Avril 2004
    Messages
    104
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 104
    Points : 85
    Points
    85
    Par défaut
    bon ba ça me gave parce que j'ai mis des repaint un pêu partout et le probleme reste le meme....

  11. #31
    Membre averti
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    390
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 390
    Points : 432
    Points
    432
    Par défaut
    tu as essayé ce que t as dit leminipouce, avec refresh et validate sur la fenetre principale.
    Mess with the best, die like the rest!

  12. #32
    Membre régulier
    Inscrit en
    Avril 2004
    Messages
    104
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 104
    Points : 85
    Points
    85
    Par défaut
    alors j'ai testé le validate mais par contre l'instruction refresh() est inconnue... comme ça se fait qu'il ne la trouve pas ?
    ma fenetre principale est une JFrame.

  13. #33
    Membre averti
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    390
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 390
    Points : 432
    Points
    432
    Par défaut
    peut etre parce que la méthode refresh n'existe pas
    Mess with the best, die like the rest!

  14. #34
    Membre régulier
    Inscrit en
    Avril 2004
    Messages
    104
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 104
    Points : 85
    Points
    85
    Par défaut
    bah ça doit etre ça je pense...
    ya un truc aussi, je lance l'appli, et le fond d'écran apparait si je clique le bouton d'agrandissement de la fenetre (en haut a gauche).
    franchement, c'est un peu bizarre tout ça.....

  15. #35
    Membre averti
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    390
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 390
    Points : 432
    Points
    432
    Par défaut
    donne voir un peu de code comme ta méthode paintComponent et la déclartion du JPanel et son insertion dans le layout de la JFrame. Y a forcément qqchose qui cloche à ce niveau.
    Mess with the best, die like the rest!

  16. #36
    Membre régulier
    Inscrit en
    Avril 2004
    Messages
    104
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 104
    Points : 85
    Points
    85
    Par défaut
    ok

    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
     
     
    public class myJPanel extends JPanel
    {
        int h_f, l_f;//hauteur fenetre, largeur fenetre
        XYLayout bordure_panel = new XYLayout();
     public Image img;
     
        myJPanel(int posx,int posy,int largeur, int hauteur, String nomImage)
        {
            h_f = hauteur;
            l_f = largeur;
            bordure_panel.setHeight(h_f);
            bordure_panel.setWidth(l_f);
            setLayout(bordure_panel);
     
            File f = new File(nomImage);
            if (f.exists())
            {
                java.awt.Toolkit toolkit = java.awt.Toolkit.getDefaultToolkit();
                img = toolkit.getImage(nomImage);
                test = toolkit.getImage("images/creer1.jpg");
            }
            else
                System.out.println("fond d'écran non trouvé. vérifiez le chemin !");
     
            setSize(l_f, h_f);
            setVisible(true);
        }
     
        public void paintComponent(Graphics g)
        {
            super.paintComponent(g);
            g.drawImage(img,0,0,this);
           }
    }
    ensuite mon JFrame
    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
    public class myJFrame extends JFrame {
     
        XYLayout bordure_frame = new XYLayout();
        Container f = getContentPane();/*fenetre*/
        myJPanel interieur;
     
        public myJFrame() {
            new JFrame();
        }
     
        public void create_fenetreFS(String nomFenetre,int posx, int posy ,int largeur, int hauteur,String nomImage     {
            setTitle(nomFenetre);
            setUndecorated(false);
            setLocation(posx,posy);
            interieur = new myJPanel(posx,posy,largeur, hauteur, nomImage);
     
            bordure_frame.setHeight(hauteur);
            bordure_frame.setWidth(largeur);
     
            f.setLayout(bordure_frame);
            f.setSize(largeur, hauteur);  
        }
     
        public void afficher()
        {
            setResizable(true);
            setVisible(true);
            show();
            pack();
        }
     
        public void paintComponent(Graphics g)
        {
            g.drawImage(interieur.img,0,0,this);
            repaint();
        }
    }
    et enfin l'utilisation
    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
    public class menuPrincipal extends myJFrame implements ActionListener {
     
        myJButton b_creer;
        Dimension tailleEcran = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
        int max_largeur = (int)tailleEcran.getWidth();
        int max_hauteur = (int)tailleEcran.getHeight();
     
        public menuPrincipal() {
            try {
                InitMenu();
            } catch (Exception ex) {
                ex.printStackTrace();
            }
        }
     
            b_creer = new myJButton("CREER UNE ANIMATION");
     
        private void InitMenu() throws Exception {
     
            create_fenetreFS("Menu Principal",0,0,max_largeur,max_hauteur,"images/fond1280x1024.jpg");
     
            /*ajout d'écouteurs d'evenements sur les boutons*/
            b_creer.addActionListener(this);
     
            /*ajout des boutons dans la fenetre*/
            interieur.add(b_creer, new XYConstraints(109, 74, 183, 43));
            f.add(interieur , new XYConstraints(0,0,max_largeur,max_hauteur));
        }
        public static void main(String[] args) {
            menuPrincipal mp = new menuPrincipal();
            mp.afficher();
        }
    }
    voila. en espérant que ça puisse vous aider.

  17. #37
    Membre averti
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    390
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 390
    Points : 432
    Points
    432
    Par défaut
    Dans ton constructeur de menuPrincipal il te manque un "super();" au début, pareil pour ton constructeur de myJPanel. Je c pas si ca résoudra ton problème. Je n'ai pas l'impression qu'il y ai d'autres erreurs.

    Sinon voila un test que j'ai fait et qui marche parfaitement :

    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
    public class Test1 extends JPanel
    {
    	Image img;
     
    	public Test1() {
    		super(null);
    		img = this.getToolkit().createImage("Chemin vers l'image");
    	}
     
    	public void paintComponent(Graphics g) {
    		super.paintComponent(g);
    		g.drawImage(img,0,0,this);
    	}
     
    	public static void main(String[] args) {
    		Test1 t = new Test1();
    		JButton jb = new JButton("clic");
    		jb.setSize(60,20);
    		jb.setLocation(100,100);
    		t.add(jb);
    		JFrame frame = new JFrame("test");
    		frame.getContentPane().add(t);
    		frame.setSize(500,500);
    		frame.setLocation(200,200);
    		frame.setVisible(true);
    		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    	}
    }
    Mess with the best, die like the rest!

  18. #38
    Membre régulier
    Inscrit en
    Avril 2004
    Messages
    104
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 104
    Points : 85
    Points
    85
    Par défaut
    bah je viens de rajouter le super() dans mon constructeur de myJPanel. alors ça corrige un bug. c'est a dire que quand je passe d'une fenetre a une autre en cliquant sur un bouton, le fond d'écran se met automatiquement sur la nouvell fenetre. cependant, le probleme ne veut pas se régler pour ma premiere fenetre

  19. #39
    Membre averti
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    390
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 390
    Points : 432
    Points
    432
    Par défaut
    Finalement il y a dautres erreur
    C'est pas tres è joli ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Container f = getContentPane();/*fenetre*/
     
        public myJFrame() {
            new JFrame();
        }
    faire plutot :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Container f;/*fenetre*/
     
        public myJFrame() {
            super();
    f = getContentPane();    }
    Mess with the best, die like the rest!

  20. #40
    Membre régulier
    Inscrit en
    Avril 2004
    Messages
    104
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 104
    Points : 85
    Points
    85
    Par défaut
    ça change rien...
    je vais finir par croire que le Java ne veut pas de moi ^^

Discussions similaires

  1. affichage d'une image avec du swing
    Par burzno dans le forum AWT/Swing
    Réponses: 8
    Dernier message: 26/05/2007, 18h04
  2. Réponses: 2
    Dernier message: 27/12/2004, 09h23
  3. Pbs d'affichage d'une image sur un panel
    Par ysr1 dans le forum C++Builder
    Réponses: 2
    Dernier message: 23/09/2004, 09h55
  4. [FLASH MX] Qualité d'affichage d'une image
    Par n_tony dans le forum Flash
    Réponses: 3
    Dernier message: 16/08/2004, 09h44
  5. Affichage d'une image sous linux
    Par Braim dans le forum x86 32-bits / 64-bits
    Réponses: 5
    Dernier message: 25/03/2003, 10h41

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