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 :

problème avec JPanel


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Inscrit en
    Août 2008
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 11
    Par défaut problème avec JPanel
    je veux créer deux JPanel dans une JFrame

    mon code

    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
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    import java.awt.BorderLayout;
    import java.awt.Color;
    import java.awt.Container;
    import java.awt.FlowLayout;
    import javax.swing.JFrame;
     
    import javax.swing.JPanel;
     
     
     
    public class exe1 
     
    {
     
     
    	private JPanel mx,resulta;
    	private JFrame fenetre;
     
     
    public exe1()
    {
    	fenetre=new JFrame("Ecran");
     
     
    	fenetre.setSize(900,600);
    	fenetre.setLocationRelativeTo(null);
    	fenetre.setDefaultCloseOperation(2);
    	fenetre.setResizable(false);
    	fenetre.setVisible(true);
     
     
    	resulta = new JPanel();
    	resulta.setBackground(Color.red);
    	resulta.setLayout( new BorderLayout() );
    	resulta.setBounds(90,100,40,418);
    	resulta.setBorder(BorderFactory.createLineBorder(Color.blue,1));
     
    	resulta.setVisible(true);
     
     
    	mx = new JPanel();
    	mx.setBackground(Color.blue);
    	mx.setBounds(390,100,500,418);
    	mx.setBorder(BorderFactory.createLineBorder(Color.blue,1));
     
    	mx.setVisible(true);
     
    	mx.setLayout( new BorderLayout() );
     
    	fenetre.add(resulta);
    	fenetre.add(mx);
     
    }
     
    }
    mais le JPanel mx apparait dans toute la JFrame et ne prend pas la dimension que j'ai spécifiée

    pouvez vous m'aider SVP je n'arrive pas à trouver le problème

  2. #2
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    on ne précise pas la taille des composants en java, tout est relatif. Il faut déjà que tu choissise un layout pour le contenu de la JFrame. Ensuite, tu ajoute tes deux panel en fonction de ce layout. Voir toutes la doc sur les layouts

  3. #3
    Membre habitué
    Inscrit en
    Août 2008
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 11
    Par défaut
    ça ne marche pas aussi avec ce code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     
    JPanel tool = new JPanel();
    tool.setLayout(new BorderLayout());
     
    tool.add(mx);
    tool.add(resulta);

  4. #4
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Quand tu ajoute des composant au sein d'un conteneur utilisant BorderLayout, tu dois aussi préciser où tu les ajoute (BorderLayout.NORTH, BorderLayout.CENTER, BorderLayout.SOUTH, etc)

    Exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    JFrame frame = new JFrame();
    frame.getContentPane().setLayout(new BorderLayout());
    frame.getContentPane().add(new JButton("nord"),BorderLayout.NORTH);
    frame.getContentPane().add(new JBtton("centre"),BorderLayout.CENTER);

  5. #5
    Membre habitué
    Inscrit en
    Août 2008
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 11
    Par défaut
    et si je veux moi meme spécifier leurplace et leur taille
    comment je peux le faire

    par ce que comme tu m'as dis la dimension des composant je ne peux pas la modifier

  6. #6
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    en java, comme je l'ai dit, on ne précise pas la taille et la position. Si tu veux les fixer, il va falloir que tu crée un layout personalisé (interface Layout à implémenter) en sachant que si tu prend des positions fixe tu aura les problèmes suivant

    1) impossible pour tes composants de s'adapter aux fontes de l'utilisateur si celle-ci sont différentes
    2) problèmes de portabilité d'un os à l'autre (les composants n'ayant pas strictement la meme taille)
    3) impossible de redimensionner correctement la fenetres. Les composant ayant alors une taille fixe, si tu redimensionne la fenetre, il seront soit seuls dans un coin de la fenetre soit coupés, ce qui fait très moche
    4) contre intuitif par rapport à la logique java de placement des composants

    sérieusement, avant de vouloir placer à un endroit fixe les composants, il faut que tu regarde dans l'ensemble des layout existant celui qui pourrait te servir. Certains prennent des paramètre permettant de dire, par exemple, qu'un composant prend 70% de la taille et l'autre 30% (cf gridbaglayout), d'autres alignent autant que possible les composant sur une ligne, en utilisant leur taille naturelle (BoxLayout). Des layout plus complexes peuvent etre réalisés en combinant plusieurs panels, etc.

Discussions similaires

  1. problème avec JPanel
    Par anarkia dans le forum Agents de placement/Fenêtres
    Réponses: 1
    Dernier message: 08/09/2008, 13h18
  2. problème avec JPanel
    Par sky88 dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 04/08/2008, 15h04
  3. Problème avec GridBagLayout dans JPanel
    Par caneman dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 19/12/2006, 22h32
  4. Problème avec image dans JPanel
    Par littleshrimp dans le forum AWT/Swing
    Réponses: 7
    Dernier message: 14/05/2006, 14h05
  5. Problème avec l'insertion d'une image dans JPanel
    Par anutka dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 16/03/2006, 10h02

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