Précédent   Forum du club des développeurs et IT Pro > Java > Interfaces Graphiques en Java > SWT/JFace
SWT/JFace Forum d'entraide pour les API SWT/JFace. Avant de poster -> FAQ SWT/JFace
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 26/11/2012, 16h38   #1
FuRiOuZ
Invité régulier
 
Homme
Inscription : octobre 2012
Messages : 11
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : octobre 2012
Messages : 11
Points : 5
Points : 5
Par défaut Size dans SashForm

Bonjour,

J'ai crée un sashform dans lequel se trouve 2 arbres et un bouton. Avec les paramètres de SWT j'ai mes éléments qui prennent toute la place disponible dans la vue mais je me retrouve avec un bouton énorme.

J'ai regardé d'autres postes, notamment celui la : http://www.developpez.net/forums/d70...emes-sashform/

Mais je ne veux pas tout configurer à la main.
Ma question est donc comment changer la taille de mon bouton tout en gardant le FILL_BOTH pour mes arbres ?

Merci d'avance


Code :
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
  final Shell shell = new Shell(display);
  GridLayout gridLayout = new GridLayout();
  gridLayout.numColumns = 1;
  gridLayout.makeColumnsEqualWidth = true;
  shell.setLayout(gridLayout);
  GridData browseBTGridData = new GridData();
  browseBTGridData.horizontalAlignment = GridData.END;
  sashForm = new SashForm(shell, SWT.HORIZONTAL);
  GridData sashGridData = new GridData(GridData.FILL_BOTH);
  sashForm.setLayoutData(sashGridData);
 
  leftTreeViewer = new TreeViewer(sashForm, SWT.MULTI);
 
  Button createButton = new Button(sashForm, SWT.PUSH | SWT.CENTER);
  createButton.setText("bouton");
 
  rightTreeViewer = new TreeViewer(sashForm, SWT.MULTI);
 
  sashForm.setWeights(new int[] {45, 10, 45});
 
  Composite composite = new Composite(shell, SWT.NONE);
  composite.setLayout(new GridLayout(1, true));
  GridData g = new GridData();
  g.horizontalAlignment = SWT.RIGHT;
  composite.setLayoutData(g);
  Button okButton = new Button(composite, SWT.PUSH);
  okButton.setText("Terminer");
Le dernier composite est pour un bouton en bas a droite sous le sashform.


----------

PS : Je tiens à préciser qu'en créant un composite auquel j'ajoute le bouton central, je me retrouve avec un espace vide. Et je n'ai aucune idée du pourquoi.

PS2 : je viens de voir un autre post avec un problème similaire : http://www.developpez.net/forums/d11...ment-sashform/
Malheureusement pas de réponses :/
FuRiOuZ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/11/2012, 10h58   #2
FuRiOuZ
Invité régulier
 
Homme
Inscription : octobre 2012
Messages : 11
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : octobre 2012
Messages : 11
Points : 5
Points : 5
Bonjour,

J'ai fini par trouver tout seul :p.

Code :
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
  Composite compo = new Composite(sashForm, SWT.CENTER);
  compo.addControlListener(new ControlListener() {
      @Override
      public void controlResized(ControlEvent e) {
          // TODO Auto-generated method stub
          Composite c = (Composite)e.getSource();
	  int compoWidth = c.getBounds().width;
	  int compoHeight = c.getBounds().height;
	  int compoWidthCenter = compoWidth / 2;
	  int compoHeightCenter = compoHeight / 2;
	  int btWidth = createButton.getBounds().width;
	  int btHeight = createButton.getBounds().height;
	  int btWidthCenter = btWidth / 2;
	  int btHeightCenter = btHeight / 2;
 
	  int btWidthStart = compoWidthCenter - btWidthCenter;
	  int btHeightStart = compoHeightCenter - btHeightCenter;
	  createButton.setBounds(btWidthStart, btHeightStart, btWidth, btHeight); //createButton.getSize().x/y
	  c.redraw();
	  c.update();
      }
      @Override
      public void controlMoved(ControlEvent e) {
	  // TODO Auto-generated method stub
      }
  });
  createButton = new Button(compo, SWT.PUSH | SWT.CENTER);
  createButton.setText("Créer un/des lien(s)");
  createButton.setBounds(10, 50, 140, 30);

Alors il fallait bien créer un composite et y ajouter le bouton mais ne pas s'arrêter à ce stade. La dernière ligne sert à afficher le bouton en lui donnant des valeurs.
Quant au Listener, il sert à centrer le bouton et à le déplacer lorsque l'on redimensionne la taille de la fenêtre.

Voila, en espérant que ça en aidera d'autres.
FuRiOuZ est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 13h03.


 
 
 
 
Partenaires

Hébergement Web