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 :

Image dans un JPanel conservant proportions


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 2
    Par défaut Image dans un JPanel conservant proportions
    Hello,

    Je suis actuellement en train d'essayer d'integrer une image dans le programme IGB. Mettre l'image n'a pas vraiment ete un probleme, mais je n'ai trouve aucun moyen de la faire s'adapter a la taille de la fenetre (en changeant la taille de l'onglet directement en cliquant sur sa bordure dans l'interface graphique) en conservant les proportions. Je peut bien entendu adapter sa taille, mais l'image se fait etirer.

    Je m'excuse si il y a deja une solution a ce probleme, peut-etre ai-je mal cherche, mais j'y ai passe de nombreuses heures sans rien trouver d'utile. J'espere que ma question est suffisamment claire et qu'une bonne ame pourra m'aider. (excusez mon orthographe, je suis sur un clavier qwerty).

    Voici le code utilise pour charger l'image:
    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
    import java.awt.Graphics;
    import java.awt.Image;
    import java.io.File;
    import java.io.IOException;
    import javax.imageio.ImageIO;
    import javax.swing.JPanel;
     
            public class Panneau extends JPanel {
     
                                /**
                             * 
                             */
    			private static final long serialVersionUID = 1L;
     
    							public void paintComponent(Graphics g){
                                        try {
                                                Image img = ImageIO.read(new File("/home/cosqu001/testworkspace/Integrated_Genome_Browser/plugins/RestrictionSites/Tarra.jpg"));
                                                g.drawImage(img, 0, 0, this);
                                                //Pour une image de fond
                                                //g.drawImage(img, 0, 0, this.getWidth(), this.getHeight(), this);
     
     
                                        } catch (IOException e) {
                                                // TODO Auto-generated catch block
                                                e.printStackTrace();
                                        }
     
                                }               
                        }

  2. #2
    Membre éprouvé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mars 2004
    Messages
    102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2004
    Messages : 102
    Par défaut
    Essaye un truc comme cela :

    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
    import java.awt.Graphics;
    import java.awt.Image;
    import java.io.File;
    import java.io.IOException;
    import javax.imageio.ImageIO;
    import javax.swing.JPanel;
    
            public class Panneau extends JPanel {
                            	 
                                /**
    			 * 
    			 */
    			private static final long serialVersionUID = 1L;
    
    							public void paintComponent(Graphics g){
                                        try {
                                                Image img = ImageIO.read(new File("/home/cosqu001/testworkspace/Integrated_Genome_Browser/plugins/RestrictionSites/Tarra.jpg"));
                                                java.awt.Graphics2D g2 = (java.awt.Graphics2D)g;
                                                scale = Math.min(
                                                     (double)getWidth()/img.getWidth(),
                                                     (double)getHeight()/img.getHeight() );
                                                g2.setScale(scale,scale);
    
    
                                                g2.drawImage(img, 0, 0, this);
                                                //Pour une image de fond
                                                //g.drawImage(img, 0, 0, this.getWidth(), this.getHeight(), this);
                                                
                                                
                                        } catch (IOException e) {
                                                // TODO Auto-generated catch block
                                                e.printStackTrace();
                                        }
                                        
                                }               
                        }

  3. #3
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 2
    Par défaut
    J'ai eu quelques petites modifications a faire mais ca marche niquel. Merci beaucoup pour ton aide rapide et precise
    Je met le code qui marche au cas ou ca interesserais quelqu'un:


    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
    import java.awt.Graphics;
    import java.awt.Image;
    import java.io.File;
    import java.io.IOException;
    import javax.imageio.ImageIO;
    import javax.swing.JPanel;
     
     
            public class Panneau extends JPanel {
     
                                /**
                             * 
                             */
    			private static final long serialVersionUID = 1L;
     
    							public void paintComponent(Graphics g){
                                        try {
                                        		double scale;
                                                Image img = ImageIO.read(new File("/home/cosqu001/testworkspace/Integrated_Genome_Browser/plugins/RestrictionSites/Tarra.jpg"));
                                                java.awt.Graphics2D g2 = (java.awt.Graphics2D)g;
                                                scale = Math.min(
                                                     (double)getWidth()/img.getWidth(this),
                                                     (double)getHeight()/img.getHeight(this) );
                                                g2.scale(scale,scale);
     
     
                                                g2.drawImage(img, 0, 0, this);
                                                //Pour une image de fond
                                                //g.drawImage(img, 0, 0, this.getWidth(), this.getHeight(), this);
     
     
                                        } catch (IOException e) {
                                                // TODO Auto-generated catch block
                                                e.printStackTrace();
                                        }
     
                                }               
                        }

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

Discussions similaires

  1. Image dans un Jpanel
    Par fontaigo dans le forum AWT/Swing
    Réponses: 7
    Dernier message: 19/04/2006, 18h13
  2. comment afficher une image dans un jpanel ?
    Par 180degrés dans le forum AWT/Swing
    Réponses: 7
    Dernier message: 18/04/2006, 15h33
  3. Persistance d'une image dans un JPanel
    Par Robiwan59 dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 15/02/2006, 19h20
  4. Rafraichir image dans un jPanel
    Par kentao dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 02/01/2006, 16h31
  5. [JPanel]Mettre une image dans un JPanel
    Par ehmppowa dans le forum Composants
    Réponses: 11
    Dernier message: 30/11/2005, 20h17

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