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 :

Afficher des panels dans une frame


Sujet :

AWT/Swing Java

  1. #1
    Membre actif
    Profil pro
    100
    Inscrit en
    Juillet 2007
    Messages
    585
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : 100

    Informations forums :
    Inscription : Juillet 2007
    Messages : 585
    Points : 270
    Points
    270
    Par défaut Afficher des panels dans une frame
    Bonjour,

    Je débute en Java et j'aimerais dans un premier temps réaliser une application dont l'affichage est découpé en 3 zones.

    Pour avoir :

    -un panel en haut dans lequel j'aimerais construire moi-même une barre
    d'outils
    - un panel central dans lequel j'affiche les données
    - un panel en bas dans lequel j'affiche des boutons

    A noter que j'utilise la librairies forms de JGoodies pour placer les panels

    J'ai pour le moment 2 classes, la premiere pour la frame principale:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    public class Frame extends JFrame {
    	public Frame() {
    		Panel panel = new Panel();
     
    		this.getContentPane().add(panel);
    		this.setSize(new Dimension(500, 500));
    	}
    }
    et la 2ème dans laquelle j'aimerais créer mes 3 zones:

    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
    public class Panel extends JPanel {
     
    	public Panel() {
     
    		super();
    		this.add(createPanel());
    	}
     
    	private JPanel createPanel() {
    		CellConstraints cc = new CellConstraints();
    		FormLayout layout = new FormLayout("fill:1dlu:grow", "fill:1dlu:grow, fill:1dlu:grow, fill:1dlu:grow");
    		PanelBuilder builder = new PanelBuilder(layout);
    		builder.add(createEntete(), cc.xy(1, 1)); // Zone 1
    		builder.add(createMain(), cc.xy(1, 2));   // Zone 2
    		builder.add(createButton(), cc.xy(1, 3)); // Zone 3
     
    		return builder.getPanel();
     
     
    	}
     
    	private JPanel createEntete() {
    		CellConstraints cc = new CellConstraints();
    		FormLayout layout = new FormLayout("fill:1dlu:grow", "fill:1dlu:grow");
    		PanelBuilder builder = new PanelBuilder(layout);
    		builder.setBackground(Color.YELLOW);
     
    		return builder.getPanel();
    	}
     
    	private JPanel createMain() {
    		FormLayout layout = new FormLayout("fill:1dlu:grow", "fill:1dlu:grow");
    		PanelBuilder builder = new PanelBuilder(layout);
    		builder.setBackground(Color.RED);
     
    		return builder.getPanel();
    	}
     
    	private JPanel createButton() {
    		FormLayout layout = new FormLayout("fill:1dlu:grow", "fill:1dlu:grow");
    		PanelBuilder builder = new PanelBuilder(layout);
    		builder.setBackground(Color.BLUE);
     
    		return builder.getPanel();
    	}
     
    }
    Je joins en annexe une image. A gauche ce que j'obtiens, a droite ce que j'aimerais dans un premier temps.

    J'aimerais que les panels prennent automatiquement la largeur de la frame.

    Merci d'avance
    Images attachées Images attachées  

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

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 108
    Points : 3 203
    Points
    3 203
    Par défaut
    tu dois remplacer le contentpane de ta fenetre par ton panel :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    public class Frame extends JFrame {
    	public Frame() {
    		Panel panel = new Panel();
    		
    		this.setContentPane(panel);
    		this.setSize(new Dimension(500, 500));
    	}
    }

  3. #3
    Membre habitué
    Inscrit en
    Octobre 2005
    Messages
    259
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Octobre 2005
    Messages : 259
    Points : 126
    Points
    126
    Par défaut
    ok, merci

  4. #4
    Membre actif
    Profil pro
    100
    Inscrit en
    Juillet 2007
    Messages
    585
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : 100

    Informations forums :
    Inscription : Juillet 2007
    Messages : 585
    Points : 270
    Points
    270
    Par défaut
    Merci ça marche comme je le souhaitais

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

Discussions similaires

  1. utilisation des panel dans une fenetre Win32
    Par ksoft dans le forum MFC
    Réponses: 1
    Dernier message: 02/05/2006, 22h45
  2. [wxpython] creer deux panel dans une frame
    Par hysah dans le forum wxPython
    Réponses: 3
    Dernier message: 27/12/2005, 19h21
  3. Comment afficher des JPEG dans une application Delphi ?
    Par Bouguennec dans le forum Composants VCL
    Réponses: 4
    Dernier message: 17/09/2005, 22h18
  4. [C/C++] afficher des doubles dans une message box
    Par lalaurie40 dans le forum MFC
    Réponses: 1
    Dernier message: 24/05/2005, 15h55
  5. faire apparaitre et disparaitre un panel dans une frame
    Par Ghost Dog dans le forum Agents de placement/Fenêtres
    Réponses: 5
    Dernier message: 22/04/2005, 02h55

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