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

AWT/Swing Java Discussion :

Utiliser MenuBar autre que dans (J)Frame


Sujet :

AWT/Swing Java

  1. #1
    Membre actif Avatar de Belegkarnil
    Inscrit en
    Juin 2005
    Messages
    289
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Juin 2005
    Messages : 289
    Points : 205
    Points
    205
    Par défaut Utiliser MenuBar autre que dans (J)Frame
    Bonjour, j'aimerai inclure une MenuBar (pas une JMenuBar) dans autre chose qu'une (J)Frame, l'idéal serait dans un JPanel. Est-ce possible? Que fauut t'il utiliser?
    Merci ;-)

  2. #2
    Expert éminent sénior
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Points : 21 324
    Points
    21 324
    Par défaut
    Tu devrais plutôt regarder du coté de la JToolBar

  3. #3
    Membre éclairé
    Avatar de bbclone
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    537
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 537
    Points : 704
    Points
    704
    Par défaut
    le probleme c'est que les composant menu d'AWT ne sont pas des Component mais des MenuComponent.
    dans awt.Panel tu a juste une methode pour ajouter des Component.

    sinon pour swing tu fais ce que tu veux.

  4. #4
    Membre actif Avatar de Belegkarnil
    Inscrit en
    Juin 2005
    Messages
    289
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Juin 2005
    Messages : 289
    Points : 205
    Points
    205
    Par défaut
    bbclone, je le sais bien justemen et c'est là le problème...

    wichtounet, la JToolBar peut m'aider pour ajouter une MenuBar comme composant graphique dans un autre composant graphique a part la (J)Frame ?

  5. #5
    Membre éclairé
    Avatar de bbclone
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    537
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 537
    Points : 704
    Points
    704
    Par défaut
    si tu veut mon avis, je pense pas :-))
    mais je comprent pas pourquoi tu veux ajouter un awt.MenuBar a un swing.JPanel. swing.JMenuBar serait quand meme plus logique.

  6. #6
    Membre actif Avatar de Belegkarnil
    Inscrit en
    Juin 2005
    Messages
    289
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Juin 2005
    Messages : 289
    Points : 205
    Points
    205
    Par défaut
    Je sais bien, seulement, je fait une fenetre dérivant de JFrame avec setUndecorated(true); Et donc j'obtient un carré dessiné a l'écran. Et je lui ajoute toutes les fonctions d'une JFrame normal. J'ai tout fait, il ne me manque plus que la MenuBar...

  7. #7
    Membre confirmé
    Avatar de DBProg
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2006
    Messages
    242
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2006
    Messages : 242
    Points : 579
    Points
    579
    Par défaut
    Salut !

    Justement si tu fais une Frame qui hérite de JFrame je ne vois plus le problème, tu n'as plus qu'à faire un setJMenuBar pour mettre ta barre de menu en haut. En quoi cette solution ne te convient pas ?

  8. #8
    Membre actif Avatar de Belegkarnil
    Inscrit en
    Juin 2005
    Messages
    289
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Juin 2005
    Messages : 289
    Points : 205
    Points
    205
    Par défaut
    Simplement parce que tout en haut de la fenêtre, il y a une barre bleu avec des bouton pour iconifier, minimiser/maximiser et fermer. Cette barre je l'ai reproduite dans ma fenetre. Mais lorsque que je fait comme tu l'as dit : setMenuBar(); cette MenuBar se trouve au-dessus de ma barre bleu, ce qui n'est pas normal... Voila

  9. #9
    Membre éclairé
    Avatar de bbclone
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    537
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 537
    Points : 704
    Points
    704
    Par défaut
    je vois toujours pas.
    que la fenetre est undecorated ou non ca change rien.

    si tu ajoute un JMenuBar a un JPanel ca marche.
    regarde
    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
     
    import java.awt.BorderLayout;
    import java.awt.Color;
    import java.awt.FlowLayout;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
     
    import javax.swing.BorderFactory;
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JMenu;
    import javax.swing.JMenuBar;
    import javax.swing.JMenuItem;
    import javax.swing.JOptionPane;
    import javax.swing.JPanel;
    import javax.swing.AbstractButton;
     
    /**
     * @author bebe
     */
    public class UndecoratedFrameWithMenu extends JFrame implements ActionListener {
     
        public UndecoratedFrameWithMenu() {
            setSize(400, 300);
            setUndecorated(true);
            setDefaultCloseOperation(EXIT_ON_CLOSE);
            setLocationRelativeTo(getParent());
     
            JPanel menuPanel = new JPanel(new FlowLayout(FlowLayout.LEFT));
            menuPanel.setBorder(BorderFactory.createLineBorder(Color.RED));
     
            JMenuBar myMenuBar = new JMenuBar();
     
            JMenu menu = new JMenu("My first menu");
            JMenuItem menuItem = new JMenuItem("Menu Item 1");
            menuItem.addActionListener(this);
            menu.add(menuItem);
            menuItem = new JMenuItem("Menu Item 2");
            menuItem.addActionListener(this);
            menu.add(menuItem);
     
            myMenuBar.add(menu);
     
            menu = new JMenu("My Second menu");
            menuItem = new JMenuItem("Menu Item 3");
            menuItem.addActionListener(this);
            menu.add(menuItem);
            menuItem = new JMenuItem("Menu Item 4");
            menuItem.addActionListener(this);
            menu.add(menuItem);
     
            myMenuBar.add(menu);
     
            menuPanel.add(myMenuBar);
     
            JPanel contentPanel = new JPanel();
            JButton myButton = new JButton("exit");
            myButton.addActionListener(this);
            contentPanel.add(myButton);
     
            add(menuPanel, BorderLayout.PAGE_START);
            add(contentPanel, BorderLayout.CENTER);
        }
     
        public void actionPerformed(ActionEvent e) {
            JOptionPane.showMessageDialog(this, ((AbstractButton) e.getSource()).getText());
            System.exit(0);
        }
     
        public static void main(String... args) {
            new UndecoratedFrameWithMenu().setVisible(true);
        }
    }
    mais si tu essaye avec des awt.MenuBar awt.Menu et awt.MenuItem ca n'ira pas parce que c'est pas des Component!
    en plus tu dit que tu herite de JFrame, je comprend pas le pourquoi d'un awt.MenuBar
    y'a un truc que j'arrive pas a comprendre dans qu'est ce que tu veut faire

  10. #10
    Membre éclairé
    Avatar de bbclone
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    537
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 537
    Points : 704
    Points
    704
    Par défaut
    j'avait pas vu ton autre message

    en fait tu dois pas faire un setJMenuBar mais un add tout simplement
    regarde le code que j'ai poster juste avant

  11. #11
    Membre actif Avatar de Belegkarnil
    Inscrit en
    Juin 2005
    Messages
    289
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Juin 2005
    Messages : 289
    Points : 205
    Points
    205
    Par défaut
    myMenuBar est une JMenuBar, il me faut une MenuBar!!!

  12. #12
    Membre éclairé
    Avatar de bbclone
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    537
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 537
    Points : 704
    Points
    704
    Par défaut
    si tu utilise JFrame pourquoi tu utilise MenuBar?
    c'est pas coherent :

  13. #13
    Membre actif Avatar de Belegkarnil
    Inscrit en
    Juin 2005
    Messages
    289
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Juin 2005
    Messages : 289
    Points : 205
    Points
    205
    Par défaut
    Parce que je veux que quiconque utilise ma Fenetre puisse utiliser toutes les methodes d'une JFrame. Comme elle dérive de JFrame, cela fonctionne mais cependant la MenuBar se place au-dessus de ma barre bleue. Ce que je ne veux pas.........

  14. #14
    Membre éclairé
    Avatar de bbclone
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    537
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 537
    Points : 704
    Points
    704
    Par défaut
    la courte version:
    pour mettre un java.awt.MenuBar a une JFrame tu utilise setMenuBar.
    si tu a une fenetre setUndecorated(true) et tu gere toi meme les petite case pour agrandir reduire fermer.. et que tu les ajoute d'une maniere ou d'une autre au ContentPane tu va avoir un probleme avec ton menu (qui s'affiche lui dans le JRootPane) mais...

  15. #15
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 850
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 850
    Points : 22 861
    Points
    22 861
    Billets dans le blog
    51
    Par défaut
    Citation Envoyé par Belegkarnil
    Parce que je veux que quiconque utilise ma Fenetre puisse utiliser toutes les methodes d'une JFrame.
    Dans ce cas il faut faire de la delegation plutot que de l'heritage.
    Ou alors faire que la classe ne soit pas publique.

  16. #16
    Gfx
    Gfx est déconnecté
    Expert éminent
    Avatar de Gfx
    Inscrit en
    Mai 2005
    Messages
    1 770
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 770
    Points : 8 178
    Points
    8 178
    Par défaut
    Je ne comprends toujours pas pourquoi tu veux utiliser une MenuBar et pas une JMenuBar. Bref, pourquoi ne fais-tu pas simplement en sorte que ta barre titre (ta barre bleue) soit placee au dessus de la JMenuBar ? Tu peux regarder le code source du look and feel Metal pour t'inspirer.

  17. #17
    Membre actif Avatar de Belegkarnil
    Inscrit en
    Juin 2005
    Messages
    289
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Juin 2005
    Messages : 289
    Points : 205
    Points
    205
    Par défaut
    Ou puis-je trouver le code source du look ande feed metal?

  18. #18
    Gfx
    Gfx est déconnecté
    Expert éminent
    Avatar de Gfx
    Inscrit en
    Mai 2005
    Messages
    1 770
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 770
    Points : 8 178
    Points
    8 178
    Par défaut
    ... Dans le fichier src.zip qui se trouve dans le dossier du JDK.

  19. #19
    Membre actif Avatar de Belegkarnil
    Inscrit en
    Juin 2005
    Messages
    289
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Juin 2005
    Messages : 289
    Points : 205
    Points
    205
    Par défaut
    Ok, je vais mettre résolu et j'essayerai plus tard. Si j'y arrive, je mettrai ma solution ici. Meri a vous tous pour votre aide

  20. #20
    Membre éclairé
    Avatar de bbclone
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    537
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 537
    Points : 704
    Points
    704
    Par défaut
    Citation Envoyé par bouye
    Dans ce cas il faut faire de la delegation plutot que de l'heritage.
    je suis d'accord avec bouye.

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

Discussions similaires

  1. utilisation date autre que celle du jour
    Par marcel marie dans le forum Langage
    Réponses: 7
    Dernier message: 01/12/2011, 19h05
  2. [EasyPHP] Utilise adresse autre que 127.0.0.1
    Par polj dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 4
    Dernier message: 23/02/2011, 10h09
  3. [SQL] Utiliser un autre champ dans une table si le champ par défaut est vide
    Par Mawashigeri dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 16/01/2008, 13h31
  4. Redirection PHP autre que dans un Reader
    Par gwen-al dans le forum Langage
    Réponses: 5
    Dernier message: 18/01/2006, 12h25
  5. [jre]utiliser une autre vm dans eclipse
    Par champion dans le forum Eclipse Java
    Réponses: 10
    Dernier message: 02/07/2004, 11h21

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