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 :

[SWT] Centrage et layout


Sujet :

SWT/JFace Java

  1. #1
    Membre régulier
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Septembre 2011
    Messages
    142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2011
    Messages : 142
    Points : 81
    Points
    81
    Par défaut [SWT] Centrage et layout
    Bonjour,

    Je voudrais centrer un composant.

    J'ai essayé un RowLayout et ajouter des labels avant et après le composant mais impossible de changer la taille.

    Que dois-je faire pour centrer un composant en largeur mon application faisant du FullScreen ?

    Merci de votre aide !

  2. #2
    Membre expert
    Avatar de Gueritarish
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2007
    Messages
    1 800
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2007
    Messages : 1 800
    Points : 3 919
    Points
    3 919
    Par défaut
    Salut,

    Tu peux utiliser un GridLayout avec un GriData:
    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
    import org.eclipse.swt.SWT;
    import org.eclipse.swt.layout.GridData;
    import org.eclipse.swt.layout.GridLayout;
    import org.eclipse.swt.widgets.Button;
    import org.eclipse.swt.widgets.Display;
    import org.eclipse.swt.widgets.Shell;
     
    public class Snippet172 {
     
    	public static void main(String[] args)
    	{
    		Display display = new Display();
    		Shell shell = new Shell(display);
    		GridLayout layout = new GridLayout(1, false);
    		shell.setLayout(layout);
     
    		Button b = new Button(shell, SWT.PUSH);
    		b.setText("Bouton centré");
    		b.setLayoutData(new GridData(SWT.CENTER, SWT.CENTER, true, true));
     
    		shell.open();
    		while (!shell.isDisposed())
    		{
    			if (!display.readAndDispatch())
    				display.sleep();
    		}
    		display.dispose();
    	}
    }
    C'est un exemple qui s'inspire des snippets SWT.

    Voilà, à+
    Gueritarish
    Pas de questions technique par MP, les forums sont là pour ça.

  3. #3
    Membre régulier
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Septembre 2011
    Messages
    142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2011
    Messages : 142
    Points : 81
    Points
    81
    Par défaut
    En fait ton exemple est correcte mais chez moi c'est plus compliqué...

    J'ai imbriqué des composites et des layouts.

    En fait je voudrais une fenêtre qui se rapproche de ceci :

    +----------------------------------------------------+
    | |
    | VIDE |
    | |
    +---------+-------- +----------+---------------------+
    | Label | Text | Button | vide |
    +---------+-------- +-----------+---------------------+
    | Clavier virtuel centré |
    +-----------------------------------------------------+


    Et pour faire ceci j'ai utilisé un composite principal dont j'ai fait un RowLayout vertical
    J'ai ajouté une marge en haut.
    J'ai ajouté au rowLayout vertical un composite avec un rowlayout vertical dont j'ai ajouté un label, un text et un bouton.
    Puis un composite avec le clavier.

    Le problème aussi c'est que je peut rien redimensionné (exemple taille du champ texte).

  4. #4
    Membre expert
    Avatar de Gueritarish
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2007
    Messages
    1 800
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2007
    Messages : 1 800
    Points : 3 919
    Points
    3 919
    Par défaut
    Salut,

    Un autre exemple avec un seul layout:
    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
    import org.eclipse.swt.SWT;
    import org.eclipse.swt.layout.GridData;
    import org.eclipse.swt.layout.GridLayout;
    import org.eclipse.swt.widgets.Button;
    import org.eclipse.swt.widgets.Composite;
    import org.eclipse.swt.widgets.Display;
    import org.eclipse.swt.widgets.Label;
    import org.eclipse.swt.widgets.Shell;
    import org.eclipse.swt.widgets.Text;
     
    public class Snippet {
     
    	public static void main(String[] args)
    	{
    		Display display = new Display();
    		Shell shell = new Shell(display);
    		shell.setLayout(new GridLayout());
     
    		Composite composite = new Composite(shell, SWT.NONE);
    		composite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
    		composite.setLayout(new GridLayout(4, false));
     
    		Label label = new Label(composite, SWT.None);
    		label.setText("Texte: ");
    		GridData labelData = new GridData();
    		labelData.verticalIndent = 50;
    		label.setLayoutData(labelData);
     
    		Text text = new Text(composite, SWT.BORDER);
    		GridData textData = new GridData();
    		textData.verticalIndent = 50;
    		text.setLayoutData(textData);
     
    		Button button = new Button(composite, SWT.PUSH);
    		GridData buttonData = new GridData();
    		buttonData.verticalIndent = 50;
    		buttonData.verticalSpan = 2;
    		button.setText("Bouton");
    		button.setLayoutData(buttonData);
     
    		Composite keyboardComposite = new Composite(composite, SWT.NONE);
    		keyboardComposite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 4, 2));
    		keyboardComposite.setBackground(display.getSystemColor(SWT.COLOR_BLUE));
    		keyboardComposite.setLayout(new GridLayout());
     
    		Button otherButton = new Button(keyboardComposite, SWT.PUSH);
    		otherButton.setText("Bouton centré");
    		otherButton.setLayoutData(new GridData(SWT.CENTER, SWT.CENTER, true, true));
     
    		shell.pack();
    		shell.open();
    		while (!shell.isDisposed())
    		{
    			if (!display.readAndDispatch())
    				display.sleep();
    		}
    		display.dispose();
    	}
    }
    Voilà, à+
    Gueritarish
    Pas de questions technique par MP, les forums sont là pour ça.

  5. #5
    Membre régulier
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Septembre 2011
    Messages
    142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2011
    Messages : 142
    Points : 81
    Points
    81
    Par défaut
    Merci pour toutes tes réponses, j'ai opté pour ta première solution.
    Il m'a fallut un peu de temps pour la comprendre.

    Merci encore !

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

Discussions similaires

  1. [SWT] problème de layout (bis)
    Par *alexandre* dans le forum SWT/JFace
    Réponses: 3
    Dernier message: 30/05/2008, 15h24
  2. [SWT] problème de layout
    Par *alexandre* dans le forum SWT/JFace
    Réponses: 1
    Dernier message: 27/05/2008, 08h40
  3. [Layout] éviter centrage d'un composant
    Par Oliveuh dans le forum Agents de placement/Fenêtres
    Réponses: 6
    Dernier message: 07/01/2005, 09h28
  4. [SWT][Layout]problème de redimensionnement d'un Text
    Par McFoggy dans le forum SWT/JFace
    Réponses: 1
    Dernier message: 05/08/2004, 12h10
  5. [Débutant][swt][layout]
    Par Stessy dans le forum SWT/JFace
    Réponses: 2
    Dernier message: 28/07/2003, 18h21

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