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

NetBeans Java Discussion :

initComponents() protected ?


Sujet :

NetBeans Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 4
    Par défaut initComponents() protected ?
    Y a-t-il un moyen de rendre la méthode initComponents() créé automatiquement par NetBeans protected ?

    Merci par avance...

  2. #2
    Expert confirmé


    Profil pro
    Inscrit en
    Mai 2003
    Messages
    3 240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 3 240
    Par défaut
    Pour quoi faire ?
    Car si c'est pour pouvoir faire une sous-classe et étendre la méthode initComponent, je pense pas que ce soit une bonne idée.

    Vincent

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 4
    Par défaut explications
    En fait j'avais l'idée de faire une classe mère extends JDialog pour toutes mes fenêtres de type JDialog.

    Et je voulais centraliser les fonctions récurrentes dans cette classe mère, c'est à dire: centrage des fenetres....
    Le problème, c'est que pour utiliser ma ligne de code qui centre le fenêtre, il faut d'abord que j'ai fait le initComponant dans les constructeurs des classe filles (cette ligne de code utilise la taille de la fenêtre, qui n'est définie qu'après initCoponant).

    Donc j'ai pensé à faire une méthode initComponant abstraite dans ma classe mère qui serait implémenté dans chaque fenêtre fille. Mais je ne peut évidament pas faire une méthode abstraite private, seulement protected.

    Voici un exemple du code que je voudrais implémenter :

    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
    public abstract class fenetreMere extends javax.swing.JDialog {
        
          //Constructeur
         public fenetreMere(java.awt.Frame parent, boolean modal) {
            super(parent, modal);
            initComponents();
            //Centrage de la fenêtre quelle que soit la résolution de l'écran
           setLocation(Math.max(0,(java.awt.Toolkit.getDefaultToolkit().getScreenSize().width-this.getSize().width)/2),Math.max(0,(java.awt.Toolkit.getDefaultToolkit().getScreenSize().height-this.getSize().height)/2));
            
        }
    
        protected abstract void initComponents();
    
    }
    
    //un exemple de fenêtre fille
    public class OuvrirPoint extends fenetreMere {
        
        //Constructeur
        public OuvrirPoint(java.awt.Frame parent, boolean modal) {
            super(parent, modal);       
        }
    
        /** This method is called from within the constructor to
         * initialize the form.
         * WARNING: Do NOT modify this code. The content of this method is
         * always regenerated by the Form Editor.
         */
        // <editor-fold defaultstate="collapsed" desc=" Generated Code ">                          
        protected void initComponents() {
        ....
        //code généré par Netbeans
        ...
        }
    }

  4. #4
    Membre émérite
    Avatar de n!co
    Profil pro
    Inscrit en
    Février 2004
    Messages
    831
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 831
    Par défaut
    Regarde un peu plus bas dans le forum, tu trouveras un sujet qui traite de la dérivation de form , sans que ca marche pour le moment.
    Mais comme l'a dit vbrabant, la surcharge de la méthode initComponent n'est pas une bonne idée, et cela n'est tout simplement pas possible : ecrase le layout parent !

    Dans ton cas, vu que c'est plutot des méthodes appliqués a tes fenetres, tu peux peut être faire une classe outils avec des méthodes statiques, dans la cas du centrage la méthode statique recoit la référence de ta fenetre en entrée.

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 4
    Par défaut merci
    Merci pour ta réponse N©O.
    Il y a juste un point que j'ai pas trop compris: si je crée ma classe outil avec une méthode qui centre la fenêtre que je lui fait passer en paramètre, je serait quand même obligé d'appeler cette méthode dans chacune de mes fenêtres, non?
    Du coup, si j'ai bien compris ce que tu m'as dit, j'y gagne pas vraiment...

    Je sais pas si c'est possible avec un autre méthode, mais je voulais faire en sorte que chacune de mes fenêtre utilisent la même partie de code (centrage, .pack()...) à leur construction, sans avoir à copier le code dans chacune d'elle.

    Si jamais il y a une solution, je suis preneur... sinon, tant pis pour moi !

    Merci de m'aider en tout cas...

  6. #6
    Membre émérite
    Avatar de n!co
    Profil pro
    Inscrit en
    Février 2004
    Messages
    831
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 831
    Par défaut
    Citation Envoyé par ZeBidule
    Merci pour ta réponse N©O.
    Il y a juste un point que j'ai pas trop compris: si je crée ma classe outil avec une méthode qui centre la fenêtre que je lui fait passer en paramètre, je serait quand même obligé d'appeler cette méthode dans chacune de mes fenêtres, non?
    Du coup, si j'ai bien compris ce que tu m'as dit, j'y gagne pas vraiment...
    Sauf que les méthodes (voir la méthode) est écrite qu'une fois, donc t'y gagnes tout de même un peu.
    Apres c'est une solution comm ca qui m'est passé par la tête, y a surement mieux

Discussions similaires

  1. Bonnes pratiques de protections individuelles
    Par Community Management dans le forum Sécurité
    Réponses: 23
    Dernier message: 11/06/2024, 11h23
  2. La meilleure protection contre le piratage des logiciels ?
    Par iubito dans le forum Débats sur le développement - Le Best Of
    Réponses: 184
    Dernier message: 23/12/2008, 13h35
  3. Protection désassemblage : planter WDASM
    Par Didier Derain dans le forum x86 32-bits / 64-bits
    Réponses: 10
    Dernier message: 10/08/2004, 17h13
  4. [VB6] cryptage et protection de fichier INI
    Par khany dans le forum VB 6 et antérieur
    Réponses: 12
    Dernier message: 21/10/2003, 09h38
  5. [VBA-E] [Excel] Protection d'une plage de cellules
    Par fikou dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 20/11/2002, 11h28

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