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] Redimensionner les composites ?


Sujet :

SWT/JFace Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 7
    Par défaut [SWT] Redimensionner les composites ?
    Bonjour,

    J'ai réussi à créer une ToolBar incorporée dans un composite.
    J'ai maintenant un nouveau problème qui vient de mon manque de connaissances en "event". En fait, je ne parviens pas, quand j'agrandis ma fenêtre, à déclencher le redimensionnement de tous mes composites. Je ne suis pourtant pas en Absolute Layout, j'en ai essayé plusieurs mais rien n'y fait...

    Avez vous une idée ?

    Merci d'avance !

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 7
    Par défaut
    Voici un extrait de mon code avec un évènement censé redimensionner le composite contenant les 3 labels et la toolbar :

    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
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    import org.eclipse.swt.widgets.Display;
    import org.eclipse.swt.widgets.Event;
    import org.eclipse.swt.widgets.Listener;
    import org.eclipse.swt.widgets.Shell;
    import org.eclipse.wb.swt.SWTResourceManager;
    import org.eclipse.swt.layout.GridLayout;
    import org.eclipse.swt.widgets.ToolBar;
    import org.eclipse.swt.SWT;
    import org.eclipse.swt.widgets.Label;
    import org.eclipse.swt.layout.GridData;
    import org.eclipse.swt.layout.FormLayout;
    import org.eclipse.swt.layout.FormData;
    import org.eclipse.swt.layout.FormAttachment;
    import org.eclipse.swt.widgets.Composite;
    import org.eclipse.swt.graphics.Point;
    import org.eclipse.swt.graphics.Rectangle;
    import org.eclipse.swt.widgets.ToolItem;
    import org.eclipse.swt.layout.FillLayout;
    import org.eclipse.swt.layout.RowLayout;
    import org.eclipse.swt.layout.RowData;
    import org.eclipse.wb.swt.layout.grouplayout.GroupLayout;
    import org.eclipse.wb.swt.layout.grouplayout.LayoutStyle;
    import org.eclipse.swt.custom.CBanner;
     
     
    public class Accueil {
     
    	protected Shell shell;
     
    	/**
             * Launch the application.
             * @param args
             */
    	public static void main(String[] args) {
    		try {
    			Accueil window = new Accueil();
    			window.open();
    		} catch (Exception e) {
    			e.printStackTrace();
    		}
     
     
    	}
     
    	/**
             * Open the window.
             */
    	public void open() {
    		Display display = Display.getDefault();
    		createContents();
    		shell.open();
    		shell.layout();
     
    		while (!shell.isDisposed()) {
    			if (!display.readAndDispatch()) {
    				display.sleep();
    			}
    		}
    	}
     
    	/**
             * Create contents of the window.
             */
    	protected void createContents() {
    		shell = new Shell();
    		shell.setMinimumSize(new Point(600, 400));
    		shell.setImage(SWTResourceManager.getImage("C:\\Users\\Ornella\\workspace\\IHM\\CE.png"));
    		shell.setSize(450, 300);
    		shell.setText("SWT Application");
    		shell.setLayout(new FormLayout());
     
    		final Composite toolB = new Composite(shell, SWT.BORDER | SWT.RESIZE);
    		FormData fd_toolB = new FormData();
    		fd_toolB.bottom = new FormAttachment(0, 48);
    		fd_toolB.right = new FormAttachment(0, 584);
    		fd_toolB.top = new FormAttachment(0);
    		fd_toolB.left = new FormAttachment(0);
    		toolB.setLayoutData(fd_toolB);
     
    		shell.addListener(SWT.RESIZE, new Listener() {
     
                public void handleEvent(Event e) {
                    Rectangle rect = shell.getClientArea();
                    Point size = toolB.computeSize(rect.width, SWT.DEFAULT);
                    toolB.setSize(size);
                    System.out.println(rect);
                }
            });
    Et voici le résultat (ou plutôt non résultat) :




  3. #3
    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 : 41
    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
    Par défaut
    Salut,

    Avec un GridLayout ça ira mieux.
    Et si tu n'es pas convaincu, sache qu'il y a un article d'Eclipse sur les layouts qui est très bien fait.

    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
    import org.eclipse.swt.SWT;
    import org.eclipse.swt.graphics.Point;
    import org.eclipse.swt.layout.GridData;
    import org.eclipse.swt.layout.GridLayout;
    import org.eclipse.swt.widgets.Composite;
    import org.eclipse.swt.widgets.Display;
    import org.eclipse.swt.widgets.Shell;
     
    public class Accueil {
     
    	protected Shell shell;
     
    	/**
             * Launch the application.
             * @param args
             */
    	public static void main(String[] args) {
    		try {
    			Accueil window = new Accueil();
    			window.open();
    		} catch (Exception e) {
    			e.printStackTrace();
    		}
    	}
     
    	/**
             * Open the window.
             */
    	public void open() {
    		Display display = Display.getDefault();
    		createContents();
    		shell.open();
    		shell.layout();
     
    		while (!shell.isDisposed()) {
    			if (!display.readAndDispatch()) {
    				display.sleep();
    			}
    		}
    	}
     
    	/**
             * Create contents of the window.
             */
    	protected void createContents() {
    		shell = new Shell();
    		shell.setMinimumSize(new Point(600, 400));
    		shell.setSize(450, 300);
    		shell.setText("SWT Application");
    		shell.setLayout(new GridLayout());
     
    		final Composite toolB = new Composite(shell, SWT.BORDER | SWT.RESIZE);
    		toolB.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false));
    	}
    }
    Voilà, à+
    Gueritarish

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 7
    Par défaut
    Merci pour ta réponse, je m'en suis finalement sorti en jouant avec les layouts ! J'ai trouvé comment redimensionner ma fenêtre, par contre je ne peux que l'agrandir pour le moment, pas la réduire on verra plus tard

    Merci en tout cas!

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

Discussions similaires

  1. [SWT] Redéfinir un composite
    Par jbwan dans le forum SWT/JFace
    Réponses: 5
    Dernier message: 13/07/2006, 15h43
  2. [SWT] centrer les composants dans une vue
    Par LoloBebop dans le forum SWT/JFace
    Réponses: 2
    Dernier message: 07/06/2006, 10h34
  3. [SWT] SWT shell et composite
    Par Rocket dans le forum SWT/JFace
    Réponses: 1
    Dernier message: 26/03/2006, 12h08
  4. [SWT] ProgressBar et Composite
    Par BiM dans le forum SWT/JFace
    Réponses: 5
    Dernier message: 19/12/2005, 12h03
  5. Redimensionner les images dans un tableau
    Par cyke37 dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 13/10/2005, 19h19

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