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

SWT/JFace Java Discussion :

[SashForm]Problème de layout


Sujet :

SWT/JFace Java

  1. #1
    Futur Membre du Club
    Inscrit en
    Septembre 2004
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 8
    Points : 7
    Points
    7
    Par défaut [SashForm]Problème de layout
    Voilà plusieurs heures que je bloque sur un pb.
    Mon but est de pouvoir créer dans un shell autant de composite que possible.
    L'idée est donc d'avoir un composite (spécifique avec un bouton): quand on clique sur le bouton un SashForm est crée avec ce composite a gauche et un NOUVEAU a droite et ainsi de suite.

    Voioci 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
    69
    70
     
    import org.eclipse.swt.SWT;
    import org.eclipse.swt.custom.SashForm;
    import org.eclipse.swt.events.SelectionAdapter;
    import org.eclipse.swt.events.SelectionEvent;
    import org.eclipse.swt.layout.FillLayout;
    import org.eclipse.swt.widgets.Button;
    import org.eclipse.swt.widgets.Composite;
    import org.eclipse.swt.widgets.Display;
    import org.eclipse.swt.widgets.Shell;
     
    public class SashFormLayout{
     
        static int i = 1;
     
        public static void main(String[] args) {
            final Display display = new Display();
            final Shell shell = new Shell(display);
     
            shell.setLayout(new FillLayout());
     
            Comp comp = new SashFormLayout().new Comp(shell, SWT.NONE);
     
            shell.open();
            while (!shell.isDisposed()) {
                if (!display.readAndDispatch()) display.sleep();
            }
            display.dispose();
        }
     
        public class Comp extends Composite{
     
            Comp(Composite parent,int style) {
                super(parent, style);
                init();
                addListeners();
            }
     
            public void init() {
                this.setLayout(new FillLayout());
                Button b = new Button(this, SWT.PUSH);
                b.setText("Horizontal Layout" + i++);
                b.addSelectionListener(new SelectionAdapter(){
                    public void widgetSelected(SelectionEvent e) {
                        System.out.println("Create Horizontal Layout");
                        create(SWT.HORIZONTAL);
                    }
                });
                this.layout();
            }
     
            public void addListeners() {
     
            }
     
            public void create(int style) {
     
                SashForm form = new SashForm(this.getParent(), style);
                form.setLayout(new FillLayout());
     
                this.setParent(form);
                this.setLayout(new FillLayout());
     
                Comp comp = new Comp(form, SWT.NONE);
                comp.setLayout(new FillLayout());
     
                this.getShell().layout(true, true);
            }
        }
    }
    Si vous le lancez et que vous cliquiez tjrs sur le bouton tout a droite tout marche correctement. Mais il suffit de cliquer sur le bouton de gauche pour que tout soit basculé..

    Je sèche.. si quelqu'un peut m'aider..

  2. #2
    Membre averti

    Profil pro
    Inscrit en
    Août 2006
    Messages
    218
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Août 2006
    Messages : 218
    Points : 305
    Points
    305
    Par défaut
    J'ai passé une heure sur le problème, et moi aussi je sèche

    Tu as trouvé qq chose ?

  3. #3
    Futur Membre du Club
    Inscrit en
    Septembre 2004
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 8
    Points : 7
    Points
    7
    Par défaut
    Citation Envoyé par meddle
    J'ai passé une heure sur le problème, et moi aussi je sèche

    Tu as trouvé qq chose ?
    Non et ca m'énerve..

  4. #4
    Futur Membre du Club
    Inscrit en
    Mai 2006
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 4
    Points : 5
    Points
    5
    Par défaut
    Salut,
    En utilisant un seul sash form ca marche.
    je l'est tester en mettant le sash form en propriété de ton objet et en l'initialisant une seule fois.

    ( le sashform place ses fils dans leur ordre d'insertion ).

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

Discussions similaires

  1. problème avec layout:menu
    Par khayri dans le forum Struts 1
    Réponses: 1
    Dernier message: 23/04/2007, 19h17
  2. [Struts-Layout] problème avec layout:datagrid
    Par khayri dans le forum Struts 1
    Réponses: 2
    Dernier message: 20/04/2007, 09h31
  3. Problème de Layout
    Par jason69 dans le forum AWT/Swing
    Réponses: 11
    Dernier message: 30/08/2006, 15h45
  4. Problème de layout
    Par menuge dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 10/05/2006, 16h47
  5. [JscrollPane]Problèmes avec layout du panel intérieur
    Par Baptiste Wicht dans le forum AWT/Swing
    Réponses: 14
    Dernier message: 19/03/2006, 13h08

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