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 08/08/2012, 11h12   #1
kkt8
Membre régulier
 
Avatar de kkt8
 
Christelle
Inscription : janvier 2005
Messages : 274
Détails du profil
Informations personnelles :
Nom : Christelle
Localisation : France, Isère (Rhône Alpes)

Informations forums :
Inscription : janvier 2005
Messages : 274
Points : 98
Points : 98
Par défaut Espace entre les ToolItem dans une Toolbar

Bonjour,

Je crée une ToolBar qui contient une liste de x ToolItem représentés par des boutons dont l'image ressemble à une check box (image de 16 pixels par 16).
Je voudrais élargir l'espace entre deux ToolItem pour qu'ils soient étalés dans toutes ma ToolBar qui est Fill Horizontal.

Est-ce seulement possible ?
J'ai lu que l'espace était calculé automatiquement par la classe FillLayout... et j'ai beau changé de layout .... ça marche pas !

Merci
Chris
kkt8 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/08/2012, 09h41   #2
Gueritarish
Modérateur
 
Avatar de Gueritarish
 
Homme Marc
Développeur Java
Inscription : mai 2007
Messages : 1 566
Détails du profil
Informations personnelles :
Nom : Homme Marc
Âge : 28
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 566
Points : 3 424
Points : 3 424
Salut,

Tu peux éventuellement les espacer en rajoutant des séparators (new ToolItem(bar, SWT.SEPARATOR);) en indiquant leur largeurs. Mais avec des layout, je ne pense pas que ça soit possible (il n'y a pas de méthodes setLayoutData() sur un ToolItem).

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

Le 5 et 6 juin à Toulouse, la première EclipseCon France !
Gueritarish est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/08/2012, 09h45   #3
kkt8
Membre régulier
 
Avatar de kkt8
 
Christelle
Inscription : janvier 2005
Messages : 274
Détails du profil
Informations personnelles :
Nom : Christelle
Localisation : France, Isère (Rhône Alpes)

Informations forums :
Inscription : janvier 2005
Messages : 274
Points : 98
Points : 98
Salut Gueritarish !

j'y avais pensé, mais je veux pouvoir contrôler cet espace ... je suis en train de voir si je ferais pas mieux avec un tableViewer ...

Je pense effectivement que c'est impossible !

Je fermerais ce post dès que j'aurais fini l'exploration des possibilités mais je pense qu'il ne sera pas résolu

Merci !
kkt8 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/08/2012, 10h09   #4
Gueritarish
Modérateur
 
Avatar de Gueritarish
 
Homme Marc
Développeur Java
Inscription : mai 2007
Messages : 1 566
Détails du profil
Informations personnelles :
Nom : Homme Marc
Âge : 28
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 566
Points : 3 424
Points : 3 424
Dans quel sens tu veux le contrôler? Si c'est lui assigner une taille variable, c'est tout à fait faisable. Il te suffit de rajouter une listener et le tour est joué.
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
public static void main(final String[] args) {
  final Display display = new Display();
  final Shell shell = new Shell();
  shell.setLayout(new GridLayout());
  final Image image = new Image(display, 16, 16);
  final Color color = display.getSystemColor(SWT.COLOR_RED);
  final GC gc = new GC(image);
  gc.setBackground(color);
  gc.fillRectangle(image.getBounds());
  gc.dispose();
  final ToolBar bar = new ToolBar(shell, SWT.BORDER);
  bar.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
  ToolItem item;
  for (int i = 1; i < 10; i++) {
    if (i % 3 == 0) {
      item = new ToolItem(bar, SWT.SEPARATOR);
    } else {
      item = new ToolItem(bar, SWT.PUSH);
    }
    item.setText("Item " + i);
    item.setImage(image);
  }
  final Rectangle clientArea = shell.getClientArea();
  bar.setLocation(clientArea.x, clientArea.y);
  bar.pack();
  shell.addPaintListener(new PaintListener() {
 
    @Override
    public void paintControl(final PaintEvent e) {
      final int width = (int) ((float) e.width / (float) bar.getItemCount());
      for (final ToolItem item : bar.getItems()) {
        if ((item.getStyle() & SWT.SEPARATOR) == SWT.SEPARATOR) {
          item.setWidth(width);
        }
      }
    }
  });
  shell.open();
  shell.pack();
  while (!shell.isDisposed()) {
    if (!display.readAndDispatch())
      display.sleep();
  }
  display.dispose();
}
Voilà, à+
Gueritarish
__________________
Pas de questions technique par MP, les forums sont là pour ça.

Le 5 et 6 juin à Toulouse, la première EclipseCon France !
Gueritarish est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 12h21.


 
 
 
 
Partenaires

Hébergement Web