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

Composants Java Discussion :

Subdiviser une fenêtre en plusieurs panels


Sujet :

Composants Java

  1. #1
    Membre à l'essai
    Inscrit en
    Avril 2012
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Avril 2012
    Messages : 19
    Points : 16
    Points
    16
    Par défaut Subdiviser une fenêtre en plusieurs panels
    Salut les amis, je suis en train de faire une interface graphique qui va subdiviser la fenêtre en 3 parties: en haut j'aurais le titre de la page, à gauche le menu avec des bouton et le centre qui va contenir les informations mais je bloque au niveau de la disposition des éléments. Au finish ce que je veux avoir ressemble à ce qui sur l'image jointe. Voici 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
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
     
    public class Fenetre extends JFrame {
     
    	/**
             * 
             */
    	private static final long serialVersionUID = 1L;
    	JPanel panelPrincipal;
    	JPanel panelHaut, panelBas, panelGauche, panelDroite, panelCentre, panelTitre, panelMenu;
    	JButton b1 = new JButton("Menu 1");
    	JButton b2 = new JButton("Menu 2");
    	JButton b3 = new JButton("Menu 3");
    	JButton b4 = new JButton("Menu 4");
    	JButton b5 = new JButton("Menu 5");
    	JButton b6 = new JButton("Menu 6");
    	JButton b7 = new JButton("Menu 7");
    	JButton b8 = new JButton("Menu 8");
    	JLabel titre = new JLabel("TITRE DE LA PAGE");
     
    	Font f;
     
    	public Fenetre() {
     
    		super();
     
    		/*Initialisation du JFrame*/
    		this.setSize (new Dimension (800, 600));
    		//On ne pourra pas agrandir la fenetre intitulée.
    		this.setResizable (false);
     
    		/*Récupération du ContentPane*/
    		Container contenu = this.getContentPane();
    		contenu.setLayout(new BorderLayout());
     
    		/*Création des JPanel avec leur Layout Manager*/
    		panelPrincipal = new JPanel();
    		panelHaut = new JPanel(new FlowLayout());
    		panelGauche = new JPanel(new GridLayout(8,1));
    		panelDroite = new JPanel(new GridLayout());
     
    		/*Création de la police pour le titre*/
    		f = new Font("Monospaced", Font.BOLD, 24);
     
    		/*Ajout des panneaux au ContentPane*/
    	    /*Ajout du titre de panelHaut*/
    		titre.setFont(f);
    		panelHaut.add(titre);
    		/*Ajout des panneaux dans le panelPrincipal*/
    		panelPrincipal.add(panelHaut, BorderLayout.NORTH);
    		panelPrincipal.add(panelGauche, BorderLayout.WEST);
    		panelPrincipal.add(panelDroite, BorderLayout.CENTER);
    contenu.add(panelPrincipal);
     
     
    		/*Ajout des boutons au niveau de panelGauche*/
    		panelGauche.add(b1);
    		panelGauche.add(b2);
    		panelGauche.add(b3);
    		panelGauche.add(b4);
    		panelGauche.add(b5);
    		panelGauche.add(b6);
    		panelGauche.add(b7);
    		panelGauche.add(b8);
     
    	    /*Ajout du corps de panelDRoite*/
    		panelDroite.add(new JLabel("FAITES VOTRE CHOIX"));
    	}
    }
    Images attachées Images attachées  

  2. #2
    Membre confirmé Avatar de ruscov
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Mars 2007
    Messages
    347
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Mars 2007
    Messages : 347
    Points : 500
    Points
    500
    Par défaut
    Où est ce que tu bloques? Tu as des erreurs? Ca ne s'affiche pas comme tu veux?
    Mes logiciels n’ont jamais de bug. Ils développent juste certaines fonctions aléatoires.

  3. #3
    Membre à l'essai
    Inscrit en
    Avril 2012
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Avril 2012
    Messages : 19
    Points : 16
    Points
    16
    Par défaut
    Citation Envoyé par ruscov Voir le message
    Où est ce que tu bloques? Tu as des erreurs? Ca ne s'affiche pas comme tu veux?
    Ca n'affiche pas comme je veux Julien! Je voudrai avoir une disposition comme celle sur l'image que j'ai jointe.

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

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    Un JPanel en BoxLayout vertical pour la partie menus.
    Puis, dans ta JFrame (qui par défaut est en BorderLayout) tu mets:
    Un JLabel pour le titre dans le NORTH.
    Le JPanel contenant les menus dans le WEST
    Ton JPanel principal dans le CENTER.
    Hey, this is mine. That's mine. All this is mine. I'm claiming all this as mine. Except that bit. I don't want that bit. But all the rest of this is mine. Hey, this has been a really good day. I've eaten five times, I've slept six times, and I've made a lot of things mine. Tomorrow, I'm gonna see if I can't have sex with something.

  5. #5
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    312
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 312
    Points : 533
    Points
    533
    Par défaut
    Bonjour,

    Une autre variante :


    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
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
     
    import javax.swing.*;
    import java.awt.*;
     
     
    public class Fenetre extends JFrame {
     
    	private static final long serialVersionUID = 1L;
    	JPanel panelTitre, panelMenu, panelPrincipal;
    	JMenuItem b1 = new JMenuItem("Menu 1");
    	JMenuItem b2 = new JMenuItem("Menu 2");
    	JMenuItem b3 = new JMenuItem("Menu 3");
    	JMenuItem b4 = new JMenuItem("Menu 4");
    	JMenuItem b5 = new JMenuItem("Menu 5");
    	JMenuItem b6 = new JMenuItem("Menu 6");
    	JMenuItem b7 = new JMenuItem("Menu 7");
    	JMenuItem b8 = new JMenuItem("Menu 8");
    	JLabel titre = new JLabel("TITRE DE LA PAGE");
    	JLabel choix = new JLabel("FAITES VOTRE CHOIX");
     
    	Font f;
     
    	public Fenetre() {
     
    		super();
    		this.setSize (new Dimension (800, 600));
    		this.setResizable (false);
    		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    		panelPrincipal = new JPanel(new BorderLayout());
    		panelPrincipal.setBackground(new Color(0xFABF8F));
    		choix.setHorizontalAlignment(JLabel.CENTER);
    		panelPrincipal.add(choix);
     
    		panelMenu = new JPanel();
    		panelMenu.setBackground(new Color(0x95B3D7));
    		panelMenu.setPreferredSize(new Dimension(150,20));
    		b1.setOpaque(false);
    		b2.setOpaque(false);
    		b3.setOpaque(false);
    		b4.setOpaque(false);
    		b5.setOpaque(false);
    		b6.setOpaque(false);
    		b7.setOpaque(false);
    		b8.setOpaque(false);
    		panelMenu.add(b1);
    		panelMenu.add(b2);
    		panelMenu.add(b3);
    		panelMenu.add(b4);
    		panelMenu.add(b5);
    		panelMenu.add(b6);
    		panelMenu.add(b7);
    		panelMenu.add(b8);
     
    		panelTitre = new JPanel();
    		f = new Font("Monospaced", Font.BOLD, 24);
    		titre.setFont(f);
    		titre.setForeground(Color.red);
    		panelTitre.setBackground(new Color(0xC4BC96));
    		panelTitre.add(titre);
     
    		add(panelTitre, BorderLayout.NORTH);
    		add(panelMenu, BorderLayout.WEST);
    		add(panelPrincipal, BorderLayout.CENTER);
    		setVisible(true);
    	}
     
    	public static void main(String[] args) {
    		Fenetre f = new Fenetre();
    	}
    }

  6. #6
    Membre à l'essai
    Inscrit en
    Avril 2012
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Avril 2012
    Messages : 19
    Points : 16
    Points
    16
    Par défaut
    Merci à Ludomacho et Sinok vous m'avez bien aidé!
    Désolé d'avoir été absent ces derniers jours je bossais sur d'autres projets

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

Discussions similaires

  1. Ouvrir une fenêtre dans un panel
    Par dim07 dans le forum Débuter
    Réponses: 6
    Dernier message: 10/01/2008, 18h09
  2. Réponses: 5
    Dernier message: 08/01/2008, 21h07
  3. afficher une fenêtre dans un panel
    Par Yotho dans le forum Windows Forms
    Réponses: 4
    Dernier message: 19/01/2007, 10h14
  4. Decoupé une fenêtre en plusieurs parties
    Par Premium dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 12/12/2006, 13h34
  5. SubDiviser une fenêtre
    Par florantine dans le forum Agents de placement/Fenêtres
    Réponses: 1
    Dernier message: 16/12/2005, 21h31

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