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 :

Modifier la taille d'une image dans un JFrame


Sujet :

Agents de placement/Fenêtres Java

  1. #1
    Membre régulier
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    131
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2014
    Messages : 131
    Points : 93
    Points
    93
    Par défaut Modifier la taille d'une image dans un JFrame
    salut,j'espère que vous allez bien ,je veux savoir comment agrandir la taille d'une image en plus que sa taille originale,voici le code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    	JPanel panel = new JPanel();
    		panel.setBounds(100, 100, 900, 500);
    		contentPane.add(panel);
    		panel.setLayout(null);
    		JLabel image1 = new JLabel(new ImageIcon("C:/Users/Mounina/Downloads/agence-voyage-independante-blog-perles-voyages.jpg"));
    		image1.setBounds(0,0,panel.getWidth() , panel.getWidth());
    NOTE:le but en faite est de mettre l'image comme fond d’écran pour la JFrame dont le panel ici occupant toute la surface de cette dernière ,et lorsque je manipule les valeurs des positions 3 et 4 de la méthode setBounds en ajoutant des valeurs inférieur aux valeurs dimensionnelles de l'image le changement de taille se figuré, mais dans le contraire la taille reste la même.
    SVP j’attends vos réponses et merci d'avance pour l'aide.

  2. #2
    Membre habitué
    Homme Profil pro
    Inscrit en
    Septembre 2013
    Messages
    149
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2013
    Messages : 149
    Points : 126
    Points
    126
    Par défaut
    Salut,

    Dans ton cas, tu devrais utiliser un paintComponent plutôt qu'un JLabel. Ainsi tu pourrais positionner des composants au dessus de ton image alors qu'avec un JLabel se serait compliqué.

    Voici le code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    	public void paintComponent (Graphics g){
    	    super.paintComponent(g);
     
    		 try{
    			 Image background = ImageIO.read (Img.class.getResource("background.png"));
    			 g.drawImage(background, 0 , 0 , this.getWidth() , this.getHeight(), this);
    		 }catch (IOException e){
    			 e.printStackTrace();
    		 }
    }
    Tu rajoutes ce bout de code à ta classe qui étend de JFrame, juste après la déclaration de l'objet. (this pointe donc vers l'instance de ta fenêtre)
    Pas besoin d'actualiser au redimensionnement, la JVM s'en occupe toute seule! (normalement)

    J'espère t'avoir aidé!

  3. #3
    Membre régulier
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    131
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2014
    Messages : 131
    Points : 93
    Points
    93
    Par défaut
    salut et merci pour la méthode ,sa marche très bien ,puisque elle permettre dans quelque sorte de redessiner l'image avec des dimensions sur mesure que la taille de la JFrame . j'ai pas fait l'idée de l’héritage par l'utilisation de super mais j'ai crée une classe héritant d'un JPanel appelé "Comp"et contenant la classe que vous ayez donné ,et une autre classe appelé f contenant le JFrame, ensuite cette dernière contient un objet de type Comp, voici le code complet qui sera peut être un aide à quelqu'un au plut tard,
    le code de la classe Comp:
    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
     
    package image;
     
    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 Comp extends JPanel{
    		public void paintComponent (Graphics g) {
     
     
    		 try{
    			 Image background = ImageIO.read (new File("C:/Users/Mounina/Downloads/0,1020,713053,00.jpg"));
    			 g.drawImage(background,0,0,this.getWidth() , this.getHeight(), this);
    		 }catch (IOException e){
    			 e.printStackTrace();
    		 }
    }
    }
    le code de la classe f:
    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
    43
     
    package image;
     
    import java.awt.BorderLayout;
    import java.awt.EventQueue;
     
    import javax.swing.JFrame;
    import javax.swing.JPanel;
    import javax.swing.border.EmptyBorder;
     
     
     
    public class f extends JFrame {
     
    	private JPanel contentPane;
    	private Comp pan = new Comp();
    	public static void main(String[] args) {
    		EventQueue.invokeLater(new Runnable() {
    			public void run() {
    				try {
    					f frame = new f();
    					frame.setVisible(true);
    				} catch (Exception e) {
    					e.printStackTrace();
    				}
    			}
    		});
    	}
     
     
    	public f() {
    		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    		setBounds(100, 100, 900, 600);
    		contentPane = new JPanel();
    		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
    		contentPane.setLayout(new BorderLayout(0, 0));
    		contentPane.add(pan);
    		setContentPane(contentPane);
     
     
    	}
     
    }
    merci encore une fois sur l'idée Jerem Gamer,bien cordialement .

  4. #4
    Membre habitué
    Homme Profil pro
    Inscrit en
    Septembre 2013
    Messages
    149
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2013
    Messages : 149
    Points : 126
    Points
    126
    Par défaut
    Pas de problème! Si ton problème est résolu, appuie sur le bouton "Résolu" en bas de la page!

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

Discussions similaires

  1. [c# 2.0] modifier la taille d'une image
    Par r0d dans le forum Windows Forms
    Réponses: 4
    Dernier message: 07/06/2007, 16h37
  2. Récupérer la taille d'une image dans un canevas
    Par Exca dans le forum Tkinter
    Réponses: 3
    Dernier message: 01/12/2006, 13h23
  3. taille d'une image dans une cellule
    Par benoitB dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 15/10/2006, 17h31
  4. [C#] Modifier la taille d'une colonne dans un datagrid
    Par Sylk dans le forum Windows Forms
    Réponses: 2
    Dernier message: 19/01/2006, 19h27
  5. Récupérer la taille d'une image dans un fichier (GIF/JPEG)
    Par SheikYerbouti dans le forum Multimédia
    Réponses: 4
    Dernier message: 12/05/2005, 15h17

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