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

Agents de placement/Fenêtres Java Discussion :

Classe JDialog + cannot reference parent before supertype constructor has been called


Sujet :

Agents de placement/Fenêtres Java

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    354
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2008
    Messages : 354
    Points : 134
    Points
    134
    Par défaut Classe JDialog + cannot reference parent before supertype constructor has been called
    Bonjour,
    J'ai une classe qui hérite de JDialog ,dans le constructeur de cette classe je n'arrive pas à définir la fenetre parent.
    Voici le code de la classe parente (elle est testée )
    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
     
     
    public class Fenetre_Principale extends JFrame
    {
     
        // Les attributs
    	 JMenuBar Menubar ;
    	 JMenu Fichier,Edition,Aide ;
    	 JMenuItem Ouvrir,Ajouter,A_Venir,A_Propos ;
     
    	 // Le constructeur
     
    	 public Fenetre_Principale()
    	 {
    	 // J'ai besoin d'une MenuBar 
     
    	 Menubar = new JMenuBar();
     
    	 	 // Ajout du MenuBar à la fenetre
    	 this.setJMenuBar(Menubar);
     
    //	 Menubar.setVisible(true);
     
     
    	 // Pour l'instant j'ai trois menus
     
    	 Fichier = new JMenu("Fichier");
    	 Edition = new JMenu("Edition");
    	 Aide = new JMenu("Aide");
     
    	 // Ajout des JMenu à la menubar
     
    	 Menubar.add(Fichier);
    	 Menubar.add(Edition);
    	 Menubar.add(Aide);
     
    	 // Les JMenuItem de Fichier
    	 Ouvrir = new JMenuItem("Ouvrir");
    	 Ajouter = new JMenuItem("Ajouter");
     
    	 // Ajout des JMenuItem
    	 Fichier.add(Ouvrir);
    	 Fichier.add(Ajouter);
     
    	 // Les JMenuItem de Edition
    	 A_Venir = new JMenuItem("A_Venir");
     
    	 // Ajout du JMenuItem à Edition
    	 Edition.add(A_Venir);
     
    	 // Les JMenuItem du menu Aide
    	 A_Propos = new JMenuItem("A_Propos");
     
    	 // Ajout du JMenuItem
    	 Aide.add("A_Propos");
     
     
    	 // Controle de la fenetre
     
    	 this.setSize(200,200);
    	this.setVisible(true);
    	this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    	 }
     
    } // fin de la classe
    ET voici le code de la classe qui est liée à cette fenetre
    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
     
     
    class Affichage_Licence extends JDialog
    {
     
       // Les attributs
     
    	            // pour l'instant on utilise des JLabel pour récupérer les données
     
    		JLabel Nom ,Version,Date_achat,Date_activation,Numero_contrat,Nombre_Licence ;
    		JPanel panel ;	
     
    		       // Pour les besoins de la fenetre
    				 String Title;
    				 Boolean mod ;	
    				 Fenetre_Principale parent ;	
     
    	// Le constructeur
     
    	public Affichage_Licence(String Title,Boolean mod)
    	{
    	 super(parent); // super(Frame parent,String Title , Boolean Mode)
    	 this.Title=Title;
    	 this.mod = mod ;	 
    	 Nom = new JLabel("Nom");
    	 Version = new JLabel("Version");
    	 Date_achat = new JLabel("Date_achat");
    	 Date_activation = new JLabel("Date_activation");
    	 Numero_contrat = new JLabel("Numero_Contrat");
    	 Nombre_Licence = new JLabel("Nombre_Licence");
     
    	 // Création d'un panel
    	 panel = new JPanel() ;
     
    	 // Ajout des JLabel au JPanel
    	 panel.add(Nom);
    	 panel.add(Version);
    	 panel.add(Date_achat);
    	 panel.add(Date_activation);
    	 panel.add(Numero_contrat);
    	 panel.add(Nombre_Licence);
     
    	 // Ajout du panel à la fenetre
     
    	 this.add(panel);
     
    	 } // Fin du constructeur
     
    } // Fin de ma classe
    ET voici le message d'erreur que j'obtiens
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    
    Test_Affichage_Licence.java:32: cannot reference parent before supertype constructor has been called
    	 super(parent); // super(Frame parent,String Title , Boolean Mode)
    Merci de votre aide

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 14
    Points : 12
    Points
    12
    Par défaut
    A mon sens il te suffit de rajouter la référence à ta JFrame directement dans les attributs du constructeur de ton JDialog.

    Du genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    public Affichage_Licence(String Title,Boolean mod,JFrame fenetre_parente) {
        super(fenetre_parente);
        ...
    }
    et dans ta JFrame
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    new Affichage_Licence("Titre",mod,this);

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    354
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2008
    Messages : 354
    Points : 134
    Points
    134
    Par défaut
    OK Merci,
    ça marche nickel par contre, mais ce n'est pas ce que je voulais est il possible
    de faire avec un JDialog une fenetre qui s'ouvre sans écraser la fenetre principale,à la manière des JOptionPane.
    Merci

  4. #4
    Membre du Club Avatar de zaphibel
    Homme Profil pro
    Ingénieur Logiciel
    Inscrit en
    Janvier 2007
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur Logiciel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2007
    Messages : 71
    Points : 57
    Points
    57
    Par défaut Excusez moi j'ai une question
    Qu'est ce qui arrive quand on passe null comm parent à la fenetre dialogue. Y a-t-il une levée d'exception ou pas ? Merci

Discussions similaires

  1. cannot reference this before supertype constructor has been called
    Par renlel dans le forum Débuter avec Java
    Réponses: 2
    Dernier message: 26/11/2009, 14h25
  2. Réponses: 2
    Dernier message: 24/03/2009, 10h44
  3. Réponses: 1
    Dernier message: 18/06/2008, 10h09
  4. Réponses: 7
    Dernier message: 16/06/2006, 11h09
  5. [JAR] pb class qui fait référence à un fichier property
    Par yanagiba dans le forum Entrée/Sortie
    Réponses: 4
    Dernier message: 11/08/2005, 11h55

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