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 :

[Débutant]Taille du JPanel


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    66
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2006
    Messages : 66
    Par défaut [Débutant]Taille du JPanel
    Yo à tous!
    Je veux créer dans ma FormPrincipale un JPanel sans Layout. Je pense que c'est le meilleur moyen pour afficher des composants destinés à se mouvoir (dans mon cas des pièces de Tetris). Ce qui me chagrine pour l'instant est que je n'arrive pas à définir la taille de mon JPanel qui s'apellle JeuPanel!
    Comment faire?

    J'avais une autre question subsidiaire! je veux placer un KeyListener sur l'ensemble de mon application. Ou le placer? Le addKeyListener ne marche pas sur les JPanel. Il ne marche que sur le button!

    ci dessous le code de ma FormPrincipale.

    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
    public class FormPrincipale extends JFrame 
    implements ActionListener, KeyListener
    {
      //Timer qui fait descendre la pièce
      private Timer monTimer = null;	
      private Piece carre1;
    
      public FormPrincipale(String p_title)
      {
        super(p_title);
        construire();
      }
      
      private void construire() 
      { 
        // Ajout du composant menu
        //La Barre de menu est gérée dans BarreMenu.java 			
        setJMenuBar(new BarreMenu());
        JPanel contentPanel=new JPanel(new GridLayout(1,2));
        JPanel jeuPanel=new JPanel(null);
        JPanel suivantPanel=new JPanel(new FlowLayout());
        JPanel scorePanel=new JPanel(new FlowLayout());
          
        jeuPanel.setSize(700,700);
        carre1=new Piece();
        carre1.setBounds(50,50,50,50);
    
        jeuPanel.add(carre1);
        JButton button=new JButton("La pièce suivante");
        suivantPanel.add(button);
        button.addKeyListener(this);
        scorePanel.add(new JButton("Le score"));
        
        contentPanel.add(jeuPanel);
        contentPanel.add(suivantPanel);
        contentPanel.add(scorePanel);
        
        setContentPane(contentPanel);
            contentPanel.addKeyListener(this);
            jeuPanel.addKeyListener(this);
            suivantPanel.addKeyListener(this);
            scorePanel.addKeyListener(this);
        
        
        creeTimer();
      }

  2. #2
    Membre Expert
    Profil pro
    Fabrication GED
    Inscrit en
    Octobre 2005
    Messages
    1 405
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Fabrication GED

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 405
    Par défaut
    Pour ta première question : avoir un layout libre :
    this.getContentPane.setLayout(null);

    pout ta deuxième question : utiliser le keylistener :
    getContentPane te retourne un object de type Container. Voir la javadoc, Container possède bien la méthode addKeyListener.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    66
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2006
    Messages : 66
    Par défaut
    Merci pour ton message mais je crois pas que ce soit les réponses aux questions que j'ai posées!
    • J'ai déjà créé un Panel sans Layout t'as vu!
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
       JPanel jeuPanel=new JPanel(null);
      J'arrive peut-être pas réussi à me faire comprendre...En fait je n'arrive pas à définir la taille de ce Panel sans Layout.
      Et en plus ma JFrame (classe FormPrincipale) ne tient pas compte de la taille de ce Panel!
      Je suis obligé de redimensionner manuellement ma fenêtre à chaque démarrage de l'application!
    • Pour le KeyListener j'en ai déjà mis un mais il ne marche que sur le boutton 'button'!Comment faire pour qu'il s'applique à tous les objets de l'application?
    • J'avais une autre question encore! Pour les objets JComponent. J'ai pas trop compris la différence entre les fonctions Paint et PaintComponent!
      Merci!!

  4. #4
    Rédacteur
    Avatar de eclesia
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    2 111
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 111
    Par défaut
    du calme.

    methode setPreferredSize(Dimension d) pour fixer la taille de ton Jpanel.
    ensuite fait un pack() sur ta Jframe pour qu'elle se mette a la meilleur taille.

  5. #5
    Membre Expert
    Profil pro
    Fabrication GED
    Inscrit en
    Octobre 2005
    Messages
    1 405
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Fabrication GED

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 405
    Par défaut
    relis calmement ce que j'ai écrit

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    66
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2006
    Messages : 66
    Par défaut
    Ouf excusez moi je voulais pas paraitre violent En tout cas si je l'ai été j'étais de bonne humeur!Pardonnez moi encore.

    iohack
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this.getContentPane.setLayout(null);
    En fait mon panel sans layout est déjà inséré dans un FlowLayout (j'avais mis GridLayout(1,2) dans mon exemple mais finalement j'ai changé)

    pour les keylistener en plus des
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    contentPanel.addKeyListener(this);
    j'ai rajouté
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    contentPanel.setFocusable(true);
    et maintenant çà maaarche c'est super!

    eclesia
    avec un FlowLayout la taille se fixe automatiquement donc plus de problèmes.
    Merci en tout cas pour ton aide!

    sinon si quelqu'un sait la différence entre paint et paintComponent des JPanels...

Discussions similaires

  1. [débutant] taille jPanel et image sur jbutton
    Par wokba dans le forum AWT/Swing
    Réponses: 9
    Dernier message: 21/12/2007, 08h55
  2. [débutant] Afficher un JPAnel par dessus un JPanel ?
    Par dymezac dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 02/03/2006, 20h02
  3. [débutant] taille d'un JScrollPane
    Par Benoit_Durand dans le forum Agents de placement/Fenêtres
    Réponses: 12
    Dernier message: 07/04/2005, 10h15
  4. [débutant] Taille d'un JSplitPane
    Par pingoui dans le forum Agents de placement/Fenêtres
    Réponses: 3
    Dernier message: 31/08/2004, 18h59
  5. [Débutant][Taille BD]Meme vide elle fait 25 Mo
    Par exe dans le forum Débuter
    Réponses: 3
    Dernier message: 18/08/2003, 19h19

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