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] plusieurs menu/menuBar


Sujet :

SWT/JFace Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    15
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 15
    Par défaut [SWT] plusieurs menu/menuBar
    Je suis en train de faire une petite application, et je souhaite faire un menu de type "classique" (comme dans notepad++ par exemple)

    avec une barre de menu principale contenant des sous menus (SWT.CASCADE), mais je voudrais une seconde barre de menu située sous la première avec des icones (SWT.ICON).
    Je n'avais pas eu de problème avec swing, mais là avec SWT je n'y arrive pas (il n'y a que shell.setMenuBar() qui ne permet donc qu'une seule barre de menu) et pas moyen de trouver un exemple sur le net.
    Je peux très bien ajouter un menu de type SWT.ICON à la première barre de menu, mais ca ne le fait que le mettre à la suite des autres menus.
    Est-ce possible? Si oui comment?

    Merci

  2. #2
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Normal, ce que tu recherches ce n'est pas deux menubar mais une menubar et une toolbar. Tout de suite ça ira mieux (ça aurait été pareil pour Swing d'ailleurs).
    Sinon spécifiquement en SWT l'ecastrement se fait de la façon suivante:

    Une CoolBar contient des ToolBar qui contiennent des ToolItem. La coolbar étant optionnelle (destinée à gérer de multiples toolbar comme dans Word par exemple)

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    15
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 15
    Par défaut
    Ah forcément si j'avais pas le bon nom, je pouvais pas trouver! Merci beaucoup, je teste ça et je met la balise résolu

  4. #4
    Membre averti
    Inscrit en
    Mai 2009
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 12
    Par défaut Un exemple?
    Salut,
    j'essaye de faire exactement la meme chose. Tu n'aurais pas un exemple de code par hasard?

    Morchea

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    15
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 15
    Par défaut
    Citation Envoyé par morchea Voir le message
    Salut,
    j'essaye de faire exactement la meme chose. Tu n'aurais pas un exemple de code par hasard?

    Morchea
    Voilà ce que j'ai 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
    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
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
     
    public MainProgramWindow(String fileName) {
    ...
    doMainMenu(shell);
    doToolBar(shell);
    }
     
    /*
     * le menu du programme
     */
    private void doMainMenu(final Decorations shell) {
    		// barre de menu
    		Menu mainMenu = new Menu(shell, SWT.BAR);
    		// items de la barre de menu
    		MenuItem menuFichier = new MenuItem(mainMenu, SWT.CASCADE);
    		menuFichier.setText(Labels.LABELS_MAP.get("FILE"+PROGRAM_LANGUAGE));
     
    		MenuItem menuOptions = new MenuItem(mainMenu, SWT.CASCADE);
    		menuOptions.setText(Labels.LABELS_MAP.get("OPTIONS"+PROGRAM_LANGUAGE));
     
    		MenuItem menuAide = new MenuItem(mainMenu, SWT.CASCADE);
    		menuAide.setText(Labels.LABELS_MAP.get("HELP"+PROGRAM_LANGUAGE));
     
     
    		// sous menus fichier
    		Menu sousMenuFichier = new Menu(shell, SWT.DROP_DOWN);
     
    		MenuItem optionNouveau = new MenuItem(sousMenuFichier, SWT.PUSH);
    		optionNouveau.setText(Labels.LABELS_MAP.get("NEW"+PROGRAM_LANGUAGE)+"\tCtrl+N");
    		setIcon(optionNouveau, NEW_FILE_ICON);
     
    		optionNouveau.setAccelerator(SWT.CTRL + 'n');
    		optionNouveau.addListener(SWT.Selection, new Listener(){
    //blabla
     
    			}
    		});
     
     
    	/*
             * Autres items du menu fichier
             */
     
     
    		// sous menus options
    		Menu sousMenuOptions = new Menu(shell, SWT.DROP_DOWN);
    		MenuItem optionParam = new MenuItem(sousMenuOptions, SWT.PUSH);
    		optionParam.setText(Labels.LABELS_MAP.get("PARAMETERS"+PROGRAM_LANGUAGE) + "\tCtrl+P");
    		optionParam.setAccelerator(SWT.CTRL + 'p');
    		setIcon(optionParam, OPTIONS_ICON);
    		optionParam.addListener(SWT.Selection, new Listener(){
    			//blabla
    		});
     
        /*
         * etc.
         */
    		// set
    		menuFichier.setMenu(sousMenuFichier);
    		menuOptions.setMenu(sousMenuOptions);
    		shell.setMenuBar(mainMenu);
    }
     
    private void doToolBar(final Decorations shell){
    		final CoolBar coolBar = new CoolBar(shell, SWT.NONE);
     
    		GridLayout gl = new GridLayout(1, false);
    		gl.marginHeight = 0;
    		GridData gd = new GridData(SWT.FILL, SWT.FILL, true, false);
    		coolBar.setLayoutData(gd);
    		coolBar.setLayout(gl);
     
    		CoolItem buttonItem = new CoolItem(coolBar, SWT.NONE | SWT.DROP_DOWN);
     
    		Composite composite = new Composite(coolBar, SWT.NONE);
    		composite.setLayout(new GridLayout(3, false));
     
    		Button bOpenFile = new Button(composite, SWT.PUSH);
    		if(!setIcon(bOpenFile, OPEN_FILE_ICON)){
    			bOpenFile.setText(Labels.LABELS_MAP.get("OPEN"+PROGRAM_LANGUAGE));
    		}
     
    		bOpenFile.setToolTipText(Labels.LABELS_MAP.get("TOOLTIP_OPEN_FILE"+PROGRAM_LANGUAGE));
    		bOpenFile.addListener(SWT.Selection, new Listener(){//blabla
    });
     
    		Button bQuickSave = new Button(composite, SWT.PUSH);
    		if(!setIcon(bQuickSave, QUICK_SAVE_ICON)){
    			bQuickSave.setText(Labels.LABELS_MAP.get("QUICK_SAVE"+PROGRAM_LANGUAGE));
    		}
     
    		bQuickSave.setToolTipText(Labels.LABELS_MAP.get("QUICK_SAVE"+PROGRAM_LANGUAGE));
    		bQuickSave.addListener(SWT.Selection, new Listener(){
    			@Override
    			public void handleEvent(Event arg0) {//blabla
     
    			} });
     
    		Button bNewfile = new Button(composite, SWT.PUSH);
    		if(!setIcon(bNewfile, NEW_FILE_ICON)){
    			bNewfile.setText(Labels.LABELS_MAP.get("NEW_ACCOUNT"+PROGRAM_LANGUAGE));
    		}
     
    		bNewfile.addListener(SWT.Selection, new Listener(){//blabla
     
    		});
    		composite.pack();
     
    		Point size = composite.getSize();
    		buttonItem.setControl(composite);
    		buttonItem.setSize(buttonItem.computeSize(size.x, size.y));
     
    	}
    Voilà t'occupes pas des "Labels.LABELS_MAP.get(...)" c'est juste du texte.
    Les " NEW_FILE_ICON" c'est des images de type org.eclipse.swt.graphics.Image;
    J'espère que le code est compréhensible .

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

Discussions similaires

  1. [SWT/jFace]menu "ouvrir avec.."
    Par p1xl_01 dans le forum SWT/JFace
    Réponses: 2
    Dernier message: 07/10/2009, 11h16
  2. Réponses: 5
    Dernier message: 24/08/2009, 14h54
  3. Réponses: 6
    Dernier message: 10/04/2008, 16h54
  4. Réponses: 2
    Dernier message: 27/06/2006, 08h34
  5. [SWT] Plusieurs Drag & Drop dans une interface
    Par lessecs dans le forum SWT/JFace
    Réponses: 2
    Dernier message: 06/06/2006, 14h03

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