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

 Java Discussion :

Probleme superposition Jpanel et JFrame


Sujet :

Java

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 14
    Points : 7
    Points
    7
    Par défaut Probleme superposition Jpanel et JFrame
    Bonjour à tous, je vous expose mon problème :

    Alors j'ai une JFrame dans laquelle se déroule l'exécution de mon code (des requins qui manges des poissons, bref...), de là je souhaite afficher des boutons pour pouvoir ajouter requins et poissons. Or, lorsque je crée un JPanel afin d'y placer mes boutons, celui-ci occupe toute la place de la fenetre et non pas l'endroit où je souhaiterai qu'il se trouve. Si quelqu'un voit la solution...

    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 Animation extends JFrame{
     
    	private static final long serialVersionUID = 1L;
     
     
     
    	public Animation (String title){
     
    		super(title);
    		this.add(new Aquarium());
    		this.setSize(800,800);
    		this.setLocation(100,100);
    		this.setLayout(null);
     
     
    		JPanel j = new JPanel();
    		JButton b1 = new JButton("Requins");
    		JButton b2 = new JButton("Sardines");
     
    		j.setBounds(0,0,800,100);
    		j.add(b1);	
    		j.add(b2);
     
     
    		j.setVisible(true);
                    this.add(j);
    		this.setVisible(true);

  2. #2
    Membre expérimenté
    Avatar de visiwi
    Profil pro
    Inscrit en
    Février 2008
    Messages
    1 050
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 1 050
    Points : 1 340
    Points
    1 340
    Par défaut
    Salut,

    Lorsque l'on utilise un setLayout(null), c'est pour positionner les composants manuellement avec la méthode setBounds du composant.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    b1.setBounds(x,y,width,height);
    b2.setBounds(x,y,width,height);
    Sinon, il est souvent préférable d'utiliser les layout car ils gèrent le placement des composants suivant le dimensionnement du conteneur.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 14
    Points : 7
    Points
    7
    Par défaut
    Merci de cette réponse, mais en faisant avec LayoutManager, ma jframe devient d'une taille ridicule à cotés de mes boutons.
    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
     
    public Animation (String title){
     
    		super(title);
    		this.add(new Aquarium());
    		this.setSize(800,800);
    		this.setLocation(100,100);
     
     
     
    		JPanel j = new JPanel();
    		j.setBackground(Color.PINK);
    		this.getContentPane().setLayout(new FlowLayout());
    		JButton b1 = new JButton("Requins");
    		JButton b2 = new JButton("Sardines");
     
    		 //FlowLayout    bl=new FlowLayout(FlowLayout.CENTER); 
    		//j.setLayout(bl);
    		//j.setBounds(0,0,800,100);
    		j.add(b1);	
    		j.add(b2);
     
     
    		//j.setVisible(true);
    		this.getContentPane().add(j);
     
    		this.setVisible(true);

  4. #4
    Membre expérimenté
    Avatar de visiwi
    Profil pro
    Inscrit en
    Février 2008
    Messages
    1 050
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 1 050
    Points : 1 340
    Points
    1 340
    Par défaut
    Est-ce que ceci ne te satisferais pas ?
    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
    import java.awt.BorderLayout;
    import java.awt.Color;
    import java.awt.FlowLayout;
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JPanel;
     
    public class Animation extends JFrame {
     
    	public static void main(String[] args) {
    		new Animation();
    	}
     
    	public Animation () { 
    		super("");
     
    		this.setDefaultCloseOperation(EXIT_ON_CLOSE);
    		this.setSize(800,800);
    		this.setLocation(100,100);
    		this.setLayout(null);
     
    		JPanel aquarium = new JPanel(); // aquarium
    		aquarium.setBackground(Color.CYAN);
     
    		JPanel j = new JPanel(new FlowLayout(FlowLayout.RIGHT));
    		j.setBackground(Color.WHITE);
    		JButton b1 = new JButton("Requins");
    		JButton b2 = new JButton("Sardines");
    		j.add(b1);	
    		j.add(b2);
     
     
    		j.setVisible(true);
            this.getContentPane().setLayout(new BorderLayout());
            this.getContentPane().add(j, BorderLayout.NORTH);
            this.getContentPane().add(aquarium, BorderLayout.CENTER);
     
    		this.setVisible(true);
     
    	}
    }
    La contrainte BorderLayout.CENTER permet de dimensionner le panel au plus grand.
    Si tu as des questions sur ce code, n'hésite pas les poster.

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 14
    Points : 7
    Points
    7
    Par défaut
    Merci beaucoup, tout marche impec!

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

Discussions similaires

  1. Probleme de JPanel au centre
    Par ALIAS200 dans le forum AWT/Swing
    Réponses: 11
    Dernier message: 10/06/2007, 23h05
  2. Probleme de JPanel et de paint()
    Par Mom's dans le forum AWT/Swing
    Réponses: 8
    Dernier message: 17/11/2006, 23h32
  3. Probleme [SWING]: JPanel dans JscrollPane
    Par malandro dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 24/05/2006, 21h02
  4. JPanel dans JFrame non visible au lancement.
    Par PRomu@ld dans le forum Agents de placement/Fenêtres
    Réponses: 16
    Dernier message: 17/03/2006, 08h22
  5. [Debutant]Probleme dimensionnement JPanel dans CardLayout
    Par etiennegaloup dans le forum Agents de placement/Fenêtres
    Réponses: 9
    Dernier message: 22/12/2005, 19h08

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