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 :

Quelle est la bonne gestion de JPanel dans une JFrame ?


Sujet :

Agents de placement/Fenêtres Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 25
    Points : 19
    Points
    19
    Par défaut Quelle est la bonne gestion de JPanel dans une JFrame ?
    Bonjour,

    Je commence juste une fenetre pour un client et, je voudrais savoir quelle est la methode la plus efficace pour bien gerer les Jpanel, avec ou sans layout, sachant qu'a terme, chaque Jpanel sera doté de sa propre image de fond.

    Le truc avec le code ci dessous, c'est qu'en mettant le layout a null le jpanel s'affiche correctement mais je perds le background, et en ne touchant pas au layout mes setborders sont ignorés.

    Something wrong ?

    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
    package design;
     
    import java.awt.Color;
     
    import javax.swing.ImageIcon;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JPanel;
     
    public class Main {
     
     
    	public static void main(String[] args) {
     
    		JFrame Client = new JFrame();
     
    		initializeParam(Client);
    		initializePanel(Client);
    		Client.setVisible(true);
    	}
     
    	public static void initializeParam(JFrame fenetre) {
    		fenetre.setSize(1440, 1024);
    		fenetre.setLocationRelativeTo(null);
    		fenetre.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    		fenetre.setUndecorated(true);
    		fenetre.add(new JLabel(new ImageIcon(
    				"ressource/client/background/fond.png")));
    	}
     
    	public static void initializePanel(JFrame fenetre) {
    		JPanel mBarreHaut = new JPanel();
    		mBarreHaut.setBounds(5,5, 1430, 100);
    		mBarreHaut.setBackground(Color.white);
    		fenetre.add(mBarreHaut);
     
    	}
    }

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 25
    Points : 19
    Points
    19
    Par défaut
    J'ai rajouté un panel "principal" je pense que c'est la bonne pratique plutot que de taper directement dans le JFrame, et la meme probleme de layout. Sans layout null j'ai le fond qui s'affiche mais pas le menu. avec layout null c'est l'inverse ... C'est dingue

    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
    package design;
     
    import javax.swing.ImageIcon;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JPanel;
     
    public class Main {
     
    	public static void main(String[] args) {
     
    		JFrame Client = new JFrame();
     
    		initializeParam(Client);
    		JPanel mMainPanel = initializeMainPanel(Client);
    		initializeMenuPanel(mMainPanel);
     
    		Client.setVisible(true);
    	}
     
    	public static void initializeParam(JFrame fenetre) {
    		fenetre.setSize(1440, 1024);
    		fenetre.setLocationRelativeTo(null);
    		fenetre.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    		fenetre.setUndecorated(true);
    		fenetre.setLayout(null);
     
    	}
     
    	public static JPanel initializeMainPanel(JFrame fenetre) {
    		JPanel mMainPanel = new JPanel();
    		mMainPanel.setLayout(null);
    		mMainPanel.setBounds(0, 0, 1440, 1024);
    		mMainPanel.add(new JLabel(new ImageIcon(
    				"ressource/client/background/fond.png")));
    		fenetre.add(mMainPanel);
    		return mMainPanel;
    	}
     
    	public static void initializeMenuPanel(JPanel mainPanel) {
    		JPanel mMenuPanel = new JPanel();
    		mMenuPanel.setBounds(5, 5, 1430, 120);
    		mMenuPanel.add(new JLabel(new ImageIcon(
    				"ressource/client/background/menufond.png")));
    		mainPanel.add(mMenuPanel);
     
    	}
    }

  3. #3
    Expert éminent sénior
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    Fait nous un dessin du layout que tu cherches à obtenir.

    Le null layout est considéré comme une mauvaise pratique en Swing, et pas seulement vis à vis du redimensionnement. Par exemple, niveau portabilité c'est la merde (les polices et leurs changeant d'un Look&Feel à un autre, ou d'un système à un autre) et tout un ensemble d'autres petits problèmes pouvant survenir.

    Je conseille donc largement d'utiliser autre chose.
    Ton dessin permettra de guider les conseils que tu obtiendras.

Discussions similaires

  1. Inclusion de JPanel dans une JFrame
    Par greatmaster1971 dans le forum Agents de placement/Fenêtres
    Réponses: 7
    Dernier message: 04/04/2008, 23h43
  2. SWING: des JPanel dans une JFrame
    Par julien.63 dans le forum Agents de placement/Fenêtres
    Réponses: 3
    Dernier message: 02/12/2007, 19h21
  3. Problème décalage du JPanel dans une JFrame a cause du JMenuBar
    Par matou72 dans le forum Agents de placement/Fenêtres
    Réponses: 5
    Dernier message: 09/03/2007, 20h17
  4. Positionner précisement plusieurs JPanel dans une JFrame.
    Par RadicalBob dans le forum Agents de placement/Fenêtres
    Réponses: 3
    Dernier message: 13/06/2006, 22h42
  5. Gestion de menu, JPanels dans une JFrame
    Par Doc.Fusion dans le forum Agents de placement/Fenêtres
    Réponses: 3
    Dernier message: 03/12/2004, 18h27

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