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

Langage Java Discussion :

Demande de précision sur "Extends" ..


Sujet :

Langage Java

  1. #1
    Invité
    Invité(e)
    Par défaut Demande de précision sur "Extends" ..
    Bonjour,

    J'ai une classe Main qui étend JFrame.
    Dans cette classe je veux créer un JMenuBar.

    J'ai donc fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    private void monMenu() extends JMenuBar(){
      JMenu test = new JMenu("test');
      this.add(test);
    }
    Mais il me dis qu'il faut un ";" ??

    Est-ce possible d'étendre dans une classe qui étend déja quelque-chose ?

  2. #2
    Membre expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Points : 3 675
    Points
    3 675
    Par défaut Re: Demande de précision sur "Extends" ..
    Citation Envoyé par Blaise1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    private void monMenu() extends JMenuBar()
    hein ? c'est quoi cette syntaxe ?? mélange de déclarations de méthode avec déclaration de classe ?

    Citation Envoyé par Blaise1
    Est-ce possible d'étendre dans une classe qui étend déja quelque-chose ?
    ça, oui, c'est possible (du moment que la classe n'est pas finale)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    class A{}
    class B extends A{}
    class C extends B{}
    un ptit peu de lecture --> les cours et tutoriels Java : http://java.developpez.com/cours/

    "Le plug gros problème des citations trouvées sur internet, c'est qu'on ne peut jamais garantir leur authenticité"

    Confucius, 448 av. J-C

  3. #3
    Membre chevronné
    Profil pro
    Fabrication GED
    Inscrit en
    Octobre 2005
    Messages
    1 405
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Fabrication GED

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 405
    Points : 1 958
    Points
    1 958
    Par défaut
    Pour corriger ton exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    public class MonMenu extends JMenuBar{
       public MonMenu(){
          super("test");
       }
    }
    serait plus correct.
    Pour ce qui est de l'ajout dans une fenetre faudra faire quelque chose du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    public class MaFenetre extends JFrame{
       private MonMenu monMenu=new MonMenu();
       public MaFentre(){
          super("ma fenetre");
          this.setTitle("ma fenetre avec menu");
          this.add(this.monMenu);
          this.pack();
          this.setVisible(true);
    }

  4. #4
    Invité
    Invité(e)
    Par défaut
    mmm oui mais alors depuis mon menu je n'ai pas accés directement à ma fenêtre.
    Il fait que monMenu et ces elements puissent accéder à aux elements de ma JFrame..

  5. #5
    Invité
    Invité(e)
    Par défaut
    Voici ce que j'ai :
    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
     
    public class Main extends JFrame{
     
        private JMenuItem men1,men2,men3;    
     
        /** Creates a new instance of Main */
        public Main() {
     
            SwingUtilities.invokeLater(new Runnable() {
                public void run() {
                    initGui();
                }
            });        
        }
     
        private void initGui(){
     
            Dimension ecran = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
            setSize((int)ecran.getHeight()-50,(int)ecran.getWidth()-50);
            setLocationRelativeTo(getParent());
     
            setJMenuBar(new MenuPrincipal());
     
        }
     
        private class MenuPrincipal extends JMenuBar {
     
            //Crée le sous menu 'Nouveau' du menu 'Fichier'
            JMenu nouveau = new JMenu("Nouveau");
            nouveau.add(new JMenuItem("test"));
     
        }
     public static void main(String[] args) {
            // TODO code application logic here
     
            new Main();
        }
     
    }
    mais dans MenuPrincipal j'ai lune erreure sur nouveau.add :
    <identtifier> expected
    je ne vois pas pourquoi ..

  6. #6
    Membre chevronné
    Profil pro
    Fabrication GED
    Inscrit en
    Octobre 2005
    Messages
    1 405
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Fabrication GED

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 405
    Points : 1 958
    Points
    1 958
    Par défaut
    Il suffit de passer l'instance de ta fenetre au constructeur de ton menu ( et de rajouté un attribut pointant sur la JFrame :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    public class MonMenu extends JMenuBar{
       private JFrame pointeurFenetre;
       public MonMenu(JFrame frame){
          super("test");
          pointeurFenetre=frame;
       }
     
       //Acces a ta JFrame :
       public void uneMethode(){
          this.pointeurFenetre.setVisible(true); // Exemple trivial.
       }
    }

  7. #7
    Membre chevronné
    Profil pro
    Fabrication GED
    Inscrit en
    Octobre 2005
    Messages
    1 405
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Fabrication GED

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 405
    Points : 1 958
    Points
    1 958
    Par défaut
    ton erreur "<identtifier> expected " vient du fait que tu essais d'exécuter du code ailleurs que dans une méthode.
    Une petite révision sur les méthodes ( et notament constructeurs ) me semble plus que nécessaire

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

Discussions similaires

  1. [Xquery] demandes de précision sur XQuery
    Par totoranky dans le forum XQUERY/SGBD
    Réponses: 7
    Dernier message: 31/05/2007, 11h06
  2. Réponses: 13
    Dernier message: 15/01/2007, 08h32
  3. Demande de précisions sur Backup/Restore et transactions
    Par lio33 dans le forum Connexion aux bases de données
    Réponses: 1
    Dernier message: 16/11/2005, 12h08

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