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 :

Gestionnaire de positionnement LayOut


Sujet :

AWT/Swing Java

  1. #1
    Membre éprouvé

    Profil pro
    MOA
    Inscrit en
    Décembre 2002
    Messages
    1 238
    Détails du profil
    Informations personnelles :
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Activité : MOA

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 238
    Par défaut Gestionnaire de positionnement LayOut
    je viens de decouvrir le layOut comme gestionnaire de positionnement, il me
    semble puissant tout en etant assez facile à maitriser .....


    dans la FAQ interface graphique :
    http://java.developpez.com/faq/java/...QUE_layout_box
    j'ai vu qu'il suffisait de creer un objet Box :
    Box hBox1 = Box.createHorizontalBox();

    et apres on fait des
    hdBox1.add( );
    pour ajouter nos composant dans la box ...



    j'ai donc fais ceci dans 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
    import java.awt.*;
    import java.awt.event.*;
    import java.applet.*;
     
    import javax.swing.Box;
     
    public class appez extends Applet implements ActionListener {
     
    	String path="/mon/chemin/papa", path2="/mon/chemin/maman";
     
    	public void init ()
    	{
    		Box hBox1 = Box.createHorizontalBox();
     
     
    		Label lab = new Label (path);
    			add(lab);
     
    		Button up = new Button ("upload papa");
    		hBox1.add(up);
    		up.addActionListener(this);
     
     
    		Box hBox2 = Box.createHorizontalBox();
    		Label lab2 = new Label (path2);
    		hBox2.add(lab2);
     
    		Button up2 = new Button ("upload maman");
    		hBox2.add(up2);
    	}
    }
    mais seulement voila, mes elements n'apparraissent pas lorsque je les integre dans mon objet box.

    Si je fais add(lab);, mon element lab apparait mais si je fais hBox1.add(lab); il n'apparait plus ....

    ai je raté quelques chose dans mon applet ?

  2. #2
    Expert confirmé

    Profil pro
    Fabricant et casseur d'avions
    Inscrit en
    Avril 2004
    Messages
    3 819
    Détails du profil
    Informations personnelles :
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Fabricant et casseur d'avions
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2004
    Messages : 3 819
    Par défaut
    Salut,

    Relis bien la FAQ. Il te manque quelques lignes pour utiliser ce layout correctement.

    Ton code définit les BoxLayout, les remplis avec tes boutons et tes labels... ok... mais tu ne places jamais tes layouts dans ta fenêtre!

    Il faut que tu rajoutes à la fin de ton code quelque chose du genre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Container c = getContentPane();
    c.add(hBox1,BorderLayout.CENTER);
    c.add(hBox2,BorderLayout.SOUTH);
    ou similaire en fonction du placement que tu souhaites.
    "Errare humanum est, sed perseverare diabolicum"

    Ma page sur DVP.com

  3. #3
    Membre expérimenté Avatar de fremsoi
    Inscrit en
    Août 2003
    Messages
    201
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 201
    Par défaut
    C'est clair tu ajoutes tout dans ton Layout mais tu n'ajoutes rien à ton container.

    Du coup ton container est vide alors que tes Box sont "chargés"

    Tu as aussi cette URL SUN très interessant si tu veux :
    http://java.sun.com/docs/books/tutor...ut/visual.html

  4. #4
    Gfx
    Gfx est déconnecté
    Expert confirmé
    Avatar de Gfx
    Inscrit en
    Mai 2005
    Messages
    1 770
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 770
    Par défaut
    Box c'est pas un Layout, c'est un **composant**. Pire, un composant **Swing**. Or tu as une interface AWT. Tu melanges donc des composants lourds (ou heavyweight, AWT) avec des composants legers (lightweight, Swing). Le probleme est que les composants legers sont toujours dessines SOUS les composants lourds. Bref, ca posera plein de problemes.

    Et comme Box est un composant, il faut l'ajouter a ton conteneur, ici l'applet, pour que cela "marche". Rajoute juste un add(hBox1). Mais encore une fois, ne fais pas ca car tu melanges Swing et AWT.

  5. #5
    Membre éprouvé

    Profil pro
    MOA
    Inscrit en
    Décembre 2002
    Messages
    1 238
    Détails du profil
    Informations personnelles :
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Activité : MOA

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 238
    Par défaut
    yep merci ....

    oui en effet je me suis appercu que c'etait du swing et j'ai vu dans votre FAQ qu'il ne fallait pas melanger swing et awt ......

    C'est pour cette raison que je me suis demandé s'il vaudrait mieux pas que j'abandonne awt : http://www.developpez.net/forums/viewtopic.php?t=437431

    et c'est ce que j'ai fais car swing semble etre bien mieux ....

    J'ai donc herité de JApplet et j'ai utilisé JLabel à la place ....

    Merci à vous tous ....


    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
    public class appez extends JApplet implements ActionListener {
     
    	String path="/mon/chemin/papa", path2="/mon/chemin/maman";
     
    	public void init ()
    	{
    		Box hBox0 = Box.createHorizontalBox();
     
    		JButton main = new JButton ("Main");
    		hBox0.add(main);
    		hBox0.add(Box.createHorizontalStrut(10));
    		JButton config = new JButton ("config");
    		hBox0.add(config);
     
     
    		Box hBox1 = Box.createHorizontalBox();
    		JLabel lab = new JLabel (path);
    		hBox1.add(lab);
    		hBox1.add(Box.createHorizontalStrut(30));
    		JButton up = new JButton ("upload");
    		hBox1.add(up);
    		up.addActionListener(this);
     
     
    		Box hBox2 = Box.createHorizontalBox();
    		JLabel lab2 = new JLabel (path2);
    		hBox2.add(lab2);
    		hBox2.add(Box.createHorizontalStrut(30));
    		JButton up2 = new JButton ("upload");
    		hBox2.add(up2);
     
    		Box vBox = Box.createVerticalBox();
    		vBox.add(hBox0);
    		vBox.add(Box.createVerticalStrut(75));
    		vBox.add(hBox1);
    		vBox.add(Box.createVerticalStrut(20));
            vBox.add(hBox2);
     
            Container c = getContentPane();
            c.add(vBox,BorderLayout.NORTH);		
    	}

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

Discussions similaires

  1. Gestionnaire de positionnement
    Par Moine dans le forum Windows
    Réponses: 3
    Dernier message: 14/11/2011, 15h55
  2. gestionnaire de positionnement
    Par Moine dans le forum Qt
    Réponses: 3
    Dernier message: 14/05/2009, 16h35
  3. [layout]Positionnement de menu flottant
    Par Laurent Gomila dans le forum Mise en page CSS
    Réponses: 12
    Dernier message: 28/02/2007, 10h19
  4. Positionnement éléments et layout
    Par bressan dans le forum Agents de placement/Fenêtres
    Réponses: 7
    Dernier message: 12/06/2006, 16h28
  5. le gestionnaire de positionnement
    Par weed dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 29/12/2005, 01h51

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