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] Toolbar/Barre de Menu


Sujet :

SWT/JFace Java

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

    Informations forums :
    Inscription : Octobre 2009
    Messages : 7
    Points : 8
    Points
    8
    Par défaut [SWT] Toolbar/Barre de Menu
    Bonjour,

    Actuellement en stage, j'ai réalisé des maquettes d'interface que je dois maintenant implémenter via SWT. Je voudrais commencer par la page d'accueil mais j'ai le plus grand mal à réaliser ma barre de menu pour qu'elle ressemble à ça :



    J'ai essayé avec une barre de menu, mais l'ajout d'image sur les boutons est très moche, je ne peux pas mettre de label et d'icônes à gauche, je ne parviens pas à séparer les boutons les uns des autres.

    J'ai alors essayé avec une toolbar, le résultat est un peu plus proche mais je ne parviens pas même en jouant avec les layout,... à avoir une toolbar qui reste "fixe" quel que soit la taille de la fenêtre. Là dès que j'agrandis elle redevient très petite...

    Comment à votre avis pourrais je arriver à un résultat proche de la maquette ?

    [EDIT]: Comme il n'y a pas de JPanel en SWT, j'ai essayé avec un Composite mais sans succès...

  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,

    Quel est ton problème précisément?
    Tu cherches juste à ce que ça ressemble le plus possible à ton image et tu n'y arrives pas, c'est ça?
    C'est pour une application pur SWT ou c'est pour un application Eclipse RCP?
    Je ne sais pas quel est le rendu exact que tu attends, mais pour une application SWT, tu peux t'inspirer des snippets SWT.
    Un exemple d'implémentation:
    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
    import org.eclipse.swt.SWT;
    import org.eclipse.swt.graphics.Color;
    import org.eclipse.swt.graphics.GC;
    import org.eclipse.swt.graphics.Image;
    import org.eclipse.swt.graphics.Point;
    import org.eclipse.swt.graphics.Rectangle;
    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.swt.widgets.ToolBar;
    import org.eclipse.swt.widgets.ToolItem;
     
     
    public class Snippet36 {
     
        public static void main(String[] args) {
            Display display = new Display();
            final Shell shell = new Shell(display);
     
            Image image = new Image(display, 20, 20);
            Color color = display.getSystemColor(SWT.COLOR_BLUE);
            GC gc = new GC(image);
            gc.setBackground(color);
            gc.fillRectangle(image.getBounds());
            gc.dispose();
     
            Image disabledImage = new Image(display, 20, 20);
            color = display.getSystemColor(SWT.COLOR_GREEN);
            gc = new GC(disabledImage);
            gc.setBackground(color);
            gc.fillRectangle(disabledImage.getBounds());
            gc.dispose();
     
            Image hotImage = new Image(display, 20, 20);
            color = display.getSystemColor(SWT.COLOR_RED);
            gc = new GC(hotImage);
            gc.setBackground(color);
            gc.fillRectangle(hotImage.getBounds());
            gc.dispose();
     
            final ToolBar toolBar =
                new ToolBar(shell, SWT.BORDER | SWT.FLAT | SWT.WRAP);
            Rectangle clientArea = shell.getClientArea();
            toolBar.setBounds(clientArea.x, clientArea.y, 200, 32);
            for (int i = 0; i < 12; i++) {
                ToolItem item = new ToolItem(toolBar, 0);
                item.setImage(image);
                item.setDisabledImage(disabledImage);
                item.setHotImage(hotImage);
                if (i % 3 == 0)
                    item.setEnabled(false);
                if (i % 2 == 0) {
                    item = new ToolItem(toolBar, SWT.SEPARATOR);
                }
            }
     
            shell.addListener(SWT.Resize, new Listener() {
     
                public void handleEvent(Event e) {
                    Rectangle rect = shell.getClientArea();
                    Point size = toolBar.computeSize(rect.width, SWT.DEFAULT);
                    toolBar.setSize(size);
                }
            });
            shell.open();
            while (!shell.isDisposed()) {
                if (!display.readAndDispatch())
                    display.sleep();
            }
            image.dispose();
            disabledImage.dispose();
            hotImage.dispose();
            display.dispose();
        }
     
    }
    Voilà, à+
    Gueritarish
    Pas de questions technique par MP, les forums sont là pour ça.

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

Discussions similaires

  1. Barre de menu
    Par smicky77 dans le forum Access
    Réponses: 11
    Dernier message: 03/02/2006, 18h15
  2. Comment faire une Barre de Menu?
    Par gamerome dans le forum OpenGL
    Réponses: 5
    Dernier message: 18/02/2005, 14h46
  3. [MFC] Supprimer la barre de menu
    Par Kevgeii dans le forum MFC
    Réponses: 8
    Dernier message: 27/11/2004, 17h09
  4. barre de menu principal
    Par norfelt dans le forum IHM
    Réponses: 10
    Dernier message: 27/10/2003, 11h37
  5. Comment créer des barres de Menu ?
    Par MoKo dans le forum IHM
    Réponses: 5
    Dernier message: 30/07/2003, 14h58

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